PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPm1vZF9jZ2kgLSBBcGFjaGUgSFRUUCBTZXJ2ZXI8L3RpdGxlPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPgo8bGluayBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPkFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuMzwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZmVhdGhlci5naWYiIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPkhUVFAgU2VydmVyPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4uLyI+VmVyc2lvbiAyLjM8L2E+ICZndDsgPGEgaHJlZj0iLi8iPk1vZHVsZXM8L2E+PC9kaXY+CjxkaXYgaWQ9InBhZ2UtY29udGVudCI+CjxkaXYgaWQ9InByZWFtYmxlIj48aDE+QXBhY2hlIE1vZHVsZSBtb2RfY2dpPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9tb2QvbW9kX2NnaS5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vamEvbW9kL21vZF9jZ2kuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9tb2QvbW9kX2NnaS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT48L3A+CjwvZGl2Pgo8dGFibGUgY2xhc3M9Im1vZHVsZSI+PHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+RXhlY3V0aW9uIG9mIENHSSBzY3JpcHRzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5Nb2R1bGWgSWRlbnRpZmllcjo8L2E+PC90aD48dGQ+Y2dpX21vZHVsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1NvdXJjZUZpbGUiPlNvdXJjZaBGaWxlOjwvYT48L3RoPjx0ZD5tb2RfY2dpLmM8L3RkPjwvdHI+PC90YWJsZT4KPGgzPlN1bW1hcnk8L2gzPgoKICAgIAoKICAgIDxwPkFueSBmaWxlIHRoYXQgaGFzIHRoZSBtaW1lIHR5cGUKICAgIDxjb2RlPmFwcGxpY2F0aW9uL3gtaHR0cGQtY2dpPC9jb2RlPiBvciBoYW5kbGVyCiAgICA8Y29kZT5jZ2ktc2NyaXB0PC9jb2RlPiAoQXBhY2hlIDEuMSBvciBsYXRlcikgd2lsbCBiZSB0cmVhdGVkCiAgICBhcyBhIENHSSBzY3JpcHQsIGFuZCBydW4gYnkgdGhlIHNlcnZlciwgd2l0aCBpdHMgb3V0cHV0IGJlaW5nCiAgICByZXR1cm5lZCB0byB0aGUgY2xpZW50LiBGaWxlcyBhY3F1aXJlIHRoaXMgdHlwZSBlaXRoZXIgYnkKICAgIGhhdmluZyBhIG5hbWUgY29udGFpbmluZyBhbiBleHRlbnNpb24gZGVmaW5lZCBieSB0aGUKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbWltZS5odG1sI2FkZHR5cGUiPkFkZFR5cGU8L2E+PC9jb2RlPiBkaXJlY3RpdmUsIG9yIGJ5IGJlaW5nCiAgICBpbiBhIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYWxpYXMuaHRtbCNzY3JpcHRhbGlhcyI+U2NyaXB0QWxpYXM8L2E+PC9jb2RlPgogICAgZGlyZWN0b3J5LjwvcD4KCiAgICA8cD5XaGVuIHRoZSBzZXJ2ZXIgaW52b2tlcyBhIENHSSBzY3JpcHQsIGl0IHdpbGwgYWRkIGEgdmFyaWFibGUKICAgIGNhbGxlZCA8Y29kZT5ET0NVTUVOVF9ST09UPC9jb2RlPiB0byB0aGUgZW52aXJvbm1lbnQuIFRoaXMKICAgIHZhcmlhYmxlIHdpbGwgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2RvY3VtZW50cm9vdCI+RG9jdW1lbnRSb290PC9hPjwvY29kZT4gY29uZmlndXJhdGlvbgogICAgdmFyaWFibGUuPC9wPgoKICAgIDxwPkZvciBhbiBpbnRyb2R1Y3Rpb24gdG8gdXNpbmcgQ0dJIHNjcmlwdHMgd2l0aCBBcGFjaGUsIHNlZQogICAgb3VyIHR1dG9yaWFsIG9uIDxhIGhyZWY9Ii4uL2hvd3RvL2NnaS5odG1sIj5EeW5hbWljIENvbnRlbnQKICAgIFdpdGggQ0dJPC9hPi48L3A+CgogICAgPHA+V2hlbiB1c2luZyBhIG11bHRpLXRocmVhZGVkIE1QTSB1bmRlciB1bml4LCB0aGUgbW9kdWxlCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaWQuaHRtbCI+bW9kX2NnaWQ8L2E+PC9jb2RlPiBzaG91bGQgYmUgdXNlZCBpbiBwbGFjZSBvZgogICAgdGhpcyBtb2R1bGUuIEF0IHRoZSB1c2VyIGxldmVsLCB0aGUgdHdvIG1vZHVsZXMgYXJlIGVzc2VudGlhbGx5CiAgICBpZGVudGljYWwuPC9wPgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48aDMgY2xhc3M9ImRpcmVjdGl2ZXMiPkRpcmVjdGl2ZXM8L2gzPgo8dWwgaWQ9InRvYyI+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3NjcmlwdGxvZyI+U2NyaXB0TG9nPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3NjcmlwdGxvZ2J1ZmZlciI+U2NyaXB0TG9nQnVmZmVyPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3NjcmlwdGxvZ2xlbmd0aCI+U2NyaXB0TG9nTGVuZ3RoPC9hPjwvbGk+CjwvdWw+CjxoMz5Ub3BpY3M8L2gzPgo8dWwgaWQ9InRvcGljcyI+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2VudiI+Q0dJIEVudmlyb25tZW50IHZhcmlhYmxlczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNjZ2ktZGVidWciPkNHSSBEZWJ1Z2dpbmc8L2E+PC9saT4KPC91bD48aDM+U2VlIGFsc288L2gzPgo8dWwgY2xhc3M9InNlZWFsc28iPgo8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNhY2NlcHRwYXRoaW5mbyI+QWNjZXB0UGF0aEluZm88L2E+PC9jb2RlPjwvbGk+CjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI29wdGlvbnMiPk9wdGlvbnM8L2E+PC9jb2RlPjwvbGk+CjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2FsaWFzLmh0bWwjc2NyaXB0YWxpYXMiPlNjcmlwdEFsaWFzPC9hPjwvY29kZT48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9taW1lLmh0bWwjYWRkaGFuZGxlciI+QWRkSGFuZGxlcjwvYT48L2NvZGU+PC9saT4KPGxpPjxhIGhyZWY9Ii4uL3N1ZXhlYy5odG1sIj5SdW5uaW5nIENHSSBwcm9ncmFtcyB1bmRlciBkaWZmZXJlbnQKICAgIHVzZXIgSURzPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vaG9vaG9vLm5jc2EudWl1Yy5lZHUvY2dpLyI+Q0dJIFNwZWNpZmljYXRpb248L2E+PC9saT4KPC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZW52IiBpZD0iZW52Ij5DR0kgRW52aXJvbm1lbnQgdmFyaWFibGVzPC9hPjwvaDI+CiAgICA8cD5UaGUgc2VydmVyIHdpbGwgc2V0IHRoZSBDR0kgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFzIGRlc2NyaWJlZAogICAgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9ob29ob28ubmNzYS51aXVjLmVkdS9jZ2kvIj5DR0kKICAgIHNwZWNpZmljYXRpb248L2E+LCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvdmlzaW9uczo8L3A+CgogICAgPGRsPgogICAgICA8ZHQ+UEFUSF9JTkZPPC9kdD4KCiAgICAgIDxkZD5UaGlzIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBpZiB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNhY2NlcHRwYXRoaW5mbyI+QWNjZXB0UGF0aEluZm88L2E+PC9jb2RlPiBkaXJlY3RpdmUgaXMgZXhwbGljaXRseSBzZXQgdG8KICAgICAgPGNvZGU+b2ZmPC9jb2RlPi4gIFRoZSBkZWZhdWx0IGJlaGF2aW9yLCBpZiA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5BY2NlcHRQYXRoSW5mbzwvY29kZT4gaXMgbm90IGdpdmVuLCBpcyB0aGF0IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfY2dpLmh0bWwiPm1vZF9jZ2k8L2E+PC9jb2RlPiB3aWxsIGFjY2VwdCBwYXRoIGluZm8gKHRyYWlsaW5nIDxjb2RlPgogICAgICAvbW9yZS9wYXRoL2luZm88L2NvZGU+IGZvbGxvd2luZyB0aGUgc2NyaXB0IGZpbGVuYW1lIGluIHRoZSBVUkkpLAogICAgICB3aGlsZSB0aGUgY29yZSBzZXJ2ZXIgd2lsbCByZXR1cm4gYSA0MDQgTk9UIEZPVU5EIGVycm9yIGZvciByZXF1ZXN0cwogICAgICB3aXRoIGFkZGl0aW9uYWwgcGF0aCBpbmZvLiBPbWl0dGluZyB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+QWNjZXB0UGF0aEluZm88L2NvZGU+IGRpcmVjdGl2ZSBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIHNldHRpbmcKICAgICAgaXQgPGNvZGU+T248L2NvZGU+IGZvciA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaS5odG1sIj5tb2RfY2dpPC9hPjwvY29kZT4gcmVxdWVzdHMuPC9kZD4KCiAgICAgIDxkdD5SRU1PVEVfSE9TVDwvZHQ+CgogICAgICA8ZGQ+VGhpcyB3aWxsIG9ubHkgYmUgc2V0IGlmIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjaG9zdG5hbWVsb29rdXBzIj5Ib3N0bmFtZUxvb2t1cHM8L2E+PC9jb2RlPiBpcyBzZXQgdG8gPGNvZGU+b248L2NvZGU+IChpdAogICAgICBpcyBvZmYgYnkgZGVmYXVsdCksIGFuZCBpZiBhIHJldmVyc2UgRE5TIGxvb2t1cCBvZiB0aGUgYWNjZXNzaW5nCiAgICAgIGhvc3QncyBhZGRyZXNzIGluZGVlZCBmaW5kcyBhIGhvc3QgbmFtZS48L2RkPgoKICAgICAgPGR0PlJFTU9URV9JREVOVDwvZHQ+CgogICAgICA8ZGQ+VGhpcyB3aWxsIG9ubHkgYmUgc2V0IGlmIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjaWRlbnRpdHljaGVjayI+SWRlbnRpdHlDaGVjazwvYT48L2NvZGU+IGlzIHNldCB0bwogICAgICA8Y29kZT5vbjwvY29kZT4gYW5kIHRoZSBhY2Nlc3NpbmcgaG9zdCBzdXBwb3J0cyB0aGUgaWRlbnQKICAgICAgcHJvdG9jb2wuIE5vdGUgdGhhdCB0aGUgY29udGVudHMgb2YgdGhpcyB2YXJpYWJsZSBjYW5ub3QgYmUKICAgICAgcmVsaWVkIHVwb24gYmVjYXVzZSBpdCBjYW4gZWFzaWx5IGJlIGZha2VkLCBhbmQgaWYgdGhlcmUgaXMgYQogICAgICBwcm94eSBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHRoZSBzZXJ2ZXIsIGl0IGlzIHVzdWFsbHkKICAgICAgdG90YWxseSB1c2VsZXNzLjwvZGQ+CgogICAgICA8ZHQ+UkVNT1RFX1VTRVI8L2R0PgoKICAgICAgPGRkPlRoaXMgd2lsbCBvbmx5IGJlIHNldCBpZiB0aGUgQ0dJIHNjcmlwdCBpcyBzdWJqZWN0IHRvCiAgICAgIGF1dGhlbnRpY2F0aW9uLjwvZGQ+CiAgICA8L2RsPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJjZ2ktZGVidWciIGlkPSJjZ2ktZGVidWciPkNHSSBEZWJ1Z2dpbmc8L2E+PC9oMj4KICAgIDxwPkRlYnVnZ2luZyBDR0kgc2NyaXB0cyBoYXMgdHJhZGl0aW9uYWxseSBiZWVuIGRpZmZpY3VsdCwgbWFpbmx5CiAgICBiZWNhdXNlIGl0IGhhcyBub3QgYmVlbiBwb3NzaWJsZSB0byBzdHVkeSB0aGUgb3V0cHV0IChzdGFuZGFyZAogICAgb3V0cHV0IGFuZCBlcnJvcikgZm9yIHNjcmlwdHMgd2hpY2ggYXJlIGZhaWxpbmcgdG8gcnVuCiAgICBwcm9wZXJseS4gVGhlc2UgZGlyZWN0aXZlcywgaW5jbHVkZWQgaW4gQXBhY2hlIDEuMiBhbmQgbGF0ZXIsCiAgICBwcm92aWRlIG1vcmUgZGV0YWlsZWQgbG9nZ2luZyBvZiBlcnJvcnMgd2hlbiB0aGV5IG9jY3VyLjwvcD4KCiAgICA8aDM+Q0dJIExvZ2ZpbGUgRm9ybWF0PC9oMz4KICAgICAgPHA+V2hlbiBjb25maWd1cmVkLCB0aGUgQ0dJIGVycm9yIGxvZyBsb2dzIGFueSBDR0kgd2hpY2ggZG9lcyBub3QKICAgICAgZXhlY3V0ZSBwcm9wZXJseS4gRWFjaCBDR0kgc2NyaXB0IHdoaWNoIGZhaWxzIHRvIG9wZXJhdGUgY2F1c2VzCiAgICAgIHNldmVyYWwgbGluZXMgb2YgaW5mb3JtYXRpb24gdG8gYmUgbG9nZ2VkLiBUaGUgZmlyc3QgdHdvIGxpbmVzCiAgICAgIGFyZSBhbHdheXMgb2YgdGhlIGZvcm1hdDo8L3A+CgogICAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgICAlJSBbPHZhcj50aW1lPC92YXI+XSA8dmFyPnJlcXVlc3QtbGluZTwvdmFyPjxiciAvPgogICAgICAgICUlIDx2YXI+SFRUUC1zdGF0dXM8L3Zhcj4gPHZhcj5DR0ktc2NyaXB0LWZpbGVuYW1lPC92YXI+CiAgICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgICA8cD5JZiB0aGUgZXJyb3IgaXMgdGhhdCBDR0kgc2NyaXB0IGNhbm5vdCBiZSBydW4sIHRoZSBsb2cgZmlsZQogICAgICB3aWxsIGNvbnRhaW4gYW4gZXh0cmEgdHdvIGxpbmVzOjwvcD4KCiAgICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgogICAgICAgICUlZXJyb3I8YnIgLz4KICAgICAgICA8dmFyPmVycm9yLW1lc3NhZ2U8L3Zhcj4KICAgICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAgIDxwPkFsdGVybmF0aXZlbHksIGlmIHRoZSBlcnJvciBpcyB0aGUgcmVzdWx0IG9mIHRoZSBzY3JpcHQKICAgICAgcmV0dXJuaW5nIGluY29ycmVjdCBoZWFkZXIgaW5mb3JtYXRpb24gKG9mdGVuIGR1ZSB0byBhIGJ1ZyBpbgogICAgICB0aGUgc2NyaXB0KSwgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBsb2dnZWQ6PC9wPgoKICAgICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICAgJXJlcXVlc3Q8YnIgLz4KICAgICAgICA8dmFyPkFsbCBIVFRQIHJlcXVlc3QgaGVhZGVycyByZWNlaXZlZDwvdmFyPjxiciAvPgogICAgICAgIDx2YXI+UE9TVCBvciBQVVQgZW50aXR5IChpZiBhbnkpPC92YXI+PGJyIC8+CiAgICAgICAgJXJlc3BvbnNlPGJyIC8+CiAgICAgICAgPHZhcj5BbGwgaGVhZGVycyBvdXRwdXQgYnkgdGhlIENHSSBzY3JpcHQ8L3Zhcj48YnIgLz4KICAgICAgICAlc3Rkb3V0PGJyIC8+CiAgICAgICAgPHZhcj5DR0kgc3RhbmRhcmQgb3V0cHV0PC92YXI+PGJyIC8+CiAgICAgICAgJXN0ZGVycjxiciAvPgogICAgICAgIDx2YXI+Q0dJIHN0YW5kYXJkIGVycm9yPC92YXI+PGJyIC8+CiAgICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgICA8cD4oVGhlICVzdGRvdXQgYW5kICVzdGRlcnIgcGFydHMgbWF5IGJlIG1pc3NpbmcgaWYgdGhlIHNjcmlwdCBkaWQKICAgICAgbm90IG91dHB1dCBhbnl0aGluZyBvbiBzdGFuZGFyZCBvdXRwdXQgb3Igc3RhbmRhcmQgZXJyb3IpLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iU2NyaXB0TG9nIiBpZD0iU2NyaXB0TG9nIj5TY3JpcHRMb2c8L2E+IDxhIG5hbWU9InNjcmlwdGxvZyIgaWQ9InNjcmlwdGxvZyI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+TG9jYXRpb24gb2YgdGhlIENHSSBzY3JpcHQgZXJyb3IgbG9nZmlsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5TY3JpcHRMb2cgPHZhcj5maWxlLXBhdGg8L3Zhcj48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT48L2NvZGU+LCA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaWQuaHRtbCI+bW9kX2NnaWQ8L2E+PC9jb2RlPjwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5TY3JpcHRMb2c8L2NvZGU+IGRpcmVjdGl2ZSBzZXRzIHRoZSBDR0kKICAgIHNjcmlwdCBlcnJvciBsb2dmaWxlLiBJZiBubyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5TY3JpcHRMb2c8L2NvZGU+IGlzIGdpdmVuLAogICAgbm8gZXJyb3IgbG9nIGlzIGNyZWF0ZWQuIElmIGdpdmVuLCBhbnkgQ0dJIGVycm9ycyBhcmUgbG9nZ2VkIGludG8gdGhlCiAgICBmaWxlbmFtZSBnaXZlbiBhcyBhcmd1bWVudC4gSWYgdGhpcyBpcyBhIHJlbGF0aXZlIGZpbGUgb3IgcGF0aCBpdCBpcwogICAgdGFrZW4gcmVsYXRpdmUgdG8gdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjc2VydmVycm9vdCI+U2VydmVyUm9vdDwvYT48L2NvZGU+LgogICAgPC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxoMz5FeGFtcGxlPC9oMz48cD48Y29kZT4KICAgICAgU2NyaXB0TG9nIGxvZ3MvY2dpX2xvZwogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5UaGlzIGxvZyB3aWxsIGJlIG9wZW5lZCBhcyB0aGUgdXNlciB0aGUgY2hpbGQgcHJvY2Vzc2VzIHJ1bgogICAgYXMsIDxlbT5pLmUuPC9lbT4gdGhlIHVzZXIgc3BlY2lmaWVkIGluIHRoZSBtYWluIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tcG1fY29tbW9uLmh0bWwjdXNlciI+VXNlcjwvYT48L2NvZGU+IGRpcmVjdGl2ZS4gVGhpcyBtZWFucyB0aGF0CiAgICBlaXRoZXIgdGhlIGRpcmVjdG9yeSB0aGUgc2NyaXB0IGxvZyBpcyBpbiBuZWVkcyB0byBiZSB3cml0YWJsZQogICAgYnkgdGhhdCB1c2VyIG9yIHRoZSBmaWxlIG5lZWRzIHRvIGJlIG1hbnVhbGx5IGNyZWF0ZWQgYW5kIHNldAogICAgdG8gYmUgd3JpdGFibGUgYnkgdGhhdCB1c2VyLiBJZiB5b3UgcGxhY2UgdGhlIHNjcmlwdCBsb2cgaW4KICAgIHlvdXIgbWFpbiBsb2dzIGRpcmVjdG9yeSwgZG8gPHN0cm9uZz5OT1Q8L3N0cm9uZz4gY2hhbmdlIHRoZQogICAgZGlyZWN0b3J5IHBlcm1pc3Npb25zIHRvIG1ha2UgaXQgd3JpdGFibGUgYnkgdGhlIHVzZXIgdGhlIGNoaWxkCiAgICBwcm9jZXNzZXMgcnVuIGFzLjwvcD4KCiAgICA8cD5Ob3RlIHRoYXQgc2NyaXB0IGxvZ2dpbmcgaXMgbWVhbnQgdG8gYmUgYSBkZWJ1Z2dpbmcgZmVhdHVyZQogICAgd2hlbiB3cml0aW5nIENHSSBzY3JpcHRzLCBhbmQgaXMgbm90IG1lYW50IHRvIGJlIGFjdGl2YXRlZAogICAgY29udGludW91c2x5IG9uIHJ1bm5pbmcgc2VydmVycy4gSXQgaXMgbm90IG9wdGltaXplZCBmb3Igc3BlZWQKICAgIG9yIGVmZmljaWVuY3ksIGFuZCBtYXkgaGF2ZSBzZWN1cml0eSBwcm9ibGVtcyBpZiB1c2VkIGluIGEKICAgIG1hbm5lciBvdGhlciB0aGFuIHRoYXQgZm9yIHdoaWNoIGl0IHdhcyBkZXNpZ25lZC48L3A+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iU2NyaXB0TG9nQnVmZmVyIiBpZD0iU2NyaXB0TG9nQnVmZmVyIj5TY3JpcHRMb2dCdWZmZXI8L2E+IDxhIG5hbWU9InNjcmlwdGxvZ2J1ZmZlciIgaWQ9InNjcmlwdGxvZ2J1ZmZlciI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+TWF4aW11bSBhbW91bnQgb2YgUFVUIG9yIFBPU1QgcmVxdWVzdHMgdGhhdCB3aWxsIGJlIHJlY29yZGVkCmluIHRoZSBzY3JpcHRsb2c8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+U2NyaXB0TG9nQnVmZmVyIDx2YXI+Ynl0ZXM8L3Zhcj48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+U2NyaXB0TG9nQnVmZmVyIDEwMjQ8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT48L2NvZGU+LCA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaWQuaHRtbCI+bW9kX2NnaWQ8L2E+PC9jb2RlPjwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPlRoZSBzaXplIG9mIGFueSBQVVQgb3IgUE9TVCBlbnRpdHkgYm9keSB0aGF0IGlzIGxvZ2dlZCB0bwogICAgdGhlIGZpbGUgaXMgbGltaXRlZCwgdG8gcHJldmVudCB0aGUgbG9nIGZpbGUgZ3Jvd2luZyB0b28gYmlnCiAgICB0b28gcXVpY2tseSBpZiBsYXJnZSBib2RpZXMgYXJlIGJlaW5nIHJlY2VpdmVkLiBCeSBkZWZhdWx0LCB1cAogICAgdG8gMTAyNCBieXRlcyBhcmUgbG9nZ2VkLCBidXQgdGhpcyBjYW4gYmUgY2hhbmdlZCB3aXRoIHRoaXMKICAgIGRpcmVjdGl2ZS48L3A+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iU2NyaXB0TG9nTGVuZ3RoIiBpZD0iU2NyaXB0TG9nTGVuZ3RoIj5TY3JpcHRMb2dMZW5ndGg8L2E+IDxhIG5hbWU9InNjcmlwdGxvZ2xlbmd0aCIgaWQ9InNjcmlwdGxvZ2xlbmd0aCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+U2l6ZSBsaW1pdCBvZiB0aGUgQ0dJIHNjcmlwdCBsb2dmaWxlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPlNjcmlwdExvZ0xlbmd0aCA8dmFyPmJ5dGVzPC92YXI+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPlNjcmlwdExvZ0xlbmd0aCAxMDM4NTc2MDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+QmFzZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaS5odG1sIj5tb2RfY2dpPC9hPjwvY29kZT4sIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfY2dpZC5odG1sIj5tb2RfY2dpZDwvYT48L2NvZGU+PC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+U2NyaXB0TG9nTGVuZ3RoPC9jb2RlPiBjYW4gYmUgdXNlZCB0byBsaW1pdCB0aGUKICAgIHNpemUgb2YgdGhlIENHSSBzY3JpcHQgbG9nZmlsZS4gU2luY2UgdGhlIGxvZ2ZpbGUgbG9ncyBhIGxvdCBvZgogICAgaW5mb3JtYXRpb24gcGVyIENHSSBlcnJvciAoYWxsIHJlcXVlc3QgaGVhZGVycywgYWxsIHNjcmlwdCBvdXRwdXQpCiAgICBpdCBjYW4gZ3JvdyB0byBiZSBhIGJpZyBmaWxlLiBUbyBwcmV2ZW50IHByb2JsZW1zIGR1ZSB0byB1bmJvdW5kZWQKICAgIGdyb3d0aCwgdGhpcyBkaXJlY3RpdmUgY2FuIGJlIHVzZWQgdG8gc2V0IGFuIG1heGltdW0gZmlsZS1zaXplIGZvcgogICAgdGhlIENHSSBsb2dmaWxlLiBJZiB0aGUgZmlsZSBleGNlZWRzIHRoaXMgc2l6ZSwgbm8gbW9yZQogICAgaW5mb3JtYXRpb24gd2lsbCBiZSB3cml0dGVuIHRvIGl0LjwvcD4KCjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9tb2QvbW9kX2NnaS5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vamEvbW9kL21vZF9jZ2kuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9tb2QvbW9kX2NnaS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAxOTk1LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG9yIGl0cyBsaWNlbnNvcnMsIGFzIGFwcGxpY2FibGUuPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+CjwvYm9keT48L2h0bWw+