PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlcyIgeG1sOmxhbmc9ImVzIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5Db21waWxhciBlIEluc3RhbGFyIC0gU2Vydmlkb3IgQXBhY2hlIEhUVFAgVmVyc2nzbiAyLjQ8L3RpdGxlPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4vc3R5bGUvY3NzL3ByZXR0aWZ5LmNzcyIgLz4KPHNjcmlwdCBzcmM9Ii4vc3R5bGUvc2NyaXB0cy9wcmV0dGlmeS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwvc2NyaXB0PgoKPGxpbmsgaHJlZj0iLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5IGlkPSJtYW51YWwtcGFnZSI+PGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5N82R1bG9zPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZhczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+UHJlZ3VudGFzIEZyZWN1ZW50ZXM8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zYXJpbzwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+TWFwYSBkZWwgc2l0aW8gd2ViPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+VmVyc2nzbiAyLjQgZGVsIFNlcnZpZG9yIEhUVFAgQXBhY2hlPC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPlNlcnZpZG9yIEhUVFA8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YWNp8248L2E+ICZndDsgPGEgaHJlZj0iLi8iPlZlcnNp824gMi40PC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5Db21waWxhciBlIEluc3RhbGFyPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPklkaW9tYXMgZGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2RlL2luc3RhbGwuaHRtbCIgaHJlZmxhbmc9ImRlIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkRldXRzY2giPiZuYnNwO2RlJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZW4vaW5zdGFsbC5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9pbnN0YWxsLmh0bWwiIHRpdGxlPSJFc3Bh8W9sIj4mbmJzcDtlcyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2luc3RhbGwuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL2luc3RhbGwuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL2luc3RhbGwuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9pbnN0YWxsLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+CgoKICAgIDxwPslzdGUgZG9jdW1lbnRvIGhhY2UgcmVmZXJlbmNpYSBhIGxhIGNvbXBpbGFjafNuIHkgbGEgaW5zdGFsYWNp824gZGVsIEFwYWNoZSAKICAgIEhUVFAgU2VydmVyIHPzbG8gcGFyYSBsb3Mgc2lzdGVtYXMgVW5peCB5ICB0aXBvIFVuaXguIFBhcmEgbGEgY29tcGlsYWNp824gZSBpbnN0YWxhY2nzbiBlbiBXaW5kb3dzICBpciBhICA8YSBocmVmPSJwbGF0Zm9ybS93aW5kb3dzLmh0bWwiPlVzYW5kbyBBcGFjaGUgSFRUUCBTZXJ2ZXIgY29uIE1pY3Jvc29mdAogICAgV2luZG93czwvYT4geSA8YSBocmVmPSJwbGF0Zm9ybS93aW5fY29tcGlsaW5nLmh0bWwiPkNvbXBpbGFuZG8gQXBhY2hlIHBhcmEgTWljcm9zb2Z0IFdpbmRvd3M8L2E+LgogICAgUGFyYSBvdHJhcyBwbGF0YWZvcm1hcyB2aXNpdGUgbGEgZG9jdW1lbnRhY2nzbiBzb2JyZSA8YSBocmVmPSJwbGF0Zm9ybS8iPnBsYXRhZm9ybWFzPC9hPi48L3A+CgogICAgPHA+QXBhY2hlIGh0dHBkIHVzYSA8Y29kZT5saWJ0b29sPC9jb2RlPiB5IDxjb2RlPmF1dG9jb25mPC9jb2RlPgogICAgcGFyYSBjcmVhciB1biBlbnRvcm5vIGRlIGNvbXBpbGFjafNuIHF1ZSBzZSBwYXJlY2UgYSBtdWNob3Mgb3Ryb3MgcHJveWVjdG9zIGRlIGPzZGlnbyBhYmllcnRvPC9wPgoKICAgIDxwPlNpIGVzdOEgYWN0dWFsaXphbmRvIGRlc2RlIHVuYSB2ZXJzafNuIG1lbm9yIGEgbGEgc2lndWllbnRlIChwb3IKICAgIGVqZW1wbG8sIDIuNC44IGEgMi40LjkpLCBwYXNhIGEgbGEgc2VjY2nzbiBkZSAgPGEgaHJlZj0iI3VwZ3JhZGluZyI+YWN0dWFsaXphY2nzbjwvYT4uPC9wPgoKPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9mb3VuZGF0aW9uL2NvbnRyaWJ1dGluZy5odG1sIiBjbGFzcz0iYmFkZ2UiPjxpbWcgc3JjPSJodHRwczovL3d3dy5hcGFjaGUub3JnL2ltYWdlcy9TdXBwb3J0QXBhY2hlLXNtYWxsLnBuZyIgYWx0PSJTdXBwb3J0IEFwYWNoZSEiIC8+PC9hPjx1bCBpZD0idG9jIj48bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI292ZXJ2aWV3Ij5EZXNjcmlwY2nzbiBnZW5lcmFsIHBhcmEgbG9zIGltcGFjaWVudGVzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjcmVxdWlyZW1lbnRzIj5SZXF1aXNpdG9zPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZG93bmxvYWQiPkRlc2NhcmdhcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2V4dHJhY3QiPkRlc2NvbXByaW1pcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2NvbmZpZ3VyZSI+Q29uZmlndXJhY2nzbiBkZSBsYSBlc3RydWN0dXJhIGRlCmRpcmVjdG9yaW9zPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjY29tcGlsZSI+QnVpbGQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNpbnN0YWxsIj5JbnN0YWxhcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2N1c3RvbWl6ZSI+UGVyc29uYWxpemFyIEFQQUNIRTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3Rlc3QiPkNvbXByb2JhciBxdWUgbGEgaW5zdGFsYWNp824KZnVuY2lvbmE8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN1cGdyYWRpbmciPkFjdHVhbGl6YXIgdW5hIGluc3RhbGFjafNuIHByZXZpYTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3RoaXJkcCI+UGFxdWV0ZXMgZGUgdGVyY2Vyb3M8L2E+PC9saT4KPC91bD48aDM+Q29uc3VsdGUgdGFtYmnpbjwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0icHJvZ3JhbXMvY29uZmlndXJlLmh0bWwiPkNvbmZpZ3VyYWNp824gZGVsIOFyYm9sIGRlIGxhcyBmdWVudGVzIGRlIGPzZGlnbzwvYT48L2xpPjxsaT48YSBocmVmPSJpbnZva2luZy5odG1sIj5BcnJhbmNhbmRvIEFwYWNoZSBodHRwZDwvYT48L2xpPjxsaT48YSBocmVmPSJzdG9wcGluZy5odG1sIj5QYXJhZGEgeSBSZWluaWNpbzwvYT48L2xpPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tZW50YXJpb3M8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9Im92ZXJ2aWV3IiBpZD0ib3ZlcnZpZXciPkRlc2NyaXBjafNuIGdlbmVyYWwgcGFyYSBsb3MgaW1wYWNpZW50ZXM8L2E+PC9oMj4KCiAgICA8dGFibGU+CiAgICAgIAogICAgICA8dHI+CiAgICAgICAgPHRkPjxhIGhyZWY9IiNkb3dubG9hZCI+RGVzY2FyZ2E8L2E+PC90ZD4KCiAgICAgICAgPHRkPkRlc2NhcmdhIGxhIPpsdGltYSB2ZXJzafNuIAogICAgICAgICAgZGVzZGUgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG93bmxvYWQuY2dpI2FwYWNoZTI0Ij4KICAgICAgICAgIGh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2Rvd25sb2FkLmNnaTwvYT4KICAgICAgICA8L3RkPgogICAgICA8L3RyPgoKICAgICAgPHRyPgogICAgICAgIDx0ZD48YSBocmVmPSIjZXh0cmFjdCI+RXh0cmFlcjwvYT48L3RkPgoKICAgICAgICA8dGQ+PGNvZGU+JCBnemlwIC1kIGh0dHBkLTxlbT5OTjwvZW0+LnRhci5nejxiciAvPgogICAgICAgICAkIHRhciB4dmYgaHR0cGQtPGVtPk5OPC9lbT4udGFyPGJyIC8+CiAgICAgICAgICQgY2QgaHR0cGQtPGVtPk5OPC9lbT48L2NvZGU+PC90ZD4KICAgICAgPC90cj4KCiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGEgaHJlZj0iI2NvbmZpZ3VyZSI+Q29uZmlndXJhPC9hPjwvdGQ+CgogICAgICAgIDx0ZD48Y29kZT4kIC4vY29uZmlndXJlIC0tcHJlZml4PTxlbT5QUkVGSVg8L2VtPjwvY29kZT4KICAgICAgICA8L3RkPgogICAgICA8L3RyPgoKICAgICAgPHRyPgogICAgICAgIDx0ZD48YSBocmVmPSIjY29tcGlsZSI+Q29tcGlsYTwvYT48L3RkPgoKICAgICAgICA8dGQ+PGNvZGU+JCBtYWtlPC9jb2RlPiA8L3RkPgogICAgICA8L3RyPgoKICAgICAgPHRyPgogICAgICAgIDx0ZD48YSBocmVmPSIjaW5zdGFsbCI+SW5zdGFsYTwvYT48L3RkPgoKICAgICAgICA8dGQ+PGNvZGU+JCBtYWtlIGluc3RhbGw8L2NvZGU+IDwvdGQ+CiAgICAgIDwvdHI+CgogICAgICA8dHI+CiAgICAgICAgPHRkPjxhIGhyZWY9IiNjdXN0b21pemUiPlBlcnNvbmFsaXphbG88L2E+PC90ZD4KCiAgICAgICAgPHRkPjxjb2RlPiQgdmkgPGVtPlBSRUZJWDwvZW0+L2NvbmYvaHR0cGQuY29uZjwvY29kZT4gPC90ZD4KICAgICAgPC90cj4KCiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGEgaHJlZj0iI3Rlc3QiPlBydWViYTwvYT48L3RkPgoKICAgICAgICA8dGQ+PGNvZGU+JCA8ZW0+UFJFRklYPC9lbT4vYmluL2FwYWNoZWN0bCAtayBzdGFydDwvY29kZT4KICAgICAgICA8L3RkPgogICAgICA8L3RyPgogICAgPC90YWJsZT4KCiAgICA8cD48ZW0+Tk48L2VtPiBoYXkgcXVlIHJlZW1wbGF6YXJsbyBwb3IgZWwgbvptZXJvIGRlIGxhIHZlcnNp824gbWVub3IsIHkgPGVtPlBSRUZJWDwvZW0+IGhheSBxdWUgcmVlbXBsYXphcmxvIHBvciBsYSBydXRhIGVuIGxhIHF1ZSBzZSB2YSBhIGluc3RhbGFyIEFwYWNoZS4gU2kgbm8gZXNwZWNpZmljYSBuaW5n+m4gdmFsb3IgZW4gPGVtPlBSRUZJWDwvZW0+LCBlbCB2YWxvciBwb3IgZGVmZWN0byBxdWUgc2UgdG9tYSBlcyAvdXNyL2xvY2FsL2FwYWNoZTIuPC9wPgoKICAgIDxwPkNhZGEgcGFydGUgZGVsIHByb2Nlc28gZGUgY29uZmlndXJhY2nzbiBlIGluc3RhbGFjafNuIHNlIGRlc2NyaWJlIGRldGFsbGFkYW1lbnRlIG3hcyBhYmFqbywgZW1wZXphbmRvIHBvciBsb3MgcmVxdWlzaXRvcyBwYXJhIGNvbXBpbGFyIGUgaW5zdGFsYXIgQXBhY2hlLjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJyZXF1aXJlbWVudHMiIGlkPSJyZXF1aXJlbWVudHMiPlJlcXVpc2l0b3M8L2E+PC9oMj4KCiAgICA8cD5Fc3RvcyBzb24gbG9zIHJlcXVpc2l0b3MgbmVjZXNhcmlvcyBwYXJhIGNvbXBpbGFyIEFwYWNoZTo8L3A+CgogICAgPGRsPgogICAgICA8ZHQ+QVBSIHkgQVBSLVV0aWw8L2R0PgogICAgICA8ZGQ+QXNlZ/pyYXRlIGRlIHF1ZSB0aWVuZSBpbnN0YWxhZG8geWEgZW4gc3Ugc2lzdGVtYSBBUFIgeSBBUFItVXRpbC4gU2kgbm8gZXMgYXPtLCBvIG5vIHF1aWVyZSB1dGlsaXphciBsYSB2ZXJzafNuIHF1ZSBsZSBwcm9wb3JjaW9uYSBlbCBzaXN0ZW1hLCBwdWVkZSBkZXNjYXJnYXIgbGEg+mx0aW1hIHZlcnNp824gZGUgYW1ib3MgQVBSIHkgQVBSLVV0aWwgZGUKICAgICAgPGEgaHJlZj0iaHR0cDovL2Fwci5hcGFjaGUub3JnLyI+QXBhY2hlIEFQUjwvYT4sIGRlc2NvbXByaW1lbG8gZW4KICAgICAgIDxjb2RlPi9odHRwZF9zb3VyY2VfdHJlZV9yb290L3NyY2xpYi9hcHI8L2NvZGU+IHkgL2h0dHBkX3NvdXJjZV90cmVlX3Jvb3Q8Y29kZT4vc3JjbGliL2Fwci11dGlsPC9jb2RlPgogICAgICAoY2VyY2nzcmF0ZSBkZSBxdWUgbm8gZXhpc3RlbiBkaXJlY3RvcmlvcyBjb24gbvptZXJvcyBkZSB2ZXJzaW9uZXM7IHBvciBlamVtcGxvLAogICAgICBsYSBkaXN0cmlidWNp824gZGUgQVBSIGRlYmUgZXN0YXIgZW4gL2h0dHBkX3NvdXJjZV90cmVlX3Jvb3Qvc3JjbGliL2Fwci8pIHkgdXNhIGVsIGNvbWFuZG8KICAgICAgPGNvZGU+Li9jb25maWd1cmU8L2NvZGU+IDxjb2RlPi0tY29uLWxhcy1vcGNpb25lcy1pbmNsdWlkYXMtZW4tYXByPC9jb2RlPi4KICAgICAgRW4gYWxndW5hcyBwbGF0YWZvcm1hcyBkZWJlcuFzIGluc3RhbGFyIGxhIHBhcnRlIGNvcnJlc3BvbmRpZW50ZSBhIGxvcyBwYXF1ZXRlcyAKICAgICAgPGNvZGU+LWRldjwvY29kZT4gcGFyYSBwZXJtaXRpciBxdWUgaHR0cGQgc2UgZ2VuZXJlIGNvbnRyYSBsYSBpbnN0YWxhY2nzbiBkZSBsYSBjb3BpYSBkZSBBUFIgeSBBUFItVXRpbC48L2RkPgoKICAgICAgPGR0PkxpYnJlcu1hIENvbXBhdGlibGUgZGUgZXhwcmVzaW9uZXMgcmVndWxhcmVzIGRlIFBlcmwgKFBDUkUpPC9kdD4KICAgICAgPGRkPkVzdGEgbGlicmVy7WEgZXMgcmVxdWVyaWRhLCBwZXJvIHlhIG5vIGluY2x1aWRvIGNvbiBodHRwZC4KICAgICAgRGVzY2FyZ2EgZWwgY/NkaWdvIGZ1ZW50ZSBkZSA8YSBocmVmPSJodHRwOi8vd3d3LnBjcmUub3JnLyI+aHR0cDovL3d3dy5wY3JlLm9yZzwvYT4sCiAgICAgIG8gaW5zdGFsYSB1biBQb3J0IG8gdW4gIFBhcXVldGUuIFNpIGxhIGRpc3RydWJ1Y2nzbiBkZSBzdSBzaXN0ZW1hIG5vIHB1ZWRlIGVuY29udHJhciBlbCBlc2NyaXB0IHBjcmUtY29uZmlnIGluc3RhbGFkbyBwb3IgUENSRSwgc2VsZWNjaW9uZSB1dGlsaXphbmRvIGVsIHBhcuFtZXRybzxjb2RlPi0td2l0aC1wY3JlPC9jb2RlPi5FbiBhbGd1bmFzIHBsYXRhZm9ybWFzLAogICAgICBkZWJlcuFzIGluc3RhbGFyIGxhIGNvcnJlc3BvbmRpZW50ZSB2ZXJzafNuIDxjb2RlPi1kZXY8L2NvZGU+CiAgICAgIGRlbCBwYXF1ZXRlIHBhcmEgcGVybWl0aXIgYSBodHRwZCBxdWUgc2UgZ2VuZXJlIGNvbnRyYSBsYSBpbnN0YWxhY2nzbiBkZSBsYSBjb3BpYSBkZWwgUENSRSBxdWUgc2UgaGEgaW5zdGFsYWRvLjwvZGQ+CgogICAgICA8ZHQ+RXNwYWNpbyBlbiBkaXNjbzwvZHQ+IAogICAgICA8ZGQ+Q29tcHJ1ZWJlIHF1ZSB0aWVuZSBkaXNwb25pYmxlcyBhbAogICAgICBtZW5vcyA1MCBNQiBkZSBlc3BhY2lvIGxpYnJlIGVuIGRpc2NvLiBEZXNwdelzIGRlIGxhCiAgICAgIGluc3RhbGFjafNuLCBBcGFjaGUgb2N1cGEgYXByb3hpbWFkYW1lbnRlIDEwIE1CLiBObwogICAgICBvYnN0YW50ZSwgbGEgbmVjZXNpZGFkIHJlYWwgZGUgZXNwYWNpbyBlbiBkaXNjbyB2YXLtYQogICAgICBjb25zaWRlcmFibGVtZW50ZSBlbiBmdW5jafNuIGRlIGxhcyBvcGNpb25lcyBkZQogICAgICBjb25maWd1cmFjafNuIHF1ZSBlbGlqYSB5IGRlIGxvcyBt82R1bG9zIGV4dGVybm9zIHF1ZQogICAgICB1c2UsIHkgY29tbyBubyBkZWwgdGFtYfFvIGRlIGxhIHDhZ2luYSB3ZWI8L2RkPgoKICAgICAgPGR0PlN5c3RlbWEgZGUgY29tcGlsYWNp824gQU5TSS1DPC9kdD4KICAgICAgPGRkPkNvbXBydWViZSBxdWUgdGllbmUgaW5zdGFsYWRvIHVuIGNvbXBpbGFkb3IgZGUgQU5TSS1DLiBTZSByZWNvbWllbmRhIGVsIDxhIGhyZWY9Imh0dHA6Ly9nY2MuZ251Lm9yZy8iPkNvbXBpbGFkb3IgR05VIEMKICAgICAgKEdDQyk8L2E+IGRlIGxhIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy8iPkZyZWUgU29mdHdhcmUKICAgICAgRm91bmRhdGlvbiAoRlNGKTwvYT4gZXMgZWwgcmVjb21lbmRhZG8uIFNpIG5vIHRpZW5lIGluc3RhbGFkbyBlbCBHQ0MsIGVudG9uY2VzIGNvbXBydWViZSBxdWUKICAgICAgZWwgY29tcGlsYWRvciBxdWUgdmEgYSB1dGlsaXphciBjdW1wbGUgY29uIGxvcyBlc3ThbmRhcmVzCiAgICAgIEFOU0kuIEFkZW3hcywgc3UgPGNvZGU+UEFUSDwvY29kZT4gZGViZSBjb250ZW5lciBsYQogICAgICB1YmljYWNp824gZG9uZGUgZGUgZW5jdWVudHJhbiBsYXMgaGVycmFtaWVudGFzIGLhc2ljYXMKICAgICAgcGFyYSBjb21waWxhciB0YWxlcyBjb21vIDxjb2RlPm1ha2U8L2NvZGU+LjwvZGQ+CgogICAgICA8ZHQ+QWp1c3RlIGV4YWN0byBkZWwgcmVsb2ogZGVsIHNpc3RlbWE8L2R0PiAKICAgICAgPGRkPkxvcyBlbGVtZW50b3MKICAgICAgZGVsIHByb3RvY29sbyBIVFRQIGVzdOFuIGV4cHJlc2Fkb3Mgc2Vn+m4gbGEgaG9yYSBkZWwKICAgICAgZO1hLiBQb3IgZXNvLCBzaSBxdWllcmUgcHVlZGUgaW52ZXN0aWdhciBjb21vIGluc3RhbGFyIGFsZ3VuYQogICAgICB1dGlsaWRhZCBwYXJhIHNpbmNyb25pemFyIGxhIGhvcmEgZGUgc3Ugc2lzdGVtYS4gUGFyYSBlc3RvLAogICAgICBub3JtYWxtZW50ZSwgc2UgdXNhbiBsb3MgcHJvZ3JhbWFzIDxjb2RlPm50cGRhdGU8L2NvZGU+IG8KICAgICAgPGNvZGU+eG50cGQ8L2NvZGU+LCBxdWUgZXN04W4gYmFzYWRvcyBlbiBlbCBwcm90b2NvbG8KICAgICAgIk5ldHdvcmsgVGltZSBQcm90b2NvbCIgKE5UUCkuIENvbnN1bHRlIGVsPGEgaHJlZj0iaHR0cDovL3d3dy5udHAub3JnIj5zaXRpbyB3ZWIgZGUgTlRQCiAgICAgIDwvYT4gcGFyYSBvYnRlbmVyIG3hcyBpbmZvcm1hY2nzbiBzb2JyZSBOVFAgeSBsb3MKICAgICAgc2Vydmlkb3JlcyBw+mJsaWNvcyBkZSB0aWVtcG8uPC9kZD4KCiAgICAgIDxkdD48YSBocmVmPSJodHRwOi8vd3d3LnBlcmwub3JnLyI+UGVybCA1PC9hPltPUENJT05BTF08L2R0PgogICAgICA8ZGQ+UGFyYSBhbGd1bm9zIGRlIGxvcyBzY3JpcHRzIGRlIHNvcG9ydGUgY29tbzxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2FweHMuaHRtbCI+YXB4czwvYT48L2NvZGU+IG8gPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvZGJtbWFuYWdlLmh0bWwiPmRibW1hbmFnZTwvYT48L2NvZGU+IChxdWUgZXN04W4KICAgICAgZXNjcml0b3MgZW4gUGVybCkgZXMgbmVjZXNhcmlvIGVsIGludOlycHJldGUgZGUgUGVybCA1IChsYXMKICAgICAgdmVyc2lvbmVzIDUuMDAzIG8gcG9zdGVyaW9yZXMgc29uIHN1ZmljaWVudGVzKS4gU2kgZWwgZXNjcmlwdAogICAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9jb25maWd1cmUuaHRtbCI+Y29uZmlndXJlPC9hPjwvY29kZT4gbm8gc2UgZW5jdWVudHJhLCBubyBwb2Ry4SB1c2FyIGxvcwoJICBlc2NyaXB0cyBjb3JyZXNwb25kaWVudGVzIHF1ZSBsbyBuZWNlc2l0ZW4uIFBlcm8gcG9yIHN1cHVlc3RvCgkgIHBvZHLhcyBjb21waWxhciB5IHVzYXIgQXBhY2hlIGh0dHBkLjwvZGQ+CiAgICA8L2RsPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImRvd25sb2FkIiBpZD0iZG93bmxvYWQiPkRlc2NhcmdhcjwvYT48L2gyPgoKICAgIDxwPlB1ZWRlIGRlc2NhcmdhciBBcGFjaGUgZGVzZGUgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG93bmxvYWQuY2dpIj5sYSBzZWNjafNuIGRlCiAgICBkZXNjYXJnYXMgZGVsIHNpdGlvIHdlYiBkZSBBcGFjaGU8L2E+IGVsIGN1YWwgdGllbmUgdmFyaW9zCiAgICBtaXJyb3JzLiBQYXJhIGxhIG1heW9y7WEgZGUgbG9zIHVzdWFyaW9zIGRlIEFwYWNoZSBxdWUgdGllbmVuCiAgICBzaXN0ZW1hcyB0aXBvIFVuaXgsIHNlIHJlY29taWVuZGEgcXVlIHNlIGRlc2Nhcmd1ZW4geSBjb21waWxlbiBlbAogICAgY/NkaWdvIGZ1ZW50ZS4gRWwgcHJvY2VzbyBkZSBjb21waWxhY2nzbiAoZGVzY3JpdG8KICAgIG3hcyBhYmFqbykgZXMgZuFjaWwsIHkgcGVybWl0ZSBhZGFwdGFyIGVsIHNlcnZpZG9yCiAgICBBcGFjaGUgYSBzdXMgbmVjZXNpZGFkZXMuIEFkZW3hcywgbGFzIHZlcnNpb25lcyBkZQogICAgZGlzcG9uaWJsZXMgZW4gYXJjaGl2b3MgYmluYXJpb3Mgbm8gZXN04W4gc2llbXByZSBhY3R1YWxpemFkYXMKICAgIGNvbiBsYXMg+mx0aW1hcyBtb2RpZmljYWNpb25lcyBlbiBlbCBj82RpZ28gZnVlbnRlLiBTaSBzZQogICAgZGVzY2FyZ2EgdW4gYmluYXJpbywgc2lnYSBsYXMgaW5zdHJ1Y2Npb25lcyBjb250ZW5pZGFzIGVuIGVsCiAgICBhcmNoaXZvIDxjb2RlPklOU1RBTEwuYmluZGlzdDwvY29kZT4gaW5jbHVpZG8gZW4gbGEKICAgIGRpc3RyaWJ1Y2nzbjwvcD4KCiAgICA8cD5EZXNwdelzIGRlIGxhIGRlc2NhcmdhLCBlcyBpbXBvcnRhbnRlIHF1ZSB2ZXJpZmlxdWUgcXVlIGVsCiAgICBhcmNoaXZvIGRlc2NhcmdhZG8gZGVsIHNlcnZpZG9yIEhUVFAgQXBhY2hlIGVzdOEgY29tcGxldG8geQogICAgc2luIG1vZGlmaWNhY2lvbmVzLiAgRXN0byBwdWVkZSBoYWNlcmxvIGNvbXBhcmFuZG8gZWwgYXJjaGl2bwogICAgZGVzY2FyZ2FkbyAoLnRneikgY29uIHN1IGZpcm1hIFBHUC4gSW5zdHJ1Y2Npb25lcyBkZXRhbGxhZGFzIGRlCiAgICBj821vIGhhY2VyIGVzdG8gZXN04W4gZGlzcG9uaWJsZXMgZW4gPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG93bmxvYWQuY2dpI3ZlcmlmeSI+IGxhCiAgICBzZWNjafNuIGRlIGRlc2NhcmdhczwvYT4ganVudG8gY29uIHVuIGVqZW1wbG8gZGUgY/NtbyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kZXYvdmVyaWZpY2F0aW9uLmh0bWwiPnVzYXIKICAgIFBHUDwvYT4uPC9wPgoKPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJleHRyYWN0IiBpZD0iZXh0cmFjdCI+RGVzY29tcHJpbWlyPC9hPjwvaDI+CgogICAgPHA+RXh0cmFlciBlbCBj82RpZ28gZnVlbnRlIGRlbCBhcmNoaXZvIC50Z3ogZGVsIFNlcnZpZG9yIEFwYWNoZSBIVFRQIHF1ZSBhY2FiYWRhIAogICAgICBkZSBkZXNjYXJnYXIgZXMgbXV5IGbhY2lsLiBFamVjdXRlIGxvcyBzaWd1aWVudGVzIGNvbWFuZG9zOjwvcD4KCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgokIGd6aXAgLWQgaHR0cGQtPGVtPk5OPC9lbT4udGFyLmd6PGJyIC8+CiQgdGFyIHh2ZiBodHRwZC08ZW0+Tk48L2VtPi50YXIKPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5Fc3RvcyBjb21hbmRvcyBjcmVhcuFuIHVuIG51ZXZvIGRpcmVjdG9yaW8gZGVudHJvIGRlbAogICAgZGlyZWN0b3JpbyBlbiBlbCBxdWUgc2UgZW5jdWVudHJhIHkgcXVlIGNvbnRlbmRy4SBlbAogICAgY/NkaWdvIGZ1ZW50ZSBkZSBkaXN0cmlidWNp824uIERlYmUgY2FtYmlhcnNlIGEgZXNlCiAgICBkaXJlY3RvcmlvIGNvbiA8Y29kZT5jZDwvY29kZT4gcGFyYSBwcm9jZWRlciBhIGNvbXBpbGFyIGVsCiAgICBzZXJ2aWRvciBBcGFjaGUuPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImNvbmZpZ3VyZSIgaWQ9ImNvbmZpZ3VyZSI+Q29uZmlndXJhY2nzbiBkZSBsYSBlc3RydWN0dXJhIGRlCmRpcmVjdG9yaW9zPC9hPjwvaDI+CgogICAgPHA+RWwgc2lndWllbnRlIHBhc28gZXMgY29uZmlndXJhciBsYSBlc3RydWN0dXJhIGRlIGRpcmVjdG9yaW9zCiAgICBwYXJhIHN1IHBsYXRhZm9ybWEgeSBzdXMgbmVjZXNpZGFkZXMgcGVyc29uYWxlcy4gRXN0byBzZSBoYWNlCiAgICB1c2FuZG8gZWwgc2NyaXB0IDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiBpbmNsdWlkbyBlbiBlbCBkaXJlY3RvcmlvCiAgICByYe16IGRlIGxhIGRpc3RyaWJ1Y2nzbiBxdWUgYWNhYmEgZGUgZGVzY2FyZ2FyLiAoTG9zCiAgICBkZXNhcnJvbGxhZG9yZXMgcXVlIHNlIGRlc2Nhcmd1ZW4gbGEgdmVyc2nzbiBkZWwgQ1ZTIGRlIGxhCiAgICBlc3RydWN0dXJhIGRlIGRpcmVjdG9yaW9zIG5lY2VzaXRhcuFuIHRlbmVyIGluc3RhbGFkb3MKICAgIDxjb2RlPmF1dG9jb25mPC9jb2RlPiB5IDxjb2RlPmxpYnRvb2w8L2NvZGU+LCB5IG5lY2VzaXRhcuFuCiAgICBlamVjdXRhciA8Y29kZT5idWlsZGNvbmY8L2NvZGU+IGFudGVzIGRlIGNvbnRpbnVhciBjb24gbG9zCiAgICBzaWd1aWVudGVzIHBhc29zLiBFc3RvIG5vIGVzIHByZWNpc28gcGFyYSBsYXMgdmVyc2lvbmVzCiAgICBvZmljaWFsZXMuKTwvcD4KCiAgICA8cD5QYXJhIGNvbmZpZ3VyYXIgbGEgZXN0cnVjdHVyYSBkZSBkaXJlY3RvcmlvcyBhIHBhcnRpciBkZWwKICAgIGPzZGlnbyBmdWVudGUgdXNhbmRvIGxhcyBvcGNpb25lcyBwb3IgZGVmZWN0bywgc29sbyB0aWVuZSBxdWUKICAgIGVqZWN1dGFyIDxjb2RlPi4vY29uZmlndXJlPC9jb2RlPi5QYXJhIGNhbWJpYXIgbGFzIG9wY2lvbmVzIHBvcgogICAgZGVmZWN0bywgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvY29uZmlndXJlLmh0bWwiPmNvbmZpZ3VyZTwvYT48L2NvZGU+IGFjZXB0YSB1bmEgc2VyaWUgZGUgdmFyaWFibGVzIHkKICAgIG9wY2lvbmVzIHBvciBsYSBs7W5lYSBkZSBjb21hbmRvcy48L3A+CgogICAgPHA+TGEgb3BjafNuIG3hcyBpbXBvcnRhbnRlIGVzIDxjb2RlPi0tcHJlZml4PC9jb2RlPgogICAgcXVlIGVzIGVsIGRpcmVjdG9yaW8gZW4gZWwgcXVlIEFwYWNoZSB2YSBhIHNlciBpbnN0YWxhZG8gZGVzcHXpcywKICAgIHBvcnF1ZSBBcGFjaGUgdGllbmUgcXVlIHNlciBjb25maWd1cmFkbyBwYXJhIGVsIGRpcmVjdG9yaW8gcXVlIHNlCiAgICBlc3BlY2lmaXF1ZSBwYXJhIHF1ZSBmdW5jaW9uZSBjb3JyZWN0YW1lbnRlLiAgRXMgcG9zaWJsZSBsb2dyYXIgdW4KICAgIG1heW9yIGNvbnRyb2wgZGVsIGx1Z2FyIGRvbmRlIHNlIHZhbiBhIGluc3RhbGFyIGxvcyBmaWNoZXJvcyBkZQogICAgQXBhY2hlIGNvbiBvdHJhcyA8YSBocmVmPSJwcm9ncmFtcy9jb25maWd1cmUuaHRtbCNpbnN0YWxsYXRpb25kaXJlY3RvcmllcyI+b3BjaW9uZXMgZGUKICAgIGNvbmZpZ3VyYWNp8248L2E+LjwvcD4KCiAgICA8cD5MbGVnYWRvcyBhIGVzdGUgcHVudG8sIHB1ZWRlIGVzcGVjaWZpY2FyIHF1ZSA8YSBocmVmPSJwcm9ncmFtcy9jb25maWd1cmUuaHRtbCNvcHRpb25hbGZlYXR1cmVzIj5jYXJhY3Rlcu1zdGljYXMKICAgIG8gZnVuY2lvbmFsaWRhZGVzPC9hPiBxdWllcmUgaW5jbHVpciBlbiBBcGFjaGUgYWN0aXZhbmRvIG8KICAgIGRlc2FjdGl2YW5kbyA8YSBocmVmPSJtb2QvIj5tb2R1bGVzPC9hPi5BcGFjaGUgdmluZSBjb24gdW5hIGFtcGxpYQogICAgc2VsZWNjafNuIGRlIG3zZHVsb3MgaW5jbHVpZG9zIHBvciBkZWZlY3RvLiBRdWUgc2Vy4W4gY29tcGlsYWRvcyBjb21vIC4KICAgIDxhIGhyZWY9ImRzby5odG1sIj5PYmpldG9zIENvbXBhcnRpZG9zIChEU09zKTwvYT4gUXVlIHB1ZWRlbiBzZXIgYWN0aXZhZG9zCiAgICBvIGRlc2FjdGl2YWRvcyBlbiB0aWVtcG8gZGUgZWplY3VjafNuLgogICAgVGFtYmnpbiBwdWVkZSBlbGVnaXIgcG9yIGNvbXBpbGFyIG3zZHVsb3MgZGUgZm9ybWEgZXN04XRpY2EgdXNhbmRvIGxhcyBvcGNpb25lcwogICAgPGNvZGU+LS1lbmFibGUtPHZhcj5tb2R1bGU8L3Zhcj49c3RhdGljPC9jb2RlPi48L3A+CgoKCiAgICA8cD5TZSBwdWVkZW4gYWN0aXZhciBvdHJvcyBt82R1bG9zIHVzYW5kbyBsYSBvcGNp824gCiAgICA8Y29kZT4tLWVuYWJsZS08dmFyPm1vZHVsZTwvdmFyPjwvY29kZT4sIHdoZXJlCiAgICA8dmFyPm1vZHVsZTwvdmFyPiBlcyBlbCBub21icmUgZGVsIG3zZHVsbyBzaW4gZWwKICAgIDxjb2RlPm1vZF88L2NvZGU+IHkgY29udmlydGllbmRvIGxvcyBndWlvbmVzIGJham9zIHF1ZSB0ZW5nYSBlbgogICAgZ3Vpb25lcyBub3JtYWxlcy4gIERlbCBtaXNtbyBtb2RvLCBwdWVkZSBkZXNhY3RpdmFyIGxvcyBt82R1bG9zIGNvbiBsYQogICAgb3BjafNuIDxjb2RlPi0tZGlzYWJsZS08dmFyPm1vZHVsZTwvdmFyPjwvY29kZT4uIFRlbmdhIGN1aWRhZG8gYWwgdXRpbGl6YXIgZXN0YSBvcGNp824sIHlhIHF1ZQogICAgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvY29uZmlndXJlLmh0bWwiPmNvbmZpZ3VyZTwvYT48L2NvZGU+IG5vIGxlIGF2aXNhcuEgc2kgZWwgbfNkdWxvIHF1ZSBlc3BlY2lmaWNhIG5vIGV4aXN0ZTsKICAgIHNpbXBsZW1lbnRlIGlnbm9yYXLhIGVzYSBvcGNp824uPC9wPgoKICAgIDxwPkFkZW3hcywgYSB2ZWNlcyBlcyBuZWNlc2FyaW8gcGFzYXJsZSBhbCBzY3JpcHQKICAgIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiBpbmZvcm1hY2nzbiBhZGljaW9uYWwgc29icmUgZG9uZGUgZXN0YQogICAgc3UgY29tcGlsYWRvciwgbGlicmVy7WFzIG8gZmljaGVyb3MgZGUgY2FiZWNlcmEuICBFc3RvIHNlIHB1ZWRlCiAgICBoYWNlciwgdGFudG8gcGFzYW5kbyB2YXJpYWJsZXMgZGUgZW50b3JubywgY29tbyBwYXNhbmRvbGUgb3BjaW9uZXMKICAgIGEgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvY29uZmlndXJlLmh0bWwiPmNvbmZpZ3VyZTwvYT48L2NvZGU+LiAgUGFyYSBt4XMgaW5mb3JtYWNp824sIGNvbnN1bHRlIGVsIG1hbnVhbCBkZQogICAgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvY29uZmlndXJlLmh0bWwiPmNvbmZpZ3VyZTwvYT48L2NvZGU+LiBPIHVzZSA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9jb25maWd1cmUuaHRtbCI+Y29uZmlndXJlPC9hPjwvY29kZT4gY29uIGxhIAogICAgb3BjafNuIDxjb2RlPi0taGVscDwvY29kZT4uPC9wPgoKICAgICA8cD5QYXJhIHF1ZSBzZSBoYWdhIHVuYSBpZGVhIHNvYnJlIGxhcyBwb3NpYmlsaWRhZGVzIHF1ZSB0aWVuZSwKICAgIGFxde0gdGllbmUgdW4gZWplbXBsbyB07XBpY28gcXVlIGNvbmZpZ3VyYSBBcGFjaGUgcGFyYQogICAgbGEgcnV0YSA8Y29kZT4vc3cvcGtnL2FwYWNoZTwvY29kZT4gY29uIHVuIGNvbXBpbGFkb3IgeSB1bm9zIGZsYWdzCiAgICBkZXRlcm1pbmFkb3MsIHkgYWRlbeFzLCBjb24gZG9zIG3zZHVsb3MgYWRpY2lvbmFsZXMKICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9sZGFwLmh0bWwiPm1vZF9sZGFwPC9hPjwvY29kZT4geSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT48L2NvZGU+IHBhcmEKICAgIGNhcmdhcmxvcyBkZXNwdelzIGEgdHJhdulzIGRlbCBtZWNhbmlzbW8gRFNPOjwvcD4KCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgogICAgICAkIENDPSJwZ2NjIiBDRkxBR1M9Ii1PMiIgXDxiciAvPgogICAgICAgLi9jb25maWd1cmUgLS1wcmVmaXg9L3N3L3BrZy9hcGFjaGUgXDxiciAvPgogICAgICAgLS1lbmFibGUtbGRhcD1zaGFyZWQgXDxiciAvPgogICAgICAgLS1lbmFibGUtbHVhPXNoYXJlZAo8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPkN1YW5kbyBzZSBlamVjdXRhIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiBzZSBjb21wcnVlYmFuIHF1ZQogICAgY2FyYWN0ZXLtc3RpY2FzIG8gZnVuY2lvbmFsaWRhZGVzIGVzdOFuIGRpc3BvbmlibGVzIGVuCiAgICBzdSBzaXN0ZW1hIHkgc2UgY3JlYW4gbG9zIE1ha2VmaWxlcyBxdWUgc2Vy4W4gdXNhZG9zIGEgY29udGludWFjafNuCiAgICBwYXJhIGNvbXBpbGFyIGVsIHNlcnZpZG9yLiBFc3RvIHRhcmRhcuEgYWxndW5vcyBtaW51dG9zLjwvcD4KCiAgICA8cD5Mb3MgZGV0YWxsZXMgZGUgdG9kYXMgbGFzIG9wY2lvbmVzIGRlIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiBlc3ThbiBkaXNwb25pYmxlcwogICAgZW4gZWwgbWFudWFsIGRlIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiAuPC9wPgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iY29tcGlsZSIgaWQ9ImNvbXBpbGUiPkJ1aWxkPC9hPjwvaDI+CgogICAgPHA+QWhvcmEgcHVlZGUgY29tcGlsYXIgbGFzIGRpZmVyZW50ZXMgcGFydGVzIHF1ZSBmb3JtYW4gQXBhY2hlCiAgICBzaW1wbGVtZW50ZSBlamVjdXRhbmRvIGVsIHNpZ3VpZW50ZSBjb21hbmRvOjwvcD4KCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPiQgbWFrZTwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+UG9yIGZhdm9yIHNlYSBwYWNpZW50ZSBsbGVnYWRvIGEgZXN0ZSBwdW50bywgeWEgcXVlIHVuYSBjb25maWd1cmFjafNuIGLhc2ljYSBsbGV2YSB1bm9zIG1pbnV0b3MKICAgICAgcGFyYSBzdSBjb21waWxhY2nzbiwgeSBlbCB0aWVtcG8gcHVlZGUgdmFyaWFyIG11Y2hvIGRlcGVuZGllbmRvIGRlIHN1IGhhcmR3YXJlIAogICAgICB5IGRlbCBu+m1lcm8gZGUgbfNkdWxvcyBxdWUgaGF5YSBoYWJpbGl0YWRvIHBhcmEgbGEgY29tcGlsYWNp824uKFNlIHJlY29taWVuZGEgYfFhZGlyIGFsIG1ha2UgZWwKICAgICAgcGFy4W1ldHJvIC1qMyBjb21vIG3tbmltbyBwYXJhIHF1ZSB2YXlhIG3hcyBy4XBpZG8pPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9Imluc3RhbGwiIGlkPSJpbnN0YWxsIj5JbnN0YWxhcjwvYT48L2gyPgoKICAgIDxwPkFob3JhIGVzIGVsIG1vbWVudG8gZGUgaW5zdGFsYXIgZWwgcGFxdWV0ZSBlbiBlbCBkaXJldG9yaW8KICAgIGVsZWdpZG8gZW4gPGVtPlBSRUZJWDwvZW0+IChjb25zdWx0ZSBt4XMgYXJyaWJhIGxhIG9wY2nzbgogICAgPGNvZGU+LS1wcmVmaXg8L2NvZGU+KSBlamVjdXRhbmRvOjwvcD4KCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPiQgbWFrZSBpbnN0YWxsPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5Fc3RlIHBhc28gcmVxdWllcmUgZGUgZm9ybWEgdO1waWNhIHByaXZpbGVnaW9zIGRlIHJvb3QsIHlhIHF1ZSAKICAgICAgZWwgZGlyZWN0b3JpbyBkZSA8ZW0+UFJFRklYPC9lbT4gZXMgbm9ybWFsbWVudGUgdW4gZGlyZWN0b3JpbyBjb24gCiAgICAgIHJlc3RyaWNjaW9uZXMgZGUgcGVybWlzb3MgZXNjcml0dXJhLjwvcD4KCiAgICA8cD5TaSBsbyBxdWUgZXN0YSBlcyBz82xvIGFjdHVhbGl6YW5kbywgbGEgaW5zdGFsYWNp824gbm8gc29icmVlc2NyaWJpcuEgbG9zCiAgICAgIGFyY2hpdm9zIGRlIGNvbmZpZ3VyYWNp824uPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImN1c3RvbWl6ZSIgaWQ9ImN1c3RvbWl6ZSI+UGVyc29uYWxpemFyIEFQQUNIRTwvYT48L2gyPgoKICAgIDxwPlRyYXMgbGEgaW5zdGFsYWNp824gcHVlZGUgcGVyc29uYWxpemFybGEsIGVkaXRhbmRvIGxvcyAKICAgIDxhIGhyZWY9ImNvbmZpZ3VyaW5nLmh0bWwiPmFyY2hpdm9zIGRlIGNvbmZpZ3VyYWNpb24gPC9hPiBlbiBlbCBkaXJlY3RvcmlvIGRlCiAgICA8Y29kZT48ZW0+UFJFRklYPC9lbT4vY29uZi88L2NvZGU+LjwvcD4KCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPiQgdmkgPGVtPlBSRUZJWDwvZW0+L2NvbmYvaHR0cGQuY29uZjwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+yWNoZWxlIHVuIHZpc3Rhem8gYWwgTWFudWFsIGRlIEFwYWNoZSBxdWUgZXN04SBlbgogICAgPGNvZGU+PGVtPlBSRUZJWDwvZW0+L2RvY3MvbWFudWFsLzwvY29kZT4gbyBjb25zdWx0YSA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuNC8iPmh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvMi40LzwvYT4gcGFyYSBsYSB2ZXJzafNuIG3hcwogICAgcmVjaWVudGUgZGUgZXN0ZSBtYW51YWwgeSBzdSBjb21wbGV0YQogICAgcmVmZXJlbmNpYSBkZSBsYXMgPGEgaHJlZj0ibW9kL2RpcmVjdGl2ZXMuaHRtbCI+ZGlyZWN0aXZhcyBkZSBjb25maWd1cmFjaW9uPC9hPiBkaXNwb25pYmxlcy48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0idGVzdCIgaWQ9InRlc3QiPkNvbXByb2JhciBxdWUgbGEgaW5zdGFsYWNp824KZnVuY2lvbmE8L2E+PC9oMj4KCiAgICA8cD5BaG9yYSBwdWVkZXMgIDxhIGhyZWY9Imludm9raW5nLmh0bWwiPmVqZWN1dGFyPC9hPiB0dSBBcGFjaGUKICAgIEhUVFAgc2VydmVyIGVqZWN1dGFuZG8gZGlyZWN0YW1lbnRlOjwvcD4KCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPiQgPGVtPlBSRUZJWDwvZW0+L2Jpbi9hcGFjaGVjdGwgLWsgc3RhcnQ8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPkFob3JhIGRlYmUgcG9kZXIgYWNjZWRlciBhIHN1IHByaW1lciBkb2N1bWVudG8KICAgIGJham8gbGEgVVJMIDxjb2RlPmh0dHA6Ly9sb2NhbGhvc3QvPC9jb2RlPi4gTGEgcOFnaW5hIG8gZG9jdW1lbnRvIHF1ZSB2ZSBzZSBlbmN1ZW50cmEgZW4KICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkb2N1bWVudHJvb3QiPkRvY3VtZW50Um9vdDwvYT48L2NvZGU+LAogICAgcXVlIHBvciBub3JtYSBnZW5lcmFsIGNhc2kgc2llbXByZSBzZXLhIDxjb2RlPjxlbT5QUkVGSVg8L2VtPi9odGRvY3MvPC9jb2RlPi4KICAgIFNpIHF1aWVyZSAgPGEgaHJlZj0ic3RvcHBpbmcuaHRtbCI+cGFyYXI8L2E+IGVsIHNlcnZpZG9yLCBwdWVkZSBoYWNlcmxvIGVqZWN1dGFuZG86PC9wPgoKPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+JCA8ZW0+UFJFRklYPC9lbT4vYmluL2FwYWNoZWN0bCAtayBzdG9wPC9jb2RlPjwvcD48L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJ1cGdyYWRpbmciIGlkPSJ1cGdyYWRpbmciPkFjdHVhbGl6YXIgdW5hIGluc3RhbGFjafNuIHByZXZpYTwvYT48L2gyPgoKICAgIDxwPkVsIHByaW1lciBwYXNvIHBhcmEgYWN0dWFsaXphciB1bmEgaW5zdGFsYWNp824gYW50ZXJpb3IgZXMKICAgIGxlZXIgbGFzIGVzcGVjaWZpY2FjaW9uZXMgZGUgbGEgdmVyc2nzbiB5IGVsIGZpY2hlcm8KICAgIDxjb2RlPkNIQU5HRVM8L2NvZGU+IGVuIGxhIGRpc3RyaWJ1Y2nzbiBkZSBj82RpZ28gZnVlbnRlCiAgICBxdWUgaGEgZGVzY2FyZ2FkbyBwYXJhIGVuY29udHJhciBsb3MgY2FtYmlvcyBxdWUgcHVlZGFuIGFmZWN0YXIgYQogICAgc3UgaW5zdGFsYWNp824gYWN0dWFsLiBDdWFuZG8gZWwgY2FtYmlvIHNlYSBlbnRyZSB2ZXJzaW9uZXMKICAgIG1heW9yZXMocG9yIGVqZW1wbG8sIGRlIGxhIDIuMCBhIDIuMiBvIGRlIGxhIDIuMiBhIGxhIDIuNCksCiAgICBlbnRvbmNlcyBlcyBt4XMgcHJvYmFibGUgcXVlIGhheWEgZGlmZXJlbmNpYXMgaW1wb3J0YW50ZXMgZW4KICAgIGxhIGNvbXBpbGFjafNuIHkgZW4gbGEgZWplY3VjafNuIHF1ZSBuZWNlc2l0YXLhbgogICAgYWp1c3RlcyBtYW51YWxlcy4gVG9kb3MgbG9zIG3zZHVsb3MgbmVjZXNpdGFy4W4KICAgIHRhbWJp6W4gc2VyIGFjdHVhbGl6YWRvcyBwYXJhIGFkYXB0YXJzZSBhIGxvcyBjYW1iaW9zIGVuIGVsCiAgICBpbnRlcmZheiBkZSBwcm9ncmFtYWNp824gKEFQSSkgZGUgbfNkdWxvcy48L3A+CgogICAgPHA+QWN0dWFsaXphbmRvIGRlIHVuYSB2ZXJzafNuIG1lbm9yIGEgbGEgc2lndWllbnRlCiAgICAgIChwb3IgZWplbXBsbywgZGUgbGEgMi4yLjU1IGEgbGEgIDIuMi41NykgZXMgbWFzIGbhY2lsLiBFbCBwcm9kZXNvIGRlIHJlYWxpemFyIGVsIDxjb2RlPm1ha2UgaW5zdGFsbDwvY29kZT4KICAgIG5vIHNvYnJlZXNjcmliaXLhIG5pbmd1bm8gZGUgdHVzIGRvY3VtZW50b3MgZXhpc3RlbnRlcyxhcmNoaXZvcwogICAgbG9nLCBvIGFyY2hpdm9zIGRlIGNvbmZpZ3VyYWNp824uIERlIGhlY2hvLCBsb3MgZGVzYXJyb2xsYWRvcmVzIGVzdOFuIGhhY2llbmRvIGxvcyBlc2Z1ZXJ6b3MKICAgIG5lY2VyYXJpb3MgcGFyYSBldml0YXIgY2FtYmlvcyBxdWUgZ2VuZXJlbiBpbmNvbXBhdGliaWxpZGFkZXMgZW4gbGFzIG9wY2lvbmVzIGRlCiAgICA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9jb25maWd1cmUuaHRtbCI+Y29uZmlndXJlPC9hPjwvY29kZT4sIGxhIGNvbmZpZ3VyYWNp824gYWwgc2VyIGVqZWN1dGFkbywgbyBlbCBt82R1bG8gZGUgbGEgQVBJCiAgICBlbnRyZSB2ZXJzaW9uZXMgbWVub3Jlcy4gRW4gbGEgbWF5b3IgcGFydGUgZGUgbG9zIGNhc29zIGRlYmUgcG9kZXIgdXNhciB1bgogICAgY29tYW5kbyA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9jb25maWd1cmUuaHRtbCI+Y29uZmlndXJlPC9hPjwvY29kZT4gaWTpbnRpY28sIHVuIGZpY2hlcm8gZGUKICAgIGNvbmZpZ3VyYWNp824gaWTpbnRpY28sIHkgdG9kb3Mgc3VzIG3zZHVsb3MgZGViZW4KICAgIHNlZ3VpciBmdW5jaW9uYW5kby48L3A+CgogICAgPHA+UGFyYSBhY3R1YWxpemFyIGVudHJlIHZlcnNpb25lcyBtZW5vcmVzLCBlbXBlY2Vtb3MgZW5jb250cmFuZG8gZWwgYXJjaGl2byBkZSBjb25maWd1cmFjafNuCiAgICA8Y29kZT5jb25maWcubmljZTwvY29kZT4gZWwgZGlyZWN0b3JpbyA8Y29kZT5kZSBpbnN0YWxhY2nzbjwvY29kZT4gZGVsIHNlcnZpZG9yCiAgICBvIGVuIGVsIGRpcmVjdG9yaW8gcmFpeiBkZWwgY/NkaWdvIGZ1ZW50ZSBkZSB0dSBhbnRpZ3VhIGluc3RhbGFjafNuLiBFc3RlIGFyY2hpdm8gY29udGVuZHLhCiAgICBsb3MgcGFy4W1ldHJvcyBleGFjdG9zIHBhcmEgcGFzYXJsZSBhbCAKICAgIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiBxdWUgdXNhc3RlIGFudGVyaW9ybWVudGUgcGFyYSBjb25maWd1cmFyIHR1cyBkaXJlY3Rvcmlvcy4KICAgIEVudG9uY2VzLCBwYXJhIGFjdHVhbGl6YXIgc3UgaW5zdGFsYWNp824gZGUgdW5hIHZlcnNp824gYSBsYQogICAgc2lndWluZXRlLCBzb2xvIHRpZW5lIHF1ZSBjb3BpYXIgZWwgYXJjaGl2bwogICAgPGNvZGU+Y29uZmlnLm5pY2U8L2NvZGU+IGEgbGEgZXN0cnVjdHVyYSBkZSBkaXJlY3RvcmlvcyBkZWwKICAgIGPzZGlnbyBmdWVudGUgZGUgbGEgbnVldmEgdmVyc2nzbiwgZWRpdGFybG8sIGhhY2VyCiAgICBjdWFscXVpZXIgY2FtYmlvIHF1ZSBkZXNlZSwgeSBlamVjdXRhcmxvIDo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAkIC4vY29uZmlnLm5pY2U8YnIgLz4KICAgICQgbWFrZTxiciAvPgogICAgJCBtYWtlIGluc3RhbGw8YnIgLz4KICAgICQgPGVtPlBSRUZJWDwvZW0+L2Jpbi9hcGFjaGVjdGwgLWsgZ3JhY2VmdWwtc3RvcDxiciAvPgogICAgJCA8ZW0+UFJFRklYPC9lbT4vYmluL2FwYWNoZWN0bCAtayBzdGFydDxiciAvPgogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj5UZW5nYSBlbiBjdWVudGEgcXVlIGFudGVzIGRlIHBvbmVyIHVuYSBudWV2YQogICAgdmVyc2nzbiBkZSBBcGFjaGUgZW4gcHJvZHVjY2nzbiwgZGViZSBzaWVtcHJlIHByb2JhcmxhCiAgICBhbnRlcyBlbiB1biBlbnRvcm5vIGRlIHBydWViYXMuIFBvciBlamVtcGxvLCBwdWVkZSBpbnN0YWxhciB5IGVqZWN1dGFyIGxhCiAgICBudWV2YSB2ZXJzafNuIGp1bnRvIGNvbiBsYSBhbnRpZ3VhIHVzYW5kbyB1bgogICAgPGNvZGU+LS1wcmVmaXg8L2NvZGU+IGRpZmVyZW50ZSB5IHVuIHB1ZXJ0byBkaWZlcmVudGUgKG1vZGlmaWNhbmRvCiAgICBsYSBkaXJlY3RpdmEgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI2xpc3RlbiI+TGlzdGVuPC9hPjwvY29kZT4pCiAgICBwYXJhIGNvbXByb2JhciBxdWUgbm8gZXhpc3RlIG5pbmd1bmEgaW5jb21wYXRpYmlsaWRhZCBhbnRlcyBkZQogICAgaGFjZXIgbGEgYWN0dWFsaXphY2nzbiBkZWZpbml0aXZhLjwvZGl2PgoKICAgIDxwPlB1ZWRlIHBhc2FybGUgYXJndW1lbnRvcyBhZGljaW9uYWxlcyBhIDxjb2RlPmNvbmZpZy5uaWNlPC9jb2RlPiwKICAgIHF1ZSBzZSBhZ3JlZ2Fy4W4gYSBzdXNvcGNpb25lcyBvcmlnaW5hbGVzIGRlIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPjo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAkIC4vY29uZmlnLm5pY2UgLS1wcmVmaXg9L2hvbWUvdGVzdC9hcGFjaGUgLS13aXRoLXBvcnQ9OTAKICAgIDwvY29kZT48L3A+PC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0idGhpcmRwIiBpZD0idGhpcmRwIj5QYXF1ZXRlcyBkZSB0ZXJjZXJvczwvYT48L2gyPgoKICAgIDxwPlVuIGdyYW4gbvptZXJvIGRlIHRlcmNlcm9zIHByb3BvcmNpb25hbiBzdXMgcHJvcGlhcyAKICAgIGRpc3RyaWJ1Y2lvbmVzIGVtcGFxdWV0YWRhcyBkZWwgQXBhY2hlIEhUVFAgU2VydmVyIHBhcmEgc3UKICAgIGluc3RhbGFjafNuIGVuIHBsYXRhZm9ybWFzIGVzcGVj7WZpY2FzLiBFc3RvIGluY2x1eWUgbGFzIGRpc3RpbnRhcwogICAgZGlzdHJpYnVjaW9uZXMgZGUgTGludXgsIHZhcmlvcyBwYXF1ZXRlcyBkZSBXaW5kb3dzIGRlIHRlcmNlcm9zLAogICAgTWFjIE9TIFgsIFNvbGFyaXMsIHkgbXVjaG9zIG3hcy48L3A+CgogICAgPHA+TnVlc3RyYSBsaWNlbmNpYSBkZSBzb2Z0d2FyZSBubyBz82xvIHBlcm1pdGUsIHNpbm8gcXVlIGFuaW1hLCAKICAgIGVzdGUgdGlwbyBkZSByZWRpc3RyaWJ1Y2nzbi4gU2luIGVtYmFyZ28sIHNlIGRhIGx1Z2FyIGEgdW5hIHNpdHVhY2nzbgogICAgZW4gbGEgcXVlIGVsIGRpc2XxbyB5IGxhIGNvbmZpZ3VyYWNp824gZGUgbG9zIHZhbG9yZXMgcHJlZGV0ZXJtaW5hZG9zCiAgICBkZSBsYSBpbnN0YWxhY2nzbiBkZWwgc2Vydmlkb3IgcHVlZGVuIGRpZmVyaXIgZGUgbG8gcXVlIHNlIGluZGljYQogICAgZW4gbGEgZG9jdW1lbnRhY2nzbi4gTWllbnRyYXMgbGFtZW50YWJsZW1lbnRlLCBlc3RhIHNpdHVhY2nzbiBubyBlcyBwcm9iYWJsZSBxdWUgY2FtYmllIGEgY29ydG8gcGxhem8uPC9wPgoKICAgIDxwPlVuYSA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0Rpc3Ryb3NEZWZhdWx0TGF5b3V0Ij5kZXNjcmlwY2nzbgogICAgZGUgZXN0YXMgZGlzdHJpYnVjaW9uZXMgZGUgdGVyY2Vyb3MgPC9hPiBlc3ThIHNpZW5kbyBhY3R1YWxpemFkYSBlbiBlbCBzZXJ2aWRvciBkZSBsYSBXSUtJIGRlIEhUVFAKICAgIFNlcnZlciwgeSBkZWJlcu1hIHJlZmxlamFyIGVsIGFjdHVhbCBlc3RhZG8gZGUg6XN0YXMgZGlzdHJpYnVjaW9uZXMgZGUgdGVyY2Vyb3MuIAogICAgU2luIGVtYmFyZ28sIHRlbmRy4SBxdWUgZmFtaWxpYXJpemFyc2UgY29uIGxvcyBwcm9jZWRpbWllbnRvcyBkZSBnZXN0afNuCiAgICBlIGluc3RhbGFjafNuIGRlIHBhcXVldGVzIGRlIHN1IHBsYXRhZm9ybWEgKFNPKSBlbiBwYXJ0aWN1bGFyLjwvcD4KCjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+SWRpb21hcyBkaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4vZGUvaW5zdGFsbC5odG1sIiBocmVmbGFuZz0iZGUiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRGV1dHNjaCI+Jm5ic3A7ZGUmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lbi9pbnN0YWxsLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VzL2luc3RhbGwuaHRtbCIgdGl0bGU9IkVzcGHxb2wiPiZuYnNwO2VzJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvaW5zdGFsbC5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvaW5zdGFsbC5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vaW5zdGFsbC5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL2luc3RhbGwuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgYWx0PSJ0b3AiIC8+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj48YSBpZD0iY29tbWVudHNfc2VjdGlvbiIgbmFtZT0iY29tbWVudHNfc2VjdGlvbiI+Q29tZW50YXJpb3M8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjQvaW5zdGFsbC5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7IAogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTggVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkxpY2VuY2lhIGJham8gbG9zIHTpcm1pbm9zIGRlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk3zZHVsb3M8L2E+IHwgPGEgaHJlZj0iLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmFzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5QcmVndW50YXMgRnJlY3VlbnRlczwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NhcmlvPC9hPiB8IDxhIGhyZWY9Ii4vc2l0ZW1hcC5odG1sIj5NYXBhIGRlbCBzaXRpbyB3ZWI8L2E+PC9wPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCmlmICh0eXBlb2YocHJldHR5UHJpbnQpICE9PSAndW5kZWZpbmVkJykgewogICAgcHJldHR5UHJpbnQoKTsKfQovLy0tPjwhXV0+PC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+