PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5tb2RfcmVxdWVzdCAtIFNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjU8L3RpdGxlPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+U2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNTwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZmVhdGhlci5wbmciIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPlNlcnZldXIgSFRUUDwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLi8iPlZlcnNpb24gMi41PC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5Nb2R1bGVzPC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPgo8ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPk1vZHVsZSBBcGFjaGUgbW9kX3JlcXVlc3Q8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfcmVxdWVzdC5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvbW9kL21vZF9yZXF1ZXN0Lmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vdHIvbW9kL21vZF9yZXF1ZXN0Lmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+Cjx0YWJsZSBjbGFzcz0ibW9kdWxlIj48dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5GaWx0cmVzIHBlcm1ldHRhbnQgZGUgdHJhaXRlciBldCBkZSBtZXR0cmUg4CBkaXNwb3NpdGlvbgpsZXMgY29ycHMgZGUgcmVxdep0ZXMgSFRUUDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHV0OjwvYT48L3RoPjx0ZD5CYXNlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjTW9kdWxlSWRlbnRpZmllciI+SWRlbnRpZmljYXRldXKgZGWgTW9kdWxlOjwvYT48L3RoPjx0ZD5yZXF1ZXN0X21vZHVsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1NvdXJjZUZpbGUiPkZpY2hpZXKgU291cmNlOjwvYT48L3RoPjx0ZD5tb2RfcmVxdWVzdC5jPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjQ29tcGF0aWJpbGl0eSI+Q29tcGF0aWJpbGl06To8L2E+PC90aD48dGQ+RGlzcG9uaWJsZSBkZXB1aXMgbGEgdmVyc2lvbiAyLjMgZCdBcGFjaGU8L3RkPjwvdHI+PC90YWJsZT4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGgzIGNsYXNzPSJkaXJlY3RpdmVzIj5EaXJlY3RpdmVzPC9oMz4KPHVsIGlkPSJ0b2MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNrZXB0Ym9keXNpemUiPktlcHRCb2R5U2l6ZTwvYT48L2xpPgo8L3VsPgo8aDM+VHJhaXRlbWVudCBkZXMgYnVnczwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2h0dHBkL0NIQU5HRVNfMi40Ij5Kb3VybmFsIGRlcyBtb2RpZmljYXRpb25zIGRlIGh0dHBkPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYnouYXBhY2hlLm9yZy9idWd6aWxsYS9idWdsaXN0LmNnaT9idWdfc3RhdHVzPV9fb3Blbl9fJmFtcDtsaXN0X2lkPTE0NDUzMiZhbXA7cHJvZHVjdD1BcGFjaGUlMjBodHRwZC0yJmFtcDtxdWVyeV9mb3JtYXQ9c3BlY2lmaWMmYW1wO29yZGVyPWNoYW5nZWRkYXRlJTIwREVTQyUyQ3ByaW9yaXR5JTJDYnVnX3NldmVyaXR5JmFtcDtjb21wb25lbnQ9bW9kX3JlcXVlc3QiPlByb2Js6G1lcyBjb25udXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9iei5hcGFjaGUub3JnL2J1Z3ppbGxhL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD1BcGFjaGUlMjBodHRwZC0yJmFtcDtjb21wb25lbnQ9bW9kX3JlcXVlc3QiPlNpZ25hbGVyIHVuIGJ1ZzwvYT48L2xpPjwvdWw+PGgzPlZvaXIgYXVzc2k8L2gzPgo8dWwgY2xhc3M9InNlZWFsc28iPgo8bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2xpPjwvdWw+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJrZXB0Ym9keXNpemUiIGlkPSJrZXB0Ym9keXNpemUiPkRpcmVjdGl2ZTwvYT4gPGEgbmFtZT0iS2VwdEJvZHlTaXplIiBpZD0iS2VwdEJvZHlTaXplIj5LZXB0Qm9keVNpemU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5Db25zZXJ2ZSBsZSBjb3JwcyBkZSBsYSByZXF16nRlIOAgY29uY3VycmVuY2UgZGUgbGEgdGFpbGxlCm1heGltYWxlIHNw6WNpZmnpZSwgcG91ciB1bmUgdXRpbGlzYXRpb24g6XZlbnR1ZWxsZSBwYXIgZGVzIGZpbHRyZXMKY29tbWUgbW9kX2luY2x1ZGUuPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXhlOjwvYT48L3RoPjx0ZD48Y29kZT5LZXB0Qm9keVNpemUgPHZhcj50YWlsbGUgbWF4aW1hbGUgZW4gb2N0ZXRzPC92YXI+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkTpZmF1dDo8L2E+PC90aD48dGQ+PGNvZGU+S2VwdEJvZHlTaXplIDA8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dGU6PC9hPjwvdGg+PHRkPnLpcGVydG9pcmU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1dDo8L2E+PC90aD48dGQ+QmFzZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfcmVxdWVzdDwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPkRhbnMgdW5lIHNpdHVhdGlvbiBub3JtYWxlLCBsZXMgZ2VzdGlvbm5haXJlcyBkZSByZXF16nRlIHRlbHMgcXVlCiAgICBsZSBnZXN0aW9ubmFpcmUgcGFyIGTpZmF1dCBkZXMgZmljaGllcnMgc3RhdGlxdWVzIHN1cHByaW1lbnQgbGUKICAgIGNvcnBzIGRlIGxhIHJlcXXqdGUgcydpbCBuJ2VzdCBwYXMgbuljZXNzYWlyZSBhdSBnZXN0aW9ubmFpcmUgZGUKICAgIHJlcXXqdGUuIElsIGVuIHLpc3VsdGUgcXVlIGxlcyBmaWx0cmVzIGNvbW1lIG1vZF9pbmNsdWRlIHNvbnQKICAgIGxpbWl06XMg4CBkZXMgcmVxdep0ZXMgPGNvZGU+R0VUPC9jb2RlPiBsb3JzIGRlIGwnaW5jbHVzaW9uIGQnYXV0cmVzCiAgICBVUkxzIGVuIHRhbnQgcXVlIHNvdXMtcmVxdep0ZXMsIGV0IGNlY2kgbeptZSBzaSBsYSByZXF16nRlIG9yaWdpbmFsZQogICAg6XRhaXQgdW5lIHJlcXXqdGUgPGNvZGU+UE9TVDwvY29kZT4sIGNhciBsZSBjb3JwcyBkZSBsYSByZXF16nRlIGEKICAgIOl06SBzdXBwcmlt6SBldCBuJ2VzdCBkb25jIHBsdXMgZGlzcG9uaWJsZSB1bmUgZm9pcyBsZSB0cmFpdGVtZW50IGR1CiAgICBmaWx0cmUgbWlzIGVuIG9ldXZyZS48L3A+CgogICAgPHA+TG9yc3F1ZSBsJ2FyZ3VtZW50IGRlIGNldHRlIGRpcmVjdGl2ZSBhIHVuZSB2YWxldXIgc3Vw6XJpZXVyZSDgCiAgICB66XJvLCBsZXMgZ2VzdGlvbm5haXJlcyBkZSByZXF16nRlIHF1aSBzdXBwcmltZW50IGhhYml0dWVsbGVtZW50IGxlcwogICAgY29ycHMgZGUgcmVxdep0ZSB2b250IGFsb3JzIGNvbnNlcnZlciBjZXMgY29ycHMgZGUgcmVxdep0ZSwg4AogICAgY29uY3VycmVuY2UgZGUgbGEgdGFpbGxlIG1heGltYWxlIHNw6WNpZmnpZSwgcG91ciDqdHJlCiAgICDpdmVudHVlbGxlbWVudCB1dGlsaXPpcyBwYXIgZGVzIGZpbHRyZXMuIERhbnMgbGUgY2FzIGR1IGZpbHRyZQogICAgbW9kX2luY2x1ZGUsIHVuZSB0ZW50YXRpdmUgZGUgcmVxdep0ZSA8Y29kZT5QT1NUPC9jb2RlPiBwb3VyIHVuCiAgICBmaWNoaWVyIHNodG1sIHN0YXRpcXVlIHNlIHRyYWR1aXJhIHBhciBkZXMgc291cy1yZXF16nRlcwogICAgPGNvZGU+UE9TVDwvY29kZT4sIGV0IG5vbiBwYXIgZGVzIHNvdXMtcmVxdep0ZXMgPGNvZGU+R0VUPC9jb2RlPgogICAgY29tbWUgYXZhbnQuPC9wPgoKICAgIDxwPkNldHRlIGZvbmN0aW9ubmFsaXTpIHBlcm1ldCBkZSBk6WNvdXBlciBkZXMgcGFnZXMgd2ViIGNvbXBsZXhlcwogICAgZXQgZGVzIGFwcGxpY2F0aW9ucyB3ZWIgZW4gcGV0aXRzIOls6W1lbnRzIGluZGl2aWR1ZWxzLCBldCBkZQogICAgY29tYmluZXIgY2VzIOls6W1lbnRzIGF2ZWMgbGEgc3RydWN0dXJlIGRlIGxhIHBhZ2Ugd2ViIHNvdXMtamFjZW50ZQogICAgZW4gdXRpbGlzYW50IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfaW5jbHVkZS5odG1sIj5tb2RfaW5jbHVkZTwvYT48L2NvZGU+LiBMZXMg6WzpbWVudHMgcGV1dmVudCBzZQogICAgcHLpc2VudGVyIHNvdXMgbGEgZm9ybWUgZGUgcHJvZ3JhbW1lcyBDR0ksIGRlIGxhbmdhZ2VzIGRlIHNjcmlwdHMsCiAgICBvdSBkJ1VSTHMgaXNzdWVzIGQndW4gbWFuZGF0YWlyZSBpbnZlcnNlIGRhbnMgbCdlc3BhY2UgZCdVUkwgZCd1bgogICAgYXV0cmUgc2VydmV1ciBlbiB1dGlsaXNhbnQgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9wcm94eS5odG1sIj5tb2RfcHJveHk8L2E+PC9jb2RlPi48L3A+CgogICAgPHA+PHN0cm9uZz5Ob3RlIDo8L3N0cm9uZz4gQ2hhcXVlIHJlcXXqdGUgZG9udCBsZSBjb3JwcyBlc3QgYWluc2kKICAgIGNvbnNlcnbpIGRvaXQg6nRyZSBlbnJlZ2lzdHLpZSB0ZW1wb3JhaXJlbWVudCBlbiBt6W1vaXJlIHZpdmUKICAgIGp1c3F1J+AgbGEgZmluIGR1IHRyYWl0ZW1lbnQgZGUgbGEgcmVxdep0ZS4gSWwgZmF1dCBkb25jIHMnYXNzdXJlcgogICAgcXVlIGxhIG3pbW9pcmUgUkFNIGR1IHNlcnZldXIgZXN0IHN1ZmZpc2FudGUgcG91ciBwb3V2b2lyIHN1cHBvcnRlcgogICAgbGEgY2hhcmdlIGluZHVpdGUuIEwndXRpbGlzYXRpb24gZGUgY2V0dGUgZGlyZWN0aXZlIGRvaXQg6nRyZQogICAgbGltaXTpZSDgIGNlcnRhaW5lcyBwb3J0aW9ucyBkZSB2b3RyZSBlc3BhY2UgZCdVUkwgYmllbiBwculjaXNlcyBxdWkKICAgIGxlIG7pY2Vzc2l0ZW50LCBldCBlbiBzcOljaWZpYW50IGNvbW1lIHRhaWxsZSBtYXhpbWFsZSB1bmUgdmFsZXVyIGxhCiAgICBwbHVzIHBldGl0ZSBwb3NzaWJsZSwgbWFpcyB0b3V0IGRlIG3qbWUgc3VmZmlzYW50ZSBwb3VyIHVuIGNvcnBzIGRlCiAgICByZXF16nRlLjwvcD4KCiAgICA8cD5TaSBsYSB0YWlsbGUgZGUgbGEgcmVxdep0ZSBlbnZveellIHBhciBsZSBjbGllbnQgZOlwYXNzZSBsYSB0YWlsbGUKICAgIG1heGltYWxlIGF1dG9yaXPpZSBwYXIgY2V0dGUgZGlyZWN0aXZlLCBsZSBzZXJ2ZXVyIHJlbnZlcnJhIGwnZXJyZXVyCiAgICA8Y29kZT40MTMgUmVxdWVzdCBFbnRpdHkgVG9vIExhcmdlPC9jb2RlPi48L3A+CgoKPGgzPlZvaXIgYXVzc2k8L2gzPgo8dWw+CjxsaT5sYSBkb2N1bWVudGF0aW9uIGRlIDxhIGhyZWY9Im1vZF9pbmNsdWRlLmh0bWwiPm1vZF9pbmNsdWRlPC9hPjwvbGk+CjxsaT5sYSBkb2N1bWVudGF0aW9uIGRlIDxhIGhyZWY9Im1vZF9hdXRoX2Zvcm0uaHRtbCI+bW9kX2F1dGhfZm9ybTwvYT48L2xpPgo8L3VsPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9yZXF1ZXN0Lmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9mci9tb2QvbW9kX3JlcXVlc3QuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi90ci9tb2QvbW9kX3JlcXVlc3QuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIGFsdD0idG9wIiAvPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDI+PGEgaWQ9ImNvbW1lbnRzX3NlY3Rpb24iIG5hbWU9ImNvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2gyPjxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPjxiciAvPlRoaXMgaXMgbm90IGEgUSZhbXA7QSBzZWN0aW9uLiBDb21tZW50cyBwbGFjZWQgaGVyZSBzaG91bGQgYmUgcG9pbnRlZCB0b3dhcmRzIHN1Z2dlc3Rpb25zIG9uIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbiBvciBzZXJ2ZXIsIGFuZCBtYXkgYmUgcmVtb3ZlZCBhZ2FpbiBieSBvdXIgbW9kZXJhdG9ycyBpZiB0aGV5IGFyZSBlaXRoZXIgaW1wbGVtZW50ZWQgb3IgY29uc2lkZXJlZCBpbnZhbGlkL29mZi10b3BpYy4gUXVlc3Rpb25zIG9uIGhvdyB0byBtYW5hZ2UgdGhlIEFwYWNoZSBIVFRQIFNlcnZlciBzaG91bGQgYmUgZGlyZWN0ZWQgYXQgZWl0aGVyIG91ciBJUkMgY2hhbm5lbCwgI2h0dHBkLCBvbiBGcmVlbm9kZSwgb3Igc2VudCB0byBvdXIgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvbGlzdHMuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4uPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCnZhciBjb21tZW50c19zaG9ydG5hbWUgPSAnaHR0cGQnOwp2YXIgY29tbWVudHNfaWRlbnRpZmllciA9ICdodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL3RydW5rL21vZC9tb2RfcmVxdWVzdC5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxNyBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+QXV0b3Jpc+kgc291cyA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=