PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPkN1c3RvbSBFcnJvciBSZXNwb25zZXMgLSBBcGFjaGUgSFRUUCBTZXJ2ZXI8L3RpdGxlPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPgo8bGluayBocmVmPSIuL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHkgaWQ9Im1hbnVhbC1wYWdlIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Ii4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlNpdGVtYXA8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5BcGFjaGUgSFRUUCBTZXJ2ZXIgVmVyc2lvbiAyLjI8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZmVhdGhlci5naWYiIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+SFRUUCBTZXJ2ZXI8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi8iPlZlcnNpb24gMi4yPC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5DdXN0b20gRXJyb3IgUmVzcG9uc2VzPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuL2VuL2N1c3RvbS1lcnJvci5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9jdXN0b20tZXJyb3IuaHRtbCIgaHJlZmxhbmc9ImVzIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVzcGHxb2wiPiZuYnNwO2VzJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvY3VzdG9tLWVycm9yLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9jdXN0b20tZXJyb3IuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+PC9wPgo8L2Rpdj4KCiAgICA8cD5BZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHkgYWxsb3dzIHdlYm1hc3RlcnMgdG8gY29uZmlndXJlIHRoZSByZXNwb25zZSAKICAgIG9mIEFwYWNoZSB0byBzb21lIGVycm9yIG9yIHByb2JsZW0uPC9wPgoKICAgIDxwPkN1c3RvbWl6YWJsZSByZXNwb25zZXMgY2FuIGJlIGRlZmluZWQgdG8gYmUgYWN0aXZhdGVkIGluIHRoZSBldmVudCBvZiAKICAgIGEgc2VydmVyIGRldGVjdGVkIGVycm9yIG9yIHByb2JsZW0uPC9wPgoKICAgIDxwPklmIGEgc2NyaXB0IGNyYXNoZXMgYW5kIHByb2R1Y2VzIGEgIjUwMCBTZXJ2ZXIgRXJyb3IiIHJlc3BvbnNlLCAKICAgIHRoZW4gdGhpcyByZXNwb25zZSBjYW4gYmUgcmVwbGFjZWQgd2l0aCBlaXRoZXIgc29tZSBmcmllbmRsaWVyIHRleHQgb3IgYnkgCiAgICBhIHJlZGlyZWN0aW9uIHRvIGFub3RoZXIgVVJMIChsb2NhbCBvciBleHRlcm5hbCkuPC9wPgogIDwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjx1bCBpZD0idG9jIj48bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2JlaGF2aW9yIj5CZWhhdmlvcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2NvbmZpZ3VyYXRpb24iPkNvbmZpZ3VyYXRpb248L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNjdXN0b20iPkN1c3RvbSBFcnJvciBSZXNwb25zZXMgYW5kIFJlZGlyZWN0czwvYT48L2xpPgo8L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImJlaGF2aW9yIiBpZD0iYmVoYXZpb3IiPkJlaGF2aW9yPC9hPjwvaDI+CiAgICAKCiAgICA8aDM+T2xkIEJlaGF2aW9yPC9oMz4KICAgICAgCgogICAgICA8cD5OQ1NBIGh0dHBkIDEuMyB3b3VsZCByZXR1cm4gc29tZSBib3Jpbmcgb2xkIGVycm9yL3Byb2JsZW0gbWVzc2FnZSAKICAgICAgd2hpY2ggd291bGQgb2Z0ZW4gYmUgbWVhbmluZ2xlc3MgdG8gdGhlIHVzZXIsIGFuZCB3b3VsZCBwcm92aWRlIG5vIAogICAgICBtZWFucyBvZiBsb2dnaW5nIHRoZSBzeW1wdG9tcyB3aGljaCBjYXVzZWQgaXQuPC9wPgogICAgCgogICAgPGgzPk5ldyBCZWhhdmlvcjwvaDM+CiAgICAgIAoKICAgICAgPHA+VGhlIHNlcnZlciBjYW4gYmUgYXNrZWQgdG86PC9wPgoKICAgICAgPG9sPgogICAgICAgIDxsaT5EaXNwbGF5IHNvbWUgb3RoZXIgdGV4dCwgaW5zdGVhZCBvZiB0aGUgTkNTQSBoYXJkIGNvZGVkIAogICAgICAgIG1lc3NhZ2VzLCBvcjwvbGk+CgogICAgICAgIDxsaT5yZWRpcmVjdCB0byBhIGxvY2FsIFVSTCwgb3I8L2xpPgoKICAgICAgICA8bGk+cmVkaXJlY3QgdG8gYW4gZXh0ZXJuYWwgVVJMLjwvbGk+CiAgICAgIDwvb2w+CgogICAgICA8cD5SZWRpcmVjdGluZyB0byBhbm90aGVyIFVSTCBjYW4gYmUgdXNlZnVsLCBidXQgb25seSBpZiBzb21lIAogICAgICBpbmZvcm1hdGlvbiBjYW4gYmUgcGFzc2VkIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgdG8gZXhwbGFpbiBhbmQvb3IgbG9nIAogICAgICB0aGUgZXJyb3IvcHJvYmxlbSBtb3JlIGNsZWFybHkuPC9wPgoKICAgICAgPHA+VG8gYWNoaWV2ZSB0aGlzLCBBcGFjaGUgd2lsbCBkZWZpbmUgbmV3IENHSS1saWtlIGVudmlyb25tZW50IAogICAgICB2YXJpYWJsZXM6PC9wPgoKICAgICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICAgUkVESVJFQ1RfSFRUUF9BQ0NFUFQ9Ki8qLCBpbWFnZS9naWYsIGltYWdlL3gteGJpdG1hcCwgCiAgICAgICAgICAgIGltYWdlL2pwZWc8YnIgLz4KICAgICAgICBSRURJUkVDVF9IVFRQX1VTRVJfQUdFTlQ9TW96aWxsYS8xLjFiMiAoWDExOyBJOyBIUC1VWCBBLjA5LjA1IAogICAgICAgICAgICA5MDAwLzcxMik8YnIgLz4KICAgICAgICBSRURJUkVDVF9QQVRIPS46L2JpbjovdXNyL2xvY2FsL2JpbjovZXRjPGJyIC8+CiAgICAgICAgUkVESVJFQ1RfUVVFUllfU1RSSU5HPTxiciAvPgogICAgICAgIFJFRElSRUNUX1JFTU9URV9BRERSPTEyMS4zNDUuNzguMTIzPGJyIC8+CiAgICAgICAgUkVESVJFQ1RfUkVNT1RFX0hPU1Q9b29oLmFoaGguY29tPGJyIC8+CiAgICAgICAgUkVESVJFQ1RfU0VSVkVSX05BTUU9Y3Jhc2guYmFuZy5lZHU8YnIgLz4KICAgICAgICBSRURJUkVDVF9TRVJWRVJfUE9SVD04MDxiciAvPgogICAgICAgIFJFRElSRUNUX1NFUlZFUl9TT0ZUV0FSRT1BcGFjaGUvMC44LjE1PGJyIC8+CiAgICAgICAgUkVESVJFQ1RfVVJMPS9jZ2ktYmluL2J1Z2d5LnBsCiAgICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgICA8cD5Ob3RlIHRoZSA8Y29kZT5SRURJUkVDVF88L2NvZGU+IHByZWZpeC48L3A+CgogICAgICA8cD5BdCBsZWFzdCA8Y29kZT5SRURJUkVDVF9VUkw8L2NvZGU+IGFuZAogICAgICA8Y29kZT5SRURJUkVDVF9RVUVSWV9TVFJJTkc8L2NvZGU+IHdpbGwgYmUgcGFzc2VkIHRvIHRoZQogICAgICBuZXcgVVJMIChhc3N1bWluZyBpdCdzIGEgY2dpLXNjcmlwdCBvciBhIGNnaS1pbmNsdWRlKS4gVGhlCiAgICAgIG90aGVyIHZhcmlhYmxlcyB3aWxsIGV4aXN0IG9ubHkgaWYgdGhleSBleGlzdGVkIHByaW9yIHRvCiAgICAgIHRoZSBlcnJvci9wcm9ibGVtLiA8c3Ryb25nPk5vbmU8L3N0cm9uZz4gb2YgdGhlc2Ugd2lsbCBiZQogICAgICBzZXQgaWYgeW91ciA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZXJyb3Jkb2N1bWVudCI+RXJyb3JEb2N1bWVudDwvYT48L2NvZGU+IGlzIGFuIAogICAgICA8ZW0+ZXh0ZXJuYWw8L2VtPiByZWRpcmVjdCAoYW55dGhpbmcgc3RhcnRpbmcgd2l0aCBhIAogICAgICBzY2hlbWUgbmFtZSBsaWtlIDxjb2RlPmh0dHA6PC9jb2RlPiwgZXZlbiBpZiBpdCByZWZlcnMgdG8gdGhlIHNhbWUgaG9zdCAKICAgICAgYXMgdGhlIHNlcnZlcikuPC9wPgogICAgCiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJjb25maWd1cmF0aW9uIiBpZD0iY29uZmlndXJhdGlvbiI+Q29uZmlndXJhdGlvbjwvYT48L2gyPgogICAgCgogICAgPHA+VXNlIG9mIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNlcnJvcmRvY3VtZW50Ij5FcnJvckRvY3VtZW50PC9hPjwvY29kZT4gaXMgZW5hYmxlZCAKICAgIGZvciAuaHRhY2Nlc3MgZmlsZXMgd2hlbiB0aGUgCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjYWxsb3dvdmVycmlkZSI+QWxsb3dPdmVycmlkZTwvYT48L2NvZGU+IGlzIHNldCBhY2NvcmRpbmdseS48L3A+CgogICAgPHA+SGVyZSBhcmUgc29tZSBleGFtcGxlcy4uLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgRXJyb3JEb2N1bWVudCA1MDAgL2NnaS1iaW4vY3Jhc2gtcmVjb3ZlciA8YnIgLz4KICAgICAgRXJyb3JEb2N1bWVudCA1MDAgIlNvcnJ5LCBvdXIgc2NyaXB0IGNyYXNoZWQuIE9oIGRlYXIiIDxiciAvPgogICAgICBFcnJvckRvY3VtZW50IDUwMCBodHRwOi8veHh4LyA8YnIgLz4KICAgICAgRXJyb3JEb2N1bWVudCA0MDQgL0xhbWVfZXhjdXNlcy9ub3RfZm91bmQuaHRtbCA8YnIgLz4KICAgICAgRXJyb3JEb2N1bWVudCA0MDEgL1N1YnNjcmlwdGlvbi9ob3dfdG9fc3Vic2NyaWJlLmh0bWwKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+VGhlIHN5bnRheCBpcyw8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgIEVycm9yRG9jdW1lbnQgJmx0OzMtZGlnaXQtY29kZSZndDsgJmx0O2FjdGlvbiZndDsKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+d2hlcmUgdGhlIGFjdGlvbiBjYW4gYmUsPC9wPgoKICAgIDxvbD4KICAgICAgPGxpPlRleHQgdG8gYmUgZGlzcGxheWVkLiBXcmFwIHRoZSB0ZXh0IHdpdGggcXVvdGVzICgiKS48L2xpPgoKICAgICAgPGxpPkFuIGV4dGVybmFsIFVSTCB0byByZWRpcmVjdCB0by48L2xpPgoKICAgICAgPGxpPkEgbG9jYWwgVVJMIHRvIHJlZGlyZWN0IHRvLjwvbGk+CiAgICA8L29sPgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iY3VzdG9tIiBpZD0iY3VzdG9tIj5DdXN0b20gRXJyb3IgUmVzcG9uc2VzIGFuZCBSZWRpcmVjdHM8L2E+PC9oMj4KICAgIAoKICAgIDxwPkFwYWNoZSdzIGJlaGF2aW9yIHRvIHJlZGlyZWN0ZWQgVVJMcyBoYXMgYmVlbiBtb2RpZmllZCBzbwogICAgdGhhdCBhZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIGEKICAgIHNjcmlwdC9zZXJ2ZXItaW5jbHVkZS48L3A+CgogICAgPGgzPk9sZCBiZWhhdmlvcjwvaDM+CiAgICAgIAoKICAgICAgPHA+U3RhbmRhcmQgQ0dJIHZhcnMgd2VyZSBtYWRlIGF2YWlsYWJsZSB0byBhIHNjcmlwdCB3aGljaAogICAgICBoYXMgYmVlbiByZWRpcmVjdGVkIHRvLiBObyBpbmRpY2F0aW9uIG9mIHdoZXJlIHRoZQogICAgICByZWRpcmVjdGlvbiBjYW1lIGZyb20gd2FzIHByb3ZpZGVkLjwvcD4KICAgIAoKICAgIDxoMz5OZXcgYmVoYXZpb3I8L2gzPgogICAgICAKCiAgICAgIDxwPkEgbmV3IGJhdGNoIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aWxsIGJlIGluaXRpYWxpemVkCiAgICAgIGZvciB1c2UgYnkgYSBzY3JpcHQgd2hpY2ggaGFzIGJlZW4gcmVkaXJlY3RlZCB0by4gRWFjaCBuZXcKICAgICAgdmFyaWFibGUgd2lsbCBoYXZlIHRoZSBwcmVmaXggPGNvZGU+UkVESVJFQ1RfPC9jb2RlPi4KICAgICAgPGNvZGU+UkVESVJFQ1RfPC9jb2RlPiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIGNyZWF0ZWQgZnJvbQogICAgICB0aGUgQ0dJIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aGljaCBleGlzdGVkIHByaW9yIHRvIHRoZQogICAgICByZWRpcmVjdCwgdGhleSBhcmUgcmVuYW1lZCB3aXRoIGEgPGNvZGU+UkVESVJFQ1RfPC9jb2RlPgogICAgICBwcmVmaXgsIDxlbT5pLmUuPC9lbT4sIDxjb2RlPkhUVFBfVVNFUl9BR0VOVDwvY29kZT4gYmVjb21lcwogICAgICA8Y29kZT5SRURJUkVDVF9IVFRQX1VTRVJfQUdFTlQ8L2NvZGU+LiBJbiBhZGRpdGlvbiB0byB0aGVzZQogICAgICBuZXcgdmFyaWFibGVzLCBBcGFjaGUgd2lsbCBkZWZpbmUgPGNvZGU+UkVESVJFQ1RfVVJMPC9jb2RlPgogICAgICBhbmQgPGNvZGU+UkVESVJFQ1RfU1RBVFVTPC9jb2RlPiB0byBoZWxwIHRoZSBzY3JpcHQgdHJhY2UgaXRzCiAgICAgIG9yaWdpbi4gQm90aCB0aGUgb3JpZ2luYWwgVVJMIGFuZCB0aGUgVVJMIGJlaW5nIHJlZGlyZWN0ZWQgdG8KICAgICAgY2FuIGJlIGxvZ2dlZCBpbiB0aGUgYWNjZXNzIGxvZy48L3A+CgogICAgICA8cD5JZiB0aGUgRXJyb3JEb2N1bWVudCBzcGVjaWZpZXMgYSBsb2NhbCByZWRpcmVjdCB0byBhIENHSQogICAgICBzY3JpcHQsIHRoZSBzY3JpcHQgc2hvdWxkIGluY2x1ZGUgYSAiPGNvZGU+U3RhdHVzOjwvY29kZT4iCiAgICAgIGhlYWRlciBmaWVsZCBpbiBpdHMgb3V0cHV0IGluIG9yZGVyIHRvIGVuc3VyZSB0aGUgcHJvcGFnYXRpb24KICAgICAgYWxsIHRoZSB3YXkgYmFjayB0byB0aGUgY2xpZW50IG9mIHRoZSBlcnJvciBjb25kaXRpb24gdGhhdAogICAgICBjYXVzZWQgaXQgdG8gYmUgaW52b2tlZC4gRm9yIGluc3RhbmNlLCBhIFBlcmwgRXJyb3JEb2N1bWVudAogICAgICBzY3JpcHQgbWlnaHQgaW5jbHVkZSB0aGUgZm9sbG93aW5nOjwvcD4KCiAgICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgogICAgICAgIC4uLiA8YnIgLz4KICAgICAgICBwcmludCAgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG4iOyA8YnIgLz4KICAgICAgICBwcmludGYgIlN0YXR1czogJXMgQ29uZGl0aW9uIEludGVyY2VwdGVkXG4iLCAkRU5WeyJSRURJUkVDVF9TVEFUVVMifTsgPGJyIC8+CiAgICAgICAgLi4uCiAgICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgICA8cD5JZiB0aGUgc2NyaXB0IGlzIGRlZGljYXRlZCB0byBoYW5kbGluZyBhIHBhcnRpY3VsYXIgZXJyb3IKICAgICAgY29uZGl0aW9uLCBzdWNoIGFzIDxjb2RlPjQwNCZuYnNwO05vdCZuYnNwO0ZvdW5kPC9jb2RlPiwgaXQgY2FuCiAgICAgIHVzZSB0aGUgc3BlY2lmaWMgY29kZSBhbmQgZXJyb3IgdGV4dCBpbnN0ZWFkLjwvcD4KCiAgICAgIDxwPk5vdGUgdGhhdCB0aGUgc2NyaXB0IDxlbT5tdXN0PC9lbT4gZW1pdCBhbiBhcHByb3ByaWF0ZQogICAgICA8Y29kZT5TdGF0dXM6PC9jb2RlPiBoZWFkZXIgKHN1Y2ggYXMgPGNvZGU+MzAyJm5ic3A7Rm91bmQ8L2NvZGU+KSwgaWYgdGhlCiAgICAgIHJlc3BvbnNlIGNvbnRhaW5zIGEgPGNvZGU+TG9jYXRpb246PC9jb2RlPiBoZWFkZXIgKGluIG9yZGVyIHRvIGlzc3VlIGEKICAgICAgY2xpZW50IHNpZGUgcmVkaXJlY3QpLiBPdGhlcndpc2UgdGhlIDxjb2RlPkxvY2F0aW9uOjwvY29kZT4gaGVhZGVyIG1heQogICAgICBoYXZlIG5vIGVmZmVjdC48L3A+CiAgICAKICA8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuL2VuL2N1c3RvbS1lcnJvci5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9jdXN0b20tZXJyb3IuaHRtbCIgaHJlZmxhbmc9ImVzIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVzcGHxb2wiPiZuYnNwO2VzJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvY3VzdG9tLWVycm9yLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9jdXN0b20tZXJyb3IuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAwOCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Ii4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlNpdGVtYXA8L2E+PC9wPjwvZGl2Pgo8L2JvZHk+PC9odG1sPg==