PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5tb2RfcHJveHlfaHR0cCAtIFNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjU8L3RpdGxlPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+U2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNTwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZmVhdGhlci5wbmciIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPlNlcnZldXIgSFRUUDwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLi8iPlZlcnNpb24gMi41PC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5Nb2R1bGVzPC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPgo8ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPk1vZHVsZSBBcGFjaGUgbW9kX3Byb3h5X2h0dHA8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfcHJveHlfaHR0cC5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvbW9kL21vZF9wcm94eV9odHRwLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJtb2R1bGUiPjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPk1vZHVsZSBmb3Vybmlzc2FudCBsZSBzdXBwb3J0IEhUVFAg4Ao8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXQ6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI01vZHVsZUlkZW50aWZpZXIiPklkZW50aWZpY2F0ZXVyoGRloE1vZHVsZTo8L2E+PC90aD48dGQ+cHJveHlfaHR0cF9tb2R1bGU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTb3VyY2VGaWxlIj5GaWNoaWVyoFNvdXJjZTo8L2E+PC90aD48dGQ+bW9kX3Byb3h5X2h0dHAuYzwvdGQ+PC90cj48L3RhYmxlPgo8aDM+U29tbWFpcmU8L2gzPgoKICAgIDxwPlBvdXIgcG91dm9pciBmb25jdGlvbm5lciwgY2UgbW9kdWxlIDxlbT5yZXF1aWVydDwvZW0+IGxlCiAgICBjaGFyZ2VtZW50IGRlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfcHJveHkuaHRtbCI+bW9kX3Byb3h5PC9hPjwvY29kZT4uIElsIGZvdXJuaXQgbGUgc3VwcG9ydCBkdQogICAgbWFuZGF0ZW1lbnQgZGVzIHJlcXXqdGVzIEhUVFAgZXQgSFRUUFMuIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfcHJveHlfaHR0cC5odG1sIj5tb2RfcHJveHlfaHR0cDwvYT48L2NvZGU+CiAgICBzdXBwb3J0ZSBIVFRQLzAuOSwgSFRUUC8xLjAgZXQgSFRUUC8xLjEuIElsIG5lIGZvdXJuaXQKICAgIDxlbT5hdWN1bmU8L2VtPiBmb25jdGlvbm5hbGl06SBkZSBtaXNlIGVuIGNhY2hlLiBTaSB2b3VzIHNvdWhhaXRlegogICAgbWV0dHJlIGVuIG9ldXZyZSB1biBtYW5kYXRhaXJlIHF1aSBhc3N1cmUgYXVzc2kgbGVzIGZvbmN0aW9ucyBkZQogICAgbWlzZSBlbiBjYWNoZSwgdm91cyBkZXZleiB1dGlsaXNlciBsZXMgc2VydmljZXMgZHUgbW9kdWxlCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NhY2hlLmh0bWwiPm1vZF9jYWNoZTwvYT48L2NvZGU+LjwvcD4KCiAgICA8cD5BaW5zaSwgcG91ciBwb3V2b2lyIHRyYWl0ZXIgbGVzIHJlcXXqdGVzIEhUVFAgbWFuZGF06WVzLAogICAgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9wcm94eS5odG1sIj5tb2RfcHJveHk8L2E+PC9jb2RlPiwgZXQgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9wcm94eV9odHRwLmh0bWwiPm1vZF9wcm94eV9odHRwPC9hPjwvY29kZT4KICAgIGRvaXZlbnQg6nRyZSBjaGFyZ+lzIGRhbnMgbGUgc2VydmV1ci48L3A+CgogICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGgzPkF2ZXJ0aXNzZW1lbnQ8L2gzPgogICAgICA8cD5OJ2FjdGl2ZXogcGFzIGxhIGZvbmN0aW9ubmFsaXTpIGRlIG1hbmRhdGFpcmUgYXZhbnQgZCdhdm9pciA8YSBocmVmPSJtb2RfcHJveHkuaHRtbCNhY2Nlc3MiPnPpY3VyaXPpIHZvdHJlIHNlcnZldXI8L2E+LiBMZXMKICAgICAgc2VydmV1cnMgbWFuZGF0YWlyZXMgb3V2ZXJ0cyBzb250IGRhbmdlcmV1eCBub24gc2V1bGVtZW50IHBvdXIKICAgICAgdm90cmUgculzZWF1LCBtYWlzIGF1c3NpIHBvdXIgbCdJbnRlcm5ldCBhdSBzZW5zIGxhcmdlLjwvcD4KICAgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48aDM+U3VqZXRzPC9oMz4KPHVsIGlkPSJ0b3BpY3MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNlbnYiPlZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbm90ZXMiPkluZm9ybWF0aW9ucyBzdXIgbGVzIHJlcXXqdGVzPC9hPjwvbGk+CjwvdWw+PGgzIGNsYXNzPSJkaXJlY3RpdmVzIj5EaXJlY3RpdmVzPC9oMz4KPHA+Q2UgbW9kdWxlIG5lIGZvdXJuaXQgYXVjdW5lIGRpcmVjdGl2ZS48L3A+CjxoMz5UcmFpdGVtZW50IGRlcyBidWdzPC9oMz48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5hcGFjaGUub3JnL2Rpc3QvaHR0cGQvQ0hBTkdFU18yLjQiPkpvdXJuYWwgZGVzIG1vZGlmaWNhdGlvbnMgZGUgaHR0cGQ8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9iei5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9X19vcGVuX18mYW1wO2xpc3RfaWQ9MTQ0NTMyJmFtcDtwcm9kdWN0PUFwYWNoZSUyMGh0dHBkLTImYW1wO3F1ZXJ5X2Zvcm1hdD1zcGVjaWZpYyZhbXA7b3JkZXI9Y2hhbmdlZGRhdGUlMjBERVNDJTJDcHJpb3JpdHklMkNidWdfc2V2ZXJpdHkmYW1wO2NvbXBvbmVudD1tb2RfcHJveHlfaHR0cCI+UHJvYmzobWVzIGNvbm51czwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2J6LmFwYWNoZS5vcmcvYnVnemlsbGEvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PUFwYWNoZSUyMGh0dHBkLTImYW1wO2NvbXBvbmVudD1tb2RfcHJveHlfaHR0cCI+U2lnbmFsZXIgdW4gYnVnPC9hPjwvbGk+PC91bD48aDM+Vm9pciBhdXNzaTwvaDM+Cjx1bCBjbGFzcz0ic2VlYWxzbyI+CjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfcHJveHlfY29ubmVjdC5odG1sIj5tb2RfcHJveHlfY29ubmVjdDwvYT48L2NvZGU+PC9saT4KPGxpPjxhIGhyZWY9IiNjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJlbnYiIGlkPSJlbnYiPlZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQ8L2E+PC9oMj4KICAgIDxwPk91dHJlIGxlcyBkaXJlY3RpdmVzIGRlIGNvbmZpZ3VyYXRpb24gcXVpIGNvbnRy9GxlbnQgbGUKICAgIGNvbXBvcnRlbWVudCBkZSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+LCBwbHVzaWV1cnMgPGRmbj52YXJpYWJsZXMKICAgIGQnZW52aXJvbm5lbWVudDwvZGZuPiBwZXJtZXR0ZW50IGRlIGNvbnRy9GxlciBsZSBmb3Vybmlzc2V1ciBkdQogICAgcHJvdG9jb2xlIEhUVFAuIFBhcm1pIGxlcyB2YXJpYWJsZXMgc3VpdmFudGVzLCBjZWxsZSBxdWkgbmUKICAgIG7pY2Vzc2l0ZW50IHBhcyBkZSB2YWxldXIgcGFydGljdWxp6HJlIHNvbnQgZOlmaW5pZXMgcXVlbGxlIHF1ZSBzb2l0CiAgICBsYSB2YWxldXIgcXUnb24gbGV1ciBhZmZlY3RlLjwvcD4KICAgIDxkbD4KICAgICAgICA8ZHQ+cHJveHktc2VuZGV4dHJhY3JsZjwvZHQ+CiAgICAgICAgPGRkPlByb3ZvcXVlIGwnZW52b2kgcGFyIGxlIG1hbmRhdGFpcmUgZCd1bmUgbm91dmVsbGUgbGlnbmUKCUNSLUxGIHN1cHBs6W1lbnRhaXJlIOAgbGEgZmluIGRlIGxhIHJlcXXqdGUuCglDZWNpIGNvbnN0aXR1ZSB1bgoJbW95ZW4gZGUgY29udG91cm5lbWVudCBkJ3VuZSBib2d1ZSBkZSBjZXJ0YWlucwoJbmF2aWdhdGV1cnMuPC9kZD4KICAgICAgICA8ZHQ+Zm9yY2UtcHJveHktcmVxdWVzdC0xLjA8L2R0PgogICAgICAgIDxkZD5Gb3JjZSBsZSBtYW5kYXRhaXJlIOAgZW52b3llciBkZXMgcmVxdep0ZXMgdmVycyBsZSBzZXJ2ZXVyCgljaWJsZSBzZWxvbiBsZSBwcm90b2NvbGUgSFRUUC8xLjAgZXQgZOlzYWN0aXZlIGxlcwoJZm9uY3Rpb25uYWxpdOlzIHByb3ByZXMg4CBIVFRQLzEuMS48L2RkPgogICAgICAgIDxkdD5wcm94eS1ub2tlZXBhbGl2ZTwvZHQ+CiAgICAgICAgPGRkPkZvcmNlIGxlIG1hbmRhdGFpcmUg4CBmZXJtZXIgbGEgY29ubmV4aW9uIGF2ZWMgbGUgc2VydmV1cgoJY2libGUgYXBy6HMgY2hhcXVlIHJlcXXqdGUuPC9kZD4KICAgICAgICA8ZHQ+cHJveHktY2hhaW4tYXV0aDwvZHQ+CiAgICAgICAgPGRkPlNpIGxlIG1hbmRhdGFpcmUgcmVxdWllcnQgdW5lIGF1dGhlbnRpZmljYXRpb24sIGlsIHZhIGxpcmUKCWV0IGV4cGxvaXRlciBsZXMgZG9ubullcyBkJ2F1dGhlbnRpZmljYXRpb24gcG91ciBtYW5kYXRhaXJlCgllbnZveellcyBwYXIgbGUgY2xpZW50LiBTaSA8dmFyPnByb3h5LWNoYWluLWF1dGg8L3Zhcj4gZXN0Cglk6WZpbmllLCBpbCB2YSA8ZW0+YXVzc2k8L2VtPiBmYWlyZSBzdWl2cmUgY2VzIGRvbm7pZXMgdmVycyBsZQoJbWFuZGF0YWlyZSBzdWl2YW50IGRhbnMgbGEgY2hh7m5lLiBDZWNpIHBldXQgcydhdulyZXIgbuljZXNzYWlyZQoJc2kgdW5lIGNoYe5uZSBkZSBtYW5kYXRhaXJlcyBwYXJ0YWdlbnQgbGVzIGluZm9ybWF0aW9ucwoJZCdhdXRoZW50aWZpY2F0aW9uLgoJPHN0cm9uZz5BdmVydGlzc2VtZW50IGNvbmNlcm5hbnQgbGEgc+ljdXJpdOkgOjwvc3Ryb25nPgoJTmUgZOlmaW5pc3NleiBjZXR0ZSB2YXJpYWJsZSBxdWUgc2kgdm91cyDqdGVzIHP7ciBkJ2VuIGF2b2lyCgliZXNvaW4sIGNhciBlbGxlIHBldXQgcHJvdm9xdWVyIGxhIGRpdnVsZ2F0aW9uIGQnaW5mb3JtYXRpb25zCglzZW5zaWJsZXMgITwvZGQ+CiAgICAgICAgPGR0PnByb3h5LXNlbmRjbDwvZHQ+CiAgICAgICAgPGRkPkF2ZWMgSFRUUC8xLjAsIHRvdXRlcyBsZXMgcmVxdep0ZXMgcXVpIHBvc3PoZGVudCB1biBjb3JwcwoJKHBhciBleGVtcGxlIGxlcyByZXF16nRlcyBQT1NUKSBkb2l2ZW50IGNvbXBvcnRlciB1biBlbi106nRlCgk8dmFyPkNvbnRlbnQtTGVuZ3RoPC92YXI+LiBDZXR0ZSB2YXJpYWJsZSBkJ2Vudmlyb25uZW1lbnQgZm9yY2UKCWxlIG1hbmRhdGFpcmUgQXBhY2hlIOAgZW52b3llciBjZXQgZW4tdOp0ZSBhdSBzZXJ2ZXVyIGNpYmxlLAoJc2FucyB0ZW5pciBjb21wdGUgZGUgY2UgcXVlIGx1aSBhIGVudm956SBsZSBjbGllbnQuIENlY2kgcGVybWV0CglkJ2Fzc3VyZXIgbGEgY29tcGF0aWJpbGl06SBsb3JzcXUnb24gbWFuZGF0ZSB1biBzZXJ2ZXVyIGNpYmxlCgltZXR0YW50IGVuIG9ldXZyZSB1biBwcm90b2NvbGUgZGUgdHlwZSBIVFRQLzEuMCBvdSBpbmNvbm51LiBFbGxlCglwZXV0IGNlcGVuZGFudCBu6WNlc3NpdGVyIGxhIG1pc2UgZW4gdGFtcG9uIGRlIGwnaW506WdyYWxpdOkgZGUKCWxhIHJlcXXqdGUgcGFyIGxlIG1hbmRhdGFpcmUsIGNlIHF1aSBzJ2F26HJlIHRy6HMgaW5lZmZpY2FjZQoJcG91ciBsZXMgcmVxdep0ZXMgZGUgZ3JhbmRlIHRhaWxsZS48L2RkPgogICAgICAgIDxkdD5wcm94eS1zZW5kY2h1bmtzIG91IHByb3h5LXNlbmRjaHVua2VkPC9kdD4KICAgICAgICA8ZGQ+Q2V0dGUgdmFyaWFibGUgY29uc3RpdHVlIGwnb3Bwb3PpIGRlCgk8dmFyPnByb3h5LXNlbmRjbDwvdmFyPi4gRWxsZSBwZXJtZXQgbGEgdHJhbnNtaXNzaW9uIGRlcyBjb3JwcwoJZGUgcmVxdep0ZXMgdmVycyBsZSBzZXJ2ZXVyIGNpYmxlIGVuIHV0aWxpc2FudCB1biBjb2RhZ2UgZGUKCXRyYW5zZmVydCBmcmFjdGlvbm7pLiBDZWNpIHBlcm1ldCB1bmUgdHJhbnNtaXNzaW9uIGRlcyByZXF16nRlcwoJcGx1cyBlZmZpY2FjZSwgbWFpcyBu6WNlc3NpdGUgcXVlIGxlIHNlcnZldXIgY2libGUgc3VwcG9ydGUgbGUKCXByb3RvY29sZSBIVFRQLzEuMS48L2RkPgogICAgICAgIDxkdD5wcm94eS1pbnRlcmltLXJlc3BvbnNlPC9kdD4KICAgICAgICA8ZGQ+Q2V0dGUgdmFyaWFibGUgcGV1dCBwcmVuZHJlIGxlcyB2YWxldXJzIDxjb2RlPlJGQzwvY29kZT4KCSh2YWxldXIgcGFyIGTpZmF1dCkgb3UKCTxjb2RlPlN1cHByZXNzPC9jb2RlPi4gTGVzIHZlcnNpb25zIHBy6WPpZGVudGVzIGRlIGh0dHBkCglzdXBwcmltYWllbnQgbGVzIHLpcG9uc2VzIGludGVybelkaWFpcmVzIEhUVFAgKDF4eCkgZW52b3npZXMgcGFyCglsZSBzZXJ2ZXVyIGNpYmxlLiBFbiBwcmF0aXF1ZSwgc2kgdW4gc2VydmV1ciBjaWJsZSBlbnZvaWUgdW5lCgly6XBvbnNlIGludGVybelkaWFpcmUsIGlsIHNlIHBldXQgcXUnaWwg6XRlbmRlIGx1aS1t6m1lIGxlCglwcm90b2NvbGUgZCd1bmUgbWFuaehyZSBkb250IG5vdXMgbidhdm9ucyBwYXMgY29ubmFpc3NhbmNlLCBvdQoJdG91dCBzaW1wbGVtZW50IG5vbiBjb25mb3JtZS4gTGUgY29tcG9ydGVtZW50IGR1IG1hbmRhdGFpcmUgZXN0Cglkb25jIG1haW50ZW5hbnQgY29uZmlndXJhYmxlIDogZOlmaW5pc3NlegoJPGNvZGU+cHJveHktaW50ZXJpbS1yZXNwb25zZSBSRkM8L2NvZGU+IHBvdXIg6nRyZSB0b3RhbGVtZW50Cgljb21wYXRpYmxlIGF2ZWMgbGUgcHJvdG9jb2xlLCBvdSA8Y29kZT5wcm94eS1pbnRlcmltLXJlc3BvbnNlCglTdXBwcmVzczwvY29kZT4gcG91ciBzdXBwcmltZXIgbGVzIHLpcG9uc2VzIGludGVybelkaWFpcmVzLjwvZGQ+CiAgICAgICAgPGR0PnByb3h5LWluaXRpYWwtbm90LXBvb2xlZDwvZHQ+CiAgICAgICAgPGRkPlNpIGNldHRlIHZhcmlhYmxlIGVzdCBk6WZpbmllLCBhdWN1bmUgY29ubmV4aW9uIGZhaXNhbnQKCXBhcnRpZSBkJ3VuIGpldSBuZSBzZXJhIHLpdXRpbGlz6WUgc2kgbGEgcmVxdep0ZQoJZHUgY2xpZW50IGVzdCBsYSByZXF16nRlIGluaXRpYWxlIHBvdXIgdW5lIGNvbm5leGlvbi4KCUNlY2kgcGVybWV0IGQn6XZpdGVyIGxlIG1lc3NhZ2UgZCdlcnJldXIKCSJwcm94eTogZXJyb3IgcmVhZGluZyBzdGF0dXMgbGluZSBmcm9tIHJlbW90ZSBzZXJ2ZXIiIGNhdXPpIHBhcgoJbGEgc2l0dWF0aW9uIGRlIGNvbXDpdGl0aW9uIGF1IGNvdXJzIGRlIGxhcXVlbGxlIGxlIHNlcnZldXIKCWNpYmxlIGZlcm1lIGxhIGNvbm5leGlvbiBkdSBqZXUgYXBy6HMgbGEgdulyaWZpY2F0aW9uIGRlIGxhCgljb25uZXhpb24gcGFyIGxlIG1hbmRhdGFpcmUsICBldCBhdmFudCBxdWUgbGVzIGRvbm7pZXMgZW52b3npZXMKCXBhciBsZSBtYW5kYXRhaXJlIG4nYXR0ZWlnbmVudCBsZSBzZXJ2ZXVyIGNpYmxlLiBJbCBmYXV0CgljZXBlbmRhbnQgZ2FyZGVyIOAgbCdlc3ByaXQgcXVlIGxhIGTpZmluaXRpb24gZGUgY2V0dGUgdmFyaWFibGUKCWTpZ3JhZGUgbGVzIHBlcmZvcm1hbmNlcywgcGFydGljdWxp6HJlbWVudCBhdmVjIGxlcyBjbGllbnRzCglIVFRQLzEuMC4KICAgICAgICA8L2RkPgogICAgPC9kbD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0ibm90ZXMiIGlkPSJub3RlcyI+SW5mb3JtYXRpb25zIHN1ciBsZXMgcmVxdep0ZXM8L2E+PC9oMj4KICAgIDxwPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfcHJveHlfaHR0cC5odG1sIj5tb2RfcHJveHlfaHR0cDwvYT48L2NvZGU+IGVucmVnaXN0cmUgbGVzIGluZm9ybWF0aW9ucwogICAgc3VpdmFudGVzIHBvdXIgam91cm5hbGlzYXRpb24gdmlhIGxlIGZvcm1hdCA8Y29kZT4le05PTVZBUn1uPC9jb2RlPgogICAgZGFucyBsZXMgZGlyZWN0aXZlcyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2xvZ19jb25maWcuaHRtbCNsb2dmb3JtYXQiPkxvZ0Zvcm1hdDwvYT48L2NvZGU+IG91IDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjZXJyb3Jsb2dmb3JtYXQiPkVycm9yTG9nRm9ybWF0PC9hPjwvY29kZT4gOgogICAgPC9wPgogICAgPGRsPgogICAgICAgIDxkdD5wcm94eS1zb3VyY2UtcG9ydDwvZHQ+CiAgICAgICAgPGRkPkxlIHBvcnQgbG9jYWwgdXRpbGlz6SBwb3VyIGxhIGNvbm5leGlvbiB2ZXJzIGxlIHNlcnZldXIKCWQnYXJyaehyZS1wbGFuLjwvZGQ+CiAgICAgICAgPGR0PnByb3h5LXN0YXR1czwvZHQ+CiAgICAgICAgPGRkPkxlIGNvZGUgZCfpdGF0IEhUVFAgcmXndSBkdSBzZXJ2ZXVyIGQnYXJyaehyZS1wbGFuLjwvZGQ+CiAgICA8L2RsPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9wcm94eV9odHRwLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9mci9tb2QvbW9kX3Byb3h5X2h0dHAuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgYWx0PSJ0b3AiIC8+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj48YSBpZD0iY29tbWVudHNfc2VjdGlvbiIgbmFtZT0iY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudGFpcmVzPC9hPjwvaDI+PGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+PGJyIC8+VGhpcyBpcyBub3QgYSBRJmFtcDtBIHNlY3Rpb24uIENvbW1lbnRzIHBsYWNlZCBoZXJlIHNob3VsZCBiZSBwb2ludGVkIHRvd2FyZHMgc3VnZ2VzdGlvbnMgb24gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9yIHNlcnZlciwgYW5kIG1heSBiZSByZW1vdmVkIGFnYWluIGJ5IG91ciBtb2RlcmF0b3JzIGlmIHRoZXkgYXJlIGVpdGhlciBpbXBsZW1lbnRlZCBvciBjb25zaWRlcmVkIGludmFsaWQvb2ZmLXRvcGljLiBRdWVzdGlvbnMgb24gaG93IHRvIG1hbmFnZSB0aGUgQXBhY2hlIEhUVFAgU2VydmVyIHNob3VsZCBiZSBkaXJlY3RlZCBhdCBlaXRoZXIgb3VyIElSQyBjaGFubmVsLCAjaHR0cGQsIG9uIEZyZWVub2RlLCBvciBzZW50IHRvIG91ciA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9saXN0cy5odG1sIj5tYWlsaW5nIGxpc3RzPC9hPi48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KdmFyIGNvbW1lbnRzX3Nob3J0bmFtZSA9ICdodHRwZCc7CnZhciBjb21tZW50c19pZGVudGlmaWVyID0gJ2h0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvdHJ1bmsvbW9kL21vZF9wcm94eV9odHRwLmh0bWwnOwooZnVuY3Rpb24odywgZCkgewogICAgaWYgKHcubG9jYXRpb24uaG9zdG5hbWUudG9Mb3dlckNhc2UoKSA9PSAiaHR0cGQuYXBhY2hlLm9yZyIpIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPjxcL2Rpdj4nKTsKICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9jb21tZW50cy5hcGFjaGUub3JnL3Nob3dfY29tbWVudHMubHVhP3NpdGU9JyArIGNvbW1lbnRzX3Nob3J0bmFtZSArICcmcGFnZT0nICsgY29tbWVudHNfaWRlbnRpZmllcjsKICAgICAgICAoZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQocyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPkNvbW1lbnRzIGFyZSBkaXNhYmxlZCBmb3IgdGhpcyBwYWdlIGF0IHRoZSBtb21lbnQuPFwvZGl2PicpOwogICAgfQp9KSh3aW5kb3csIGRvY3VtZW50KTsKLy8tLT48IV1dPjwvc2NyaXB0PjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAyMDE3IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi48YnIgLz5BdXRvcmlz6SBzb3VzIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==