PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlcyIgeG1sOmxhbmc9ImVzIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5SZXNwdWVzdGFzIGRlIEVycm9yIFBlcnNvbmFsaXphZGFzIC0gU2Vydmlkb3IgSFRUUCBBcGFjaGUgVmVyc2nzbiAyLjU8L3RpdGxlPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4vc3R5bGUvY3NzL3ByZXR0aWZ5LmNzcyIgLz4KPHNjcmlwdCBzcmM9Ii4vc3R5bGUvc2NyaXB0cy9wcmV0dGlmeS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwvc2NyaXB0PgoKPGxpbmsgaHJlZj0iLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5IGlkPSJtYW51YWwtcGFnZSI+PGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5N82R1bG9zPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2YXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPlByZWd1bnRhcyBGcmVjdWVudGVzPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc2FyaW88L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPk1hcGEgZGVsIHNpdGlvIHdlYjwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPlZlcnNp824gMi41IGRlbCBTZXJ2aWRvciBIVFRQIEFwYWNoZTwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9mZWF0aGVyLnBuZyIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5TZXJ2aWRvciBIVFRQPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGFjafNuPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5WZXJzafNuIDIuNTwvYT48L2Rpdj48ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPjxkaXYgaWQ9InByZWFtYmxlIj48aDE+UmVzcHVlc3RhcyBkZSBFcnJvciBQZXJzb25hbGl6YWRhczwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5JZGlvbWFzIGRpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi9lbi9jdXN0b20tZXJyb3IuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZXMvY3VzdG9tLWVycm9yLmh0bWwiIHRpdGxlPSJFc3Bh8W9sIj4mbmJzcDtlcyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2N1c3RvbS1lcnJvci5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvY3VzdG9tLWVycm9yLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9jdXN0b20tZXJyb3IuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9jdXN0b20tZXJyb3IuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj4KCgogICAgPHA+QXVucXVlIGVsIFNlcnZpZG9yIEFwYWNoZSBIVFRQIG9mcmVjZSByZXNwdWVzdGFzIGRlIGVycm9yIGdlbulyaWNvcyBlbgogICAgZWwgY2FzbyBkZSBsb3MgY/NkaWdvcyBkZSBlc3RhZG8gNHh4IG8gNXh4ICBIVFRQLCDpc3RhcyByZXNwdWVzdGFzIHNvbiAKICAgIGJhc3RhbnRlIGF1c3RlcmFzLCBubyBpbmZvcm1hdGl2YXMsIHkgcHVlZGUgc2VyIGludGltaWRhbnRlIHBhcmEgbG9zIAogICAgdXN1YXJpb3MgZGVsIHNpdGlvLiBTaSBsbyBkZXNlYSwgcGFyYSBwcm9wb3JjaW9uYXIgcmVzcHVlc3RhcyBkZSBlcnJvciAKICAgIHBlcnNvbmFsaXphZG9zIHF1ZSBzb24gbyBiaWVuIG3hcyBhbWFibGVzLCBvIGVuIGFsZ/puIGlkaW9tYSBxdWUgbm8gc2VhIAogICAgSW5nbOlzLCBvIHRhbCB2ZXogcXVlIHNvbiBkZSB1biBlc3RpbG8gbeFzIGFjb3JkZSBjb24gc3UgZGlzZfFvIGRlbCBzaXRpby48L3A+CgogICAgPHA+UmVzcHVlc3RhcyBkZSBlcnJvciBwZXJzb25hbGl6YWRhcyBzZSBwdWVkZW4gZGVmaW5pciBwYXJhIGN1YWxxdWllciBj82RpZ28gSFRUUAogICAgZGVzaWduYWRvIGNvbW8gY29uZGljafNuIGRlIGVycm9yIC0gRXN0byBlcywgY3VhbHF1aWVyIGVzdGFkbyA0eHgg8yA1eHguPC9wPgoKICAgIDxwPkFkZW3hcywgc2UgcHJvcG9yY2lvbmFuIHVuIGNvbmp1bnRvIGRlIHZhbG9yZXMsIGRlIG1hbmVyYSBxdWUgZWwgCiAgICAgIGRvY3VtZW50byBkZSBlcnJvciBwdWVkZSBzZXIgcGVyc29uYWxpemFkbyBt4XMgYWRlbGFudGUsIGJhc2FkbyBlbiAKICAgICAgbG9zIHZhbG9yZXMgZGUgZXN0YXMgdmFyaWFibGVzLCB1c2FuZG8gPGEgaHJlZj0iaG93dG8vc3NpLmh0bWwiPkluY2x1c2lvbmVzIGRlbCAKICAgICAgTGFkbyBkZWwgU2Vydmlkb3IgKFNTSSk8L2E+LiBPIGJpZW4sIHB1ZWRlIHRlbmVyIGNvbmRpY2lvbmVzIGRlIGVycm9yIHF1ZSBtYW5lamUgCiAgICAgIHVuIGNnaSwgdSBvdHJvIGNvbnRyb2xhZG9yIGRpbuFtaWNvIChQSFAsIG1vZF9wZXJsLCBldGMpLCBxdWUKICAgICBoYWNlIHVzbyBkZSBlc3RhcyB2YXJpYWJsZXMuPC9wPgoKICA8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNjb25maWd1cmF0aW9uIj5Db25maWd1cmFjafNuPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjdmFyaWFibGVzIj5WYXJpYWJsZXMgRGlzcG9uaWJsZXM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNjdXN0b20iPlBlcnNvbmFsaXphbmRvIFJlc3B1ZXN0YXMgZGUgRXJyb3JlczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI211bHRpLWxhbmciPkRvY3VtZW50b3MgZGUgZXJyb3IgIHBlcnNvbmFsaXphZG9zIAogICAgTXVsdGlsZW5ndWE8L2E+PC9saT4KPC91bD48aDM+Q29uc3VsdGUgdGFtYmnpbjwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbWVudGFyaW9zPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJjb25maWd1cmF0aW9uIiBpZD0iY29uZmlndXJhdGlvbiI+Q29uZmlndXJhY2nzbjwvYT48L2gyPgoKICAgIDxwPkxvcyBkb2N1bWVudG9zIGRlIGVycm9yIHBlcnNvbmFsaXphZG9zIHNlIGNvbmZpZ3VyYW4KICAgIG1lZGlhbnRlIGxhIGRpcmVjdGl2YSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZXJyb3Jkb2N1bWVudCI+RXJyb3JEb2N1bWVudDwvYT48L2NvZGU+LAogICAgcXVlIHB1ZWRlIHNlciB1c2FkbyBlbiBlbCBjb25qdW50byBnZW5lcmFsLCBkZSBsb3MgaG9zdHMgdmlydHVhbGVzIG8gZW4gZGlyZWN0b3Jpb3MuCiAgICBUYW1iaeluIHB1ZWRlbiBzZXIgdXNhZG9zIGVuIGxvcyBmaWNoZXJvcyAuaHRhY2Nlc3Mgc2kKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNhbGxvd292ZXJyaWRlIj5BbGxvd092ZXJyaWRlPC9hPjwvY29kZT5lc3RhIGNvbmZpZ3VyYWRvIGEgCiAgICBGaWxlSW5mby48L3A+CgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkVycm9yRG9jdW1lbnQgNTAwICJQZXJk824sIE51ZXN0cm8gZXNjcmlwdCBoYSBmYWxsYWRvLiChQXkgTWFkcmUhIjxiciAvPgpFcnJvckRvY3VtZW50IDUwMCAvY2dpLWJpbi9jcmFzaC1yZWNvdmVyPGJyIC8+CkVycm9yRG9jdW1lbnQgNTAwIGh0dHA6Ly9lcnJvci5leGFtcGxlLmNvbS9zZXJ2ZXJfZXJyb3IuaHRtbDxiciAvPgpFcnJvckRvY3VtZW50IDQwNCAvZXJyb3JzL25vdF9mb3VuZC5odG1sIDxiciAvPgpFcnJvckRvY3VtZW50IDQwMSAvc3Vic2NyaXB0aW9uL2NvbW9fc3VzY3JpYmlyc2UuaHRtbDwvcHJlPgoKCiAgICA8cD5MYSBzaW50YXhpcyBkZSBsYSBkaXJlY3RpdmEgZGUgPGNvZGU+RXJyb3JEb2N1bWVudDwvY29kZT4gZXM6PC9wPgoKICAgIDxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5FcnJvckRvY3VtZW50ICZsdDtj82RpZ28tZGUtMy1k7WdpdG9zJmd0OyAmbHQ7YWNjafNuJmd0OzwvcHJlPgoKCiAgICA8cD5Eb25kZSBsYSBhY2Np824gc2Vy4SB0cmF0YWRhIGNvbW86PC9wPgoKICAgIDxvbD4KICAgICAgPGxpPlVuYSBVUkwgbG9jYWwgYSBsYSBxdWUgcmVkaXJlY2Npb25hciAoc2kgbGEgYWNjafNuIGVtcGllemEgY29uICIvIikuPC9saT4KICAgICAgPGxpPlVuYSBVUkwgZXh0ZXJuYSBhIGxhIHF1ZSByZWRpcmVjY2lvbmFyIChzaSBsYSBhY2Np824gZXMgdW5hIFVSTCB24WxpZGEpLjwvbGk+CiAgICAgIDxsaT5UZXh0byBwYXJhIG1vc3RyYXIgKHNpIG5pbmd1bmEgZGUgbGFzIGFudGVyaW9yZXMpLiBFbCB0ZXh0byB0aWVuZSBxdWUgZXN0YXIgCiAgICAgICAgZW50cmVjb21pbGxhZG8gKCJFUlJPUiIpIHNpICBjb25zaXN0ZSBkZSBtYXMgZGUgdW5hIHBhbGFicmEuPC9saT4KICAgIDwvb2w+CgogICAgPHA+Q3VhbmRvIHNlIHJlZGlyaWphIGEgdW5hIFVSTCBsb2NhbCwgc2UgZXN0YWJsZWNlbiB2YXJpYWJsZXMgZGUgCiAgICAgIGVudG9ybm8gYWRpY2lvbmFsZXMgZGUgbWFuZXJhIHF1ZSBsYSByZXNwdWVzdGEgcHVlZGUgc2VyIHBlcnNvbmFsaXphZGEuIAogICAgICDJc3RhcyB2YXJpYWJsZXMgbm8gc2UgZW527WFuIGEgVVJMcyBleHRlcm5hczwvcD4KCiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJ2YXJpYWJsZXMiIGlkPSJ2YXJpYWJsZXMiPlZhcmlhYmxlcyBEaXNwb25pYmxlczwvYT48L2gyPgoKICAgICAgPHA+UmVkaXJlY2Npb25hbmRvIGEgb3RyYSBVUkwgcHVlZGUgc2VyIPp0aWwsIHBlcm8gc/NsbyBzaSBhbGdvIGRlIGluZm9ybWFjafNuCiAgICAgICBwdWVkZSBzZXIgcGFzYWRvIGNvbW8gcGFy4W1ldHJvLCBsbyBjdeFsIHB1ZWRlIHNlciB1c2FkbyBwYXJhIGV4cGxpY2FyIGRlIAogICAgICAgZm9ybWEgbeFzIGNsYXJhIGVsIGVycm9yIG8gY3JlYXIgdW4gbG9nIGRlbCBtaXNtby48L3A+CgogICAgICA8cD5QYXJhIGNvbnNlZ3VpciBlc3RvLCBjdWFuZG8gc2UgZW527WEgZWwgcmVkaXJlY2Npb25hbWllbnRvIGRlIGVycm9yLCAKICAgICAgICBzZSBlc3RhYmxlY2Vy4W4gdmFyaWFibGVzIGRlIGVudG9ybm8gYWRpY2lvbmFsZXMsIHF1ZSBzZXLhIGdlbmVyYWRvIGEgCiAgICAgICAgcGFydGlyIGRlIGxhcyBjYWJlY2VyYXMgcHJlc3RhZGFzIGEgbGEgc29saWNpdHVkIG9yaWdpbmFsLCBhbnRlcG9uaWVuZG8gJ1JFRElSRUNUXycgCiAgICAgICAgZW4gZWwgbm9tYnJlIGRlIGxhIGNhYmVjZXJhIG9yaWdpbmFsLiBFc3RvIHByb3BvcmNpb25hIGVsIAogICAgICAgIGRvY3VtZW50byBkZSBlcnJvciBlbiBlbCDhbWJpdG8gZGUgbGEgcGV0aWNp824gb3JpZ2luYWw8L3A+CgogICAgICA8cD5Qb3IgZWplbXBsbywgZXMgcG9zaWJsZSBxdWUgc2UgcmVjaWJhLCBhZGVt4XMgZGUgbGFzIHZhcmlhYmxlcyBkZSAKICAgICAgICBlbnRvcm5vIG3hcyBoYWJpdHVhbGVzLCBsbyBzaWd1aWVudGU6PC9wPgoKICAgICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICAgUkVESVJFQ1RfSFRUUF9BQ0NFUFQ9Ki8qLCBpbWFnZS9naWYsIGltYWdlL2pwZWcsIGltYWdlL3BuZzxiciAvPgogICAgICAgIFJFRElSRUNUX0hUVFBfVVNFUl9BR0VOVD1Nb3ppbGxhLzUuMCBGZWRvcmEvMy41LjgtMS5mYzEyIEZpcmVmb3gvMy41Ljg8YnIgLz4KICAgICAgICBSRURJUkVDVF9QQVRIPS46L2JpbjovdXNyL2xvY2FsL2Jpbjovc2JpbjxiciAvPgogICAgICAgIFJFRElSRUNUX1FVRVJZX1NUUklORz08YnIgLz4KICAgICAgICBSRURJUkVDVF9SRU1PVEVfQUREUj0xMjEuMzQ1Ljc4LjEyMzxiciAvPgogICAgICAgIFJFRElSRUNUX1JFTU9URV9IT1NUPWNsaWVudC5leGFtcGxlLmNvbTxiciAvPgogICAgICAgIFJFRElSRUNUX1NFUlZFUl9OQU1FPXd3dy5leGFtcGxlLmVkdTxiciAvPgogICAgICAgIFJFRElSRUNUX1NFUlZFUl9QT1JUPTgwPGJyIC8+CiAgICAgICAgUkVESVJFQ1RfU0VSVkVSX1NPRlRXQVJFPUFwYWNoZS8yLjIuMTU8YnIgLz4KICAgICAgICBSRURJUkVDVF9VUkw9L2NnaS1iaW4vYnVnZ3kucGwKICAgICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAgIDxwPiBMYXMgdmFyaWFibGVzIGRlIGVudG9ybm8gZGUgdGlwbyA8Y29kZT5SRURJUkVDVF88L2NvZGU+IHNlIGNyZWFuIGEgcGFydGlyCiAgICAgIGRlIGxhcyB2YXJpYWJsZXMgZGUgZW50b3JubyBxdWUgZXhpc3TtYW4gYW50ZXMgZGUgbGEgcmVkaXJlY2Np824uIFNlIHJlbm9tYnJhbiAKICAgICAgY29uIHByZWZpam8gPGNvZGU+UkVESVJFQ1RfPC9jb2RlPiwgPGVtPnBvciBlamVtcGxvOjwvZW0+LAogICAgICA8Y29kZT5IVFRQX1VTRVJfQUdFTlQ8L2NvZGU+IHNlIGNvbnZpZXJ0ZSBlbgogICAgICA8Y29kZT5SRURJUkVDVF9IVFRQX1VTRVJfQUdFTlQ8L2NvZGU+LjwvcD4KCiAgICAgIDxwPjxjb2RlPlJFRElSRUNUX1VSTDwvY29kZT4sIDxjb2RlPlJFRElSRUNUX1NUQVRVUzwvY29kZT4sIHkKICAgICAgPGNvZGU+UkVESVJFQ1RfUVVFUllfU1RSSU5HPC9jb2RlPiBlc3ThbiBnYXJhbnRpemFkb3MgcGFyYSBzZXIgZmlqYWRvLCB5CiAgICAgIHNlIGVzdGFibGVjZXLhbiBsYXMgb3RyYXMgY2FiZWNlcmFzIHNvbG8gc2kgZXhpc3TtYW4gYW50ZXMgZGUgCiAgICAgIGxhIGNvbmRpY2nzbiBkZSBlcnJvci48L3A+CgogICAgICA8cD48c3Ryb25nPk5pbmd1bmE8L3N0cm9uZz4gZGUgZXN0YXMgY29uZGljaW9uZXMgc2UgZXN0YWJsZWNlcuEgCiAgICAgIHNpIGVsb2JqZXRpdm8gZGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2Vycm9yZG9jdW1lbnQiPkVycm9yRG9jdW1lbnQ8L2E+PC9jb2RlPiBlcyB1bmEgCiAgICAgIHJlZGlyZWNjafNuIDxlbT5leHRlcm5hbDwvZW0+IChuYWRhIGEgcGFydGlyIGRlIHVuIG5vbWJyZSBkZSBlc3F1ZW1hIAogICAgICBjb21vIDxjb2RlPmh0dHA6PC9jb2RlPiwgaW5jbHVzbyBzaSBzZSByZWZpZXJlIGEgbGEgbWlzbWEgbeFxdWluYSBxdWUgZWwgc2Vydmlkb3IuPC9wPgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iY3VzdG9tIiBpZD0iY3VzdG9tIj5QZXJzb25hbGl6YW5kbyBSZXNwdWVzdGFzIGRlIEVycm9yZXM8L2E+PC9oMj4KCiAgICAgIDxwPlNpIGFwdW50YSBzdSA8Y29kZT4gRXJyb3JEb2N1bWVudDwvY29kZT4gYSBhbGd1bmEgdmFyaWVkYWQgZGUgY29udHJvbGFkb3IKICAgICAgIGRpbuFtaWNvIGNvbW8gdW4gZG9jdW1lbnRvIHF1ZSBzZSBpbmNsdXllIGVuIGVsIGxhZG8gZGVsIHNlcnZpZG9yIGNvbW8gQ0dJLCAKICAgICAgIHNjcmlwdCB1IG90cm8gdGlwbyBkZSBtYW5lamFkb3IsIGVzIHBvc2libGUgcXVlIGRlc2VlIHV0aWxpemFyIGxhcyB2YXJpYWJsZXMgCiAgICAgICBkZSBlbnRvcm5vIGRpc3BvbmlibGVzIHBhcmEgcGVyc29uYWxpemFyIGVzdGEgcmVzcHVlc3RhLjwvcD4KCiAgICAgIDxwPlNpIGVsIEVycm9yRG9jdW1lbnQgZXNwZWNpZmljYSB1bmEgcmVkaXJlY2Np824gbG9jYWwgYSB1biBzY3JpcHQgQ0dJLCBlbCAKICAgICAgICBzY3JpcHQgZGViZSBpbmNsdWlyIHVuIGNhbXBvIGRlIGNhYmVjZXJhIGRlIHRpcG8gIjxjb2RlPlN0YXR1czo8L2NvZGU+IiBlbiAKICAgICAgICBzdSBzYWxpZGEgY29uIGVsIGZpbiBkZSBhc2VndXJhciBsYSBwcm9wYWdhY2nzbiBkZQogICAgICB0b2RvIGVsIGNhbWlubyBkZSB2dWVsdGEgYWwgY2xpZW50ZSBkZSBsYSBjb25kaWNp824gZGUgZXJyb3IgcXVlIHNlIGdlbmVy8y4KICAgICAgUG9yIGVqZW1wbG8sIHVuIHNjcmlwdCBkZSBQZXJsIEVycm9yRG9jdW1lbnQgcG9kcu1hIGluY2x1aXIgbG8gc2lndWllbnRlOjwvcD4KCiAgICAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLXBlcmwiPi4uLgpwcmludCAgIkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXG4iOyA8YnIgLz4KcHJpbnRmICJTdGF0dXM6ICVzIENvbmRpdGlvbiBJbnRlcmNlcHRlZFxuIiwgJEVOVnsiUkVESVJFQ1RfU1RBVFVTIn07IDxiciAvPgouLi48L3ByZT4KCgogICAgICA8cD4gU2kgZWwgc2NyaXB0IGVzdOEgZGVkaWNhZG8gYWwgbWFuZWpvIGRlIHVuYSBjb25kaWNp824gZGUgZXJyb3IgZW4gcGFydGljdWxhciwKICAgICAgIGNvbW8gcG9yIGVqZW1wbG8gPGNvZGU+NDA0Jm5ic3A7Tm90Jm5ic3A7Rm91bmQ8L2NvZGU+LCBwdWVkZSB1c2FyIGVsIHByb3BpbwogICAgICAgIGPzZGlnbyB5IGVsIGVycm9yIGRlIHRleHRvIGVuIHN1IGx1Z2FyLjwvcD4KCiAgICAgIDxwPlRlbmdhIGVuIGN1ZW50YSBxdWUgc2kgbGEgcmVzcHVlc3RhIGNvbnRpZW5lIDxjb2RlPkxvY2F0aW9uOjwvY29kZT4KICAgICAgaGVhZGVyIChjb24gZWwgZmluIGRlIGVtaXRpciB1bmEgcmVkaXJlY2Np824gZGVsIGxhZG8gZGVsIGNsaWVudGUpLCBlbCAKICAgICAgc2NyaXB0IDxlbT5kZWJlcuE8L2VtPmVtaXRpciB1bmEgY2FiZWNlcmEgYXByb3BpYWRhIGNvbiBlbCA8Y29kZT5TdGF0dXM6PC9jb2RlPiAKICAgICAgKGNvbW8gPGNvZGU+MzAyJm5ic3A7Rm91bmQ8L2NvZGU+KS4gRGUgbG8gY29udHJhcmlvIGxhIGNhYmVjZXJhIAogICAgICA8Y29kZT5Mb2NhdGlvbjo8L2NvZGU+IG5vIHRlbmRy4SBuaW5n+m4gZWZlY3RvLjwvcD4KCiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJtdWx0aS1sYW5nIiBpZD0ibXVsdGktbGFuZyI+RG9jdW1lbnRvcyBkZSBlcnJvciAgcGVyc29uYWxpemFkb3MgCiAgICBNdWx0aWxlbmd1YTwvYT48L2gyPgoKICAgIDxwPkNvbiBsYSBpbnN0YWxhY2nzbiBkZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2UgcHJvcG9yY2lvbmEgdW4gZGlyZWN0b3JpbyAKICAgICAgcGVyc29uYWwgY29uIGRpZmVyZW50ZXMgbWVuc2FqZXMgZGUgZXJyb3JlcyB0cmFkdWNpZG9zIGEgMTYgaWRpb21hcyAKICAgICAgZGlmZXJlbnRlcy4gVGFtYmnpbiBoYXkgdW4gYXJjaGl2byBkZSBjb25maWd1cmFjafNuIGVsIGVsIGRpcmVjdG9yaW8gCiAgICA8Y29kZT5jb25mL2V4dHJhPC9jb2RlPiBxdWUgcHVlZGUgc2VyIGluY2x1aWRvIHBhcmEgYfFhZGlyIGVzdGEgZnVuY2lvbmFsaWRhZC48L3A+CgogICAgPHA+RW4gZWwgYXJjaGl2byBkZSBjb25maWd1cmFjafNuIGRlbCBzZXJ2aWRvciwgdmVy4SB1bmEgbO1uZWEgY29tbzo8L3A+CgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiAgICAjIE11bHRpLWxhbmd1YWdlIGVycm9yIG1lc3NhZ2VzPGJyIC8+CiAgICAjSW5jbHVkZSBjb25mL2V4dHJhL2h0dHBkLW11bHRpbGFuZy1lcnJvcmRvYy5jb25mPC9wcmU+CgoKICAgIDxwPkRlc2NvbWVudGFuZG8g6XN0ZSA8Y29kZT5JbmNsdWRlPC9jb2RlPiBoYWJpbGl0YXLhIGVzdGEgY2FyYWN0ZXLtc3RpY2EsCiAgICB5IHByb3BvcmNpb25hciBtZW5zYWplcyBkZSBlcnJvciBkZSBpZGlvbWEtbmVnb2NpYWRvLAogICAgYmFzYWRvIGVuIGVsIGlkaW9tYSBkZSBwcmVmZXJlbmNpYSBlc3RhYmxlY2lkbyBlbiBlbCBuYXZlZ2Fkb3IgZGVsIGNsaWVudGUuPC9wPgoKICAgIDxwPkFkZW3hcywgZXN0b3MgZG9jdW1lbnRvcyBjb250aWVuZW4gdmFyaWFzIHZhcmlhYmxlcyBkZWwgdGlwbyAKICAgIDxjb2RlPlJFRElSRUNUXzwvY29kZT4sIGNvbiBsbyBxdWUgc2UgbGUgcHVlZGUgYfFhZGlyIGluZm9ybWFjafNuIGFkaWNpb25hbCAKICAgIGRlIGxvIHF1ZSBoYSBvY3VycmlkbyBhbCB1c3VhcmlvIGZpbmFsLCB5IHF1ZSBwdWVkZW4gaGFjZXIgYWhvcmEuPC9wPgoKICAgIDxwPkVzdG9zIGRvY3VtZW50b3MgcHVlZGVuIHNlciBwZXJzb25hbGl6YWRvcyBkZSBjdWFscXVpZXIgZm9ybWEgcXVlIGRlc2VlIAogICAgICBtb3N0cmFyIG3hcyBpbmZvcm1hY2nzbiBhbCB1c3VhcmlvIGEgY2VyY2EgZGVsIHN1IHNpdGlvIHdlYiwgeSBxdWUgcG9kcuFuIGVuY29udHJhciBlbiDpbC48L3A+CgogICAgPHA+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2luY2x1ZGUuaHRtbCI+bW9kX2luY2x1ZGU8L2E+PC9jb2RlPiB5IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9uZWdvdGlhdGlvbi5odG1sIj5tb2RfbmVnb3RpYXRpb248L2E+PC9jb2RlPgogICAgVGllbmVuIHF1ZSBlc3RhciBoYWJpbGl0YWRvcyBwYXJhIHVzYXIgZXN0YXMgY2FyYWN0ZXLtc3RpY2FzLjwvcD4KCiA8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPklkaW9tYXMgZGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2VuL2N1c3RvbS1lcnJvci5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9jdXN0b20tZXJyb3IuaHRtbCIgdGl0bGU9IkVzcGHxb2wiPiZuYnNwO2VzJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvY3VzdG9tLWVycm9yLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9jdXN0b20tZXJyb3IuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL2N1c3RvbS1lcnJvci5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL2N1c3RvbS1lcnJvci5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21lbnRhcmlvczwvYT48L2gyPjxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPjxiciAvPlRoaXMgaXMgbm90IGEgUSZhbXA7QSBzZWN0aW9uLiBDb21tZW50cyBwbGFjZWQgaGVyZSBzaG91bGQgYmUgcG9pbnRlZCB0b3dhcmRzIHN1Z2dlc3Rpb25zIG9uIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbiBvciBzZXJ2ZXIsIGFuZCBtYXkgYmUgcmVtb3ZlZCBhZ2FpbiBieSBvdXIgbW9kZXJhdG9ycyBpZiB0aGV5IGFyZSBlaXRoZXIgaW1wbGVtZW50ZWQgb3IgY29uc2lkZXJlZCBpbnZhbGlkL29mZi10b3BpYy4gUXVlc3Rpb25zIG9uIGhvdyB0byBtYW5hZ2UgdGhlIEFwYWNoZSBIVFRQIFNlcnZlciBzaG91bGQgYmUgZGlyZWN0ZWQgYXQgZWl0aGVyIG91ciBJUkMgY2hhbm5lbCwgI2h0dHBkLCBvbiBGcmVlbm9kZSwgb3Igc2VudCB0byBvdXIgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvbGlzdHMuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4uPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCnZhciBjb21tZW50c19zaG9ydG5hbWUgPSAnaHR0cGQnOwp2YXIgY29tbWVudHNfaWRlbnRpZmllciA9ICdodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL3RydW5rL2N1c3RvbS1lcnJvci5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGljZW5jaWEgYmFqbyBsb3MgdOlybWlub3MgZGUgbGEgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TfNkdWxvczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmFzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5QcmVndW50YXMgRnJlY3VlbnRlczwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NhcmlvPC9hPiB8IDxhIGhyZWY9Ii4vc2l0ZW1hcC5odG1sIj5NYXBhIGRlbCBzaXRpbyB3ZWI8L2E+PC9wPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCmlmICh0eXBlb2YocHJldHR5UHJpbnQpICE9PSAndW5kZWZpbmVkJykgewogICAgcHJldHR5UHJpbnQoKTsKfQovLy0tPjwhXV0+PC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+