PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5CaW5kaW5nIHRvIEFkZHJlc3NlcyBhbmQgUG9ydHMgLSBBcGFjaGUgSFRUUCBTZXJ2ZXIgVmVyc2lvbiAyLjU8L3RpdGxlPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4vc3R5bGUvY3NzL3ByZXR0aWZ5LmNzcyIgLz4KPHNjcmlwdCBzcmM9Ii4vc3R5bGUvc2NyaXB0cy9wcmV0dGlmeS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwvc2NyaXB0PgoKPGxpbmsgaHJlZj0iLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5IGlkPSJtYW51YWwtcGFnZSI+PGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+QXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi41PC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPkhUVFAgU2VydmVyPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5WZXJzaW9uIDIuNTwvYT48L2Rpdj48ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPjxkaXYgaWQ9InByZWFtYmxlIj48aDE+QmluZGluZyB0byBBZGRyZXNzZXMgYW5kIFBvcnRzPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuL2RlL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImRlIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkRldXRzY2giPiZuYnNwO2RlJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZW4vYmluZC5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9iaW5kLmh0bWwiIGhyZWZsYW5nPSJlcyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFc3Bh8W9sIj4mbmJzcDtlcyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9iaW5kLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+CgogICAgPHA+Q29uZmlndXJpbmcgQXBhY2hlIEhUVFAgU2VydmVyIHRvIGxpc3RlbiBvbiBzcGVjaWZpYyBhZGRyZXNzZXMgYW5kIHBvcnRzLjwvcD4KICA8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNvdmVydmlldyI+T3ZlcnZpZXc8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNyZWxvYWQiPkNoYW5naW5nIExpc3RlbiBjb25maWd1cmF0aW9uIG9uIHJlc3RhcnQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNpcHY2Ij5TcGVjaWFsIElQdjYgQ29uc2lkZXJhdGlvbnM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNwcm90b2NvbCI+U3BlY2lmeWluZyB0aGUgcHJvdG9jb2wgd2l0aCBMaXN0ZW48L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN2aXJ0dWFsaG9zdCI+SG93IFRoaXMgV29ya3MgV2l0aCBWaXJ0dWFsIEhvc3RzPC9hPjwvbGk+CjwvdWw+PGgzPlNlZSBhbHNvPC9oMz48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSJ2aG9zdHMvIj5WaXJ0dWFsIEhvc3RzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRucy1jYXZlYXRzLmh0bWwiPkROUyBJc3N1ZXM8L2E+PC9saT48bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJvdmVydmlldyIgaWQ9Im92ZXJ2aWV3Ij5PdmVydmlldzwvYT4gPGEgdGl0bGU9IlBlcm1hbmVudCBsaW5rIiBocmVmPSIjb3ZlcnZpZXciIGNsYXNzPSJwZXJtYWxpbmsiPiZwYXJhOzwvYT48L2gyPgogICAgCgogICAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPlJlbGF0ZWQgTW9kdWxlczwvdGg+PHRoPlJlbGF0ZWQgRGlyZWN0aXZlczwvdGg+PC90cj48dHI+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sIj5jb3JlPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwiPm1wbV9jb21tb248L2E+PC9jb2RlPjwvbGk+PC91bD48L3RkPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI2xpc3RlbiI+TGlzdGVuPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CgoKICAgIDxwPldoZW4gaHR0cGQgc3RhcnRzLCBpdCBiaW5kcyB0byBzb21lIHBvcnQgYW5kIGFkZHJlc3Mgb24KICAgIHRoZSBsb2NhbCBtYWNoaW5lIGFuZCB3YWl0cyBmb3IgaW5jb21pbmcgcmVxdWVzdHMuIEJ5IGRlZmF1bHQsCiAgICBpdCBsaXN0ZW5zIHRvIGFsbCBhZGRyZXNzZXMgb24gdGhlIG1hY2hpbmUuIEhvd2V2ZXIsIGl0IG1heSBuZWVkIHRvCiAgICBiZSB0b2xkIHRvIGxpc3RlbiBvbiBzcGVjaWZpYyBwb3J0cywgb3Igb25seSBvbiBzZWxlY3RlZAogICAgYWRkcmVzc2VzLCBvciBhIGNvbWJpbmF0aW9uIG9mIGJvdGguIFRoaXMgaXMgb2Z0ZW4gY29tYmluZWQgd2l0aCB0aGUKICAgIDxhIGhyZWY9InZob3N0cy8iPlZpcnR1YWwgSG9zdDwvYT4gZmVhdHVyZSwgd2hpY2ggZGV0ZXJtaW5lcyBob3cKICAgIDxjb2RlPmh0dHBkPC9jb2RlPiByZXNwb25kcyB0byBkaWZmZXJlbnQgSVAgYWRkcmVzc2VzLCBob3N0bmFtZXMgYW5kCiAgICBwb3J0cy48L3A+CgogICAgPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+CiAgICBkaXJlY3RpdmUgdGVsbHMgdGhlIHNlcnZlciB0byBhY2NlcHQKICAgIGluY29taW5nIHJlcXVlc3RzIG9ubHkgb24gdGhlIHNwZWNpZmllZCBwb3J0KHMpIG9yCiAgICBhZGRyZXNzLWFuZC1wb3J0IGNvbWJpbmF0aW9ucy4gSWYgb25seSBhIHBvcnQgbnVtYmVyIGlzCiAgICBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+CiAgICBkaXJlY3RpdmUsIHRoZSBzZXJ2ZXIgbGlzdGVucyB0byB0aGUgZ2l2ZW4gcG9ydCBvbiBhbGwgaW50ZXJmYWNlcy4KICAgIElmIGFuIElQIGFkZHJlc3MgaXMgZ2l2ZW4gYXMgd2VsbCBhcyBhIHBvcnQsIHRoZSBzZXJ2ZXIgd2lsbCBsaXN0ZW4KICAgIG9uIHRoZSBnaXZlbiBwb3J0IGFuZCBpbnRlcmZhY2UuIE11bHRpcGxlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+IGRpcmVjdGl2ZXMgbWF5IGJlIHVzZWQgdG8KICAgIHNwZWNpZnkgYSBudW1iZXIgb2YgYWRkcmVzc2VzIGFuZCBwb3J0cyB0byBsaXN0ZW4gb24uIFRoZQogICAgc2VydmVyIHdpbGwgcmVzcG9uZCB0byByZXF1ZXN0cyBmcm9tIGFueSBvZiB0aGUgbGlzdGVkCiAgICBhZGRyZXNzZXMgYW5kIHBvcnRzLjwvcD4KCiAgICA8cD5Gb3IgZXhhbXBsZSwgdG8gbWFrZSB0aGUgc2VydmVyIGFjY2VwdCBjb25uZWN0aW9ucyBvbiBib3RoCiAgICBwb3J0IDgwIGFuZCBwb3J0IDgwMDAsIG9uIGFsbCBpbnRlcmZhY2VzLCB1c2U6PC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5MaXN0ZW4gODAKTGlzdGVuIDgwMDA8L3ByZT4KPC9kaXY+CgogICAgPHA+VG8gbWFrZSB0aGUgc2VydmVyIGFjY2VwdCBjb25uZWN0aW9ucyBvbiBwb3J0IDgwIGZvciBvbmUgaW50ZXJmYWNlLAogICAgICAgYW5kIHBvcnQgODAwMCBvbiBhbm90aGVyLCB1c2U8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkxpc3RlbiAxOTIuMC4yLjE6ODAKTGlzdGVuIDE5Mi4wLjIuNTo4MDAwPC9wcmU+CjwvZGl2PgoKICAgIDxwPklQdjYgYWRkcmVzc2VzIG11c3QgYmUgZW5jbG9zZWQgaW4gc3F1YXJlIGJyYWNrZXRzLCBhcyBpbiB0aGUKICAgIGZvbGxvd2luZyBleGFtcGxlOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TGlzdGVuIFsyMDAxOmRiODo6YTAwOjIwZmY6ZmVhNzpjY2VhXTo4MDwvcHJlPgo8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48cD5PdmVybGFwcGluZyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPiBkaXJlY3RpdmVzIHdpbGwgcmVzdWx0IGluIGEKICAgIGZhdGFsIGVycm9yIHdoaWNoIHdpbGwgcHJldmVudCB0aGUgc2VydmVyIGZyb20gc3RhcnRpbmcgdXAuPC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgogICAgICAoNDgpQWRkcmVzcyBhbHJlYWR5IGluIHVzZTogbWFrZV9zb2NrOiBjb3VsZCBub3QgYmluZCB0byBhZGRyZXNzIFs6Ol06ODAKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+U2VlIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvQ291bGROb3RCaW5kVG9BZGRyZXNzIj50aGUKICAgIGRpc2N1c3Npb24gaW4gdGhlIHdpa2k8L2E+IGZvciBmdXJ0aGVyIHRyb3VibGVzaG9vdGluZyB0aXBzLjwvcD4KCjwvZGl2PgoKICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InJlbG9hZCIgaWQ9InJlbG9hZCI+Q2hhbmdpbmcgTGlzdGVuIGNvbmZpZ3VyYXRpb24gb24gcmVzdGFydDwvYT4gPGEgdGl0bGU9IlBlcm1hbmVudCBsaW5rIiBocmVmPSIjcmVsb2FkIiBjbGFzcz0icGVybWFsaW5rIj4mcGFyYTs8L2E+PC9oMj4KICAgIAoKICAgIDxwPldoZW4gaHR0cGQgaXMgcmVzdGFydGVkLCBzcGVjaWFsIGNvbnNpZGVyYXRpb24gbXVzdCBiZSBtYWRlIGZvcgogICAgY2hhbmdlcyB0byA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPiBkaXJlY3RpdmVzLiAgRHVyaW5nIGEgcmVzdGFydCwgaHR0cGQga2VlcHMgcG9ydHMKICAgIGJvdW5kIChhcyBpbiB0aGUgb3JpZ2luYWwgY29uZmlndXJhdGlvbikgdG8gYXZvaWQgZ2VuZXJhdGluZwogICAgIkNvbm5lY3Rpb24gcmVmdXNlZCIgZXJyb3JzIGZvciBhbnkgbmV3IGF0dGVtcHRzIHRvIGNvbm5lY3QgdG8gdGhlCiAgICBzZXJ2ZXIuIElmIGNoYW5nZXMgYXJlIG1hZGUgdG8gdGhlIHNldCBvZiA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPiBkaXJlY3RpdmVzIHVzZWQKICAgIHdoaWNoIGNvbmZsaWN0IHdpdGggdGhlIG9sZCBjb25maWd1cmF0aW9uLCBjb25maWd1cmF0aW9uIHdpbGwgZmFpbAogICAgYW5kIHRoZSBzZXJ2ZXIgd2lsbCB0ZXJtaW5hdGUuPC9wPgoKICAgIDxwPkZvciBleGFtcGxlLCBjaGFuZ2luZyBmcm9tIGNvbmZpZ3VyYXRpb246PC9wPgogICAgCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TGlzdGVuIDEyNy4wLjAuMTo4MDwvcHJlPgo8L2Rpdj4KCiAgICA8cD50byB0aGUgZm9sbG93aW5nIG1heSBmYWlsLCBiZWNhdXNlIGJpbmRpbmcgdG8gcG9ydCA4MCBhY3Jvc3MKICAgIGFsbCBhZGRyZXNzZXMgY29uZmxpY3RzIHdpdGggYmluZGluZyB0byBwb3J0IDgwIG9uIGp1c3QKICAgIDEyNy4wLjAuMS48L3A+CiAgICAKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5MaXN0ZW4gODA8L3ByZT4KPC9kaXY+CgogICAgPHA+VG8gaGF2ZSBzdWNoIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyB0YWtlIGVmZmVjdCwgaXQgaXMgbmVjZXNzYXJ5CiAgICB0byBzdG9wIGFuZCB0aGVuIHN0YXJ0IHRoZSBzZXJ2ZXIuPC9wPgogICAgCiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJpcHY2IiBpZD0iaXB2NiI+U3BlY2lhbCBJUHY2IENvbnNpZGVyYXRpb25zPC9hPiA8YSB0aXRsZT0iUGVybWFuZW50IGxpbmsiIGhyZWY9IiNpcHY2IiBjbGFzcz0icGVybWFsaW5rIj4mcGFyYTs8L2E+PC9oMj4KICAgIAoKICAgIDxwPkEgZ3Jvd2luZyBudW1iZXIgb2YgcGxhdGZvcm1zIGltcGxlbWVudCBJUHY2LCBhbmQKICAgIDxhIGNsYXNzPSJnbG9zc2FyeWxpbmsiIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCNhcHIiIHRpdGxlPSJzZWUgZ2xvc3NhcnkiPkFQUjwvYT4gc3VwcG9ydHMgSVB2NiBvbiBtb3N0IG9mIHRoZXNlIHBsYXRmb3JtcywKICAgIGFsbG93aW5nIGh0dHBkIHRvIGFsbG9jYXRlIElQdjYgc29ja2V0cywgYW5kIHRvIGhhbmRsZSByZXF1ZXN0cyBzZW50CiAgICBvdmVyIElQdjYuPC9wPgoKICAgIDxwPk9uZSBjb21wbGljYXRpbmcgZmFjdG9yIGZvciBodHRwZCBhZG1pbmlzdHJhdG9ycyBpcyB3aGV0aGVyIG9yCiAgICBub3QgYW4gSVB2NiBzb2NrZXQgY2FuIGhhbmRsZSBib3RoIElQdjQgY29ubmVjdGlvbnMgYW5kIElQdjYKICAgIGNvbm5lY3Rpb25zLiBIYW5kbGluZyBJUHY0IGNvbm5lY3Rpb25zIHdpdGggYW4gSVB2NiBzb2NrZXQgdXNlcwogICAgSVB2NC1tYXBwZWQgSVB2NiBhZGRyZXNzZXMsIHdoaWNoIGFyZSBhbGxvd2VkIGJ5IGRlZmF1bHQgb24gbW9zdAogICAgcGxhdGZvcm1zLCBidXQgYXJlIGRpc2FsbG93ZWQgYnkgZGVmYXVsdCBvbiBGcmVlQlNELCBOZXRCU0QsIGFuZAogICAgT3BlbkJTRCwgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIHN5c3RlbS13aWRlIHBvbGljeSBvbiB0aG9zZQogICAgcGxhdGZvcm1zLiBPbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGRpc2FsbG93ZWQgYnkgZGVmYXVsdCwgYQogICAgc3BlY2lhbCA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9jb25maWd1cmUuaHRtbCI+Y29uZmlndXJlPC9hPjwvY29kZT4gcGFyYW1ldGVyIGNhbiBjaGFuZ2UgdGhpcyBiZWhhdmlvcgogICAgZm9yIGh0dHBkLjwvcD4KCiAgICA8cD5PbiB0aGUgb3RoZXIgaGFuZCwgb24gc29tZSBwbGF0Zm9ybXMsIHN1Y2ggYXMgTGludXggYW5kIFRydTY0LCB0aGUKICAgIDxzdHJvbmc+b25seTwvc3Ryb25nPiB3YXkgdG8gaGFuZGxlIGJvdGggSVB2NiBhbmQgSVB2NCBpcyB0byB1c2UKICAgIG1hcHBlZCBhZGRyZXNzZXMuIElmIHlvdSB3YW50IDxjb2RlPmh0dHBkPC9jb2RlPiB0byBoYW5kbGUgSVB2NCBhbmQgSVB2NiBjb25uZWN0aW9ucwogICAgd2l0aCBhIG1pbmltdW0gb2Ygc29ja2V0cywgd2hpY2ggcmVxdWlyZXMgdXNpbmcgSVB2NC1tYXBwZWQgSVB2NgogICAgYWRkcmVzc2VzLCBzcGVjaWZ5IHRoZSA8Y29kZT4tLWVuYWJsZS12NC1tYXBwZWQ8L2NvZGU+IDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiBvcHRpb24uPC9wPgoKICAgIDxwPjxjb2RlPi0tZW5hYmxlLXY0LW1hcHBlZDwvY29kZT4gaXMgdGhlIGRlZmF1bHQgb24gYWxsIHBsYXRmb3JtcyBleGNlcHQKICAgIEZyZWVCU0QsIE5ldEJTRCwgYW5kIE9wZW5CU0QsIHNvIHRoaXMgaXMgcHJvYmFibHkgaG93IHlvdXIgaHR0cGQgd2FzCiAgICBidWlsdC48L3A+CgogICAgPHA+SWYgeW91IHdhbnQgaHR0cGQgdG8gaGFuZGxlIElQdjQgY29ubmVjdGlvbnMgb25seSwgcmVnYXJkbGVzcyBvZgogICAgd2hhdCB5b3VyIHBsYXRmb3JtIGFuZCBBUFIgd2lsbCBzdXBwb3J0LCBzcGVjaWZ5IGFuIElQdjQgYWRkcmVzcyBvbiBhbGwKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+IGRpcmVjdGl2ZXMsIGFzIGluIHRoZQogICAgZm9sbG93aW5nIGV4YW1wbGVzOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TGlzdGVuIDAuMC4wLjA6ODAKTGlzdGVuIDE5Mi4wLjIuMTo4MDwvcHJlPgo8L2Rpdj4KCiAgICA8cD5JZiB5b3VyIHBsYXRmb3JtIHN1cHBvcnRzIGl0IGFuZCB5b3Ugd2FudCBodHRwZCB0byBoYW5kbGUgSVB2NCBhbmQKICAgIElQdjYgY29ubmVjdGlvbnMgb24gc2VwYXJhdGUgc29ja2V0cyAoaS5lLiwgdG8gZGlzYWJsZSBJUHY0LW1hcHBlZAogICAgYWRkcmVzc2VzKSwgc3BlY2lmeSB0aGUgPGNvZGU+LS1kaXNhYmxlLXY0LW1hcHBlZDwvY29kZT4gPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvY29uZmlndXJlLmh0bWwiPmNvbmZpZ3VyZTwvYT48L2NvZGU+IG9wdGlvbi4gPGNvZGU+LS1kaXNhYmxlLXY0LW1hcHBlZDwvY29kZT4gaXMgdGhlCiAgICBkZWZhdWx0IG9uIEZyZWVCU0QsIE5ldEJTRCwgYW5kIE9wZW5CU0QuPC9wPgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0icHJvdG9jb2wiIGlkPSJwcm90b2NvbCI+U3BlY2lmeWluZyB0aGUgcHJvdG9jb2wgd2l0aCBMaXN0ZW48L2E+IDxhIHRpdGxlPSJQZXJtYW5lbnQgbGluayIgaHJlZj0iI3Byb3RvY29sIiBjbGFzcz0icGVybWFsaW5rIj4mcGFyYTs8L2E+PC9oMj4KICAgIAogICAgPHA+VGhlIG9wdGlvbmFsIHNlY29uZCA8dmFyPnByb3RvY29sPC92YXI+IGFyZ3VtZW50IG9mCiAgICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPgogICAgICAgaXMgbm90IHJlcXVpcmVkIGZvciBtb3N0CiAgICAgICBjb25maWd1cmF0aW9ucy4gSWYgbm90IHNwZWNpZmllZCwgPGNvZGU+aHR0cHM8L2NvZGU+IGlzIHRoZSBkZWZhdWx0IGZvcgogICAgICAgcG9ydCA0NDMgYW5kIDxjb2RlPmh0dHA8L2NvZGU+IHRoZSBkZWZhdWx0IGZvciBhbGwgb3RoZXIgcG9ydHMuICBUaGUKICAgICAgIHByb3RvY29sIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSBzaG91bGQgaGFuZGxlIGEgcmVxdWVzdCwgYW5kCiAgICAgICB0byBhcHBseSBwcm90b2NvbCBzcGVjaWZpYyBvcHRpbWl6YXRpb25zIHdpdGggdGhlCiAgICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjYWNjZXB0ZmlsdGVyIj5BY2NlcHRGaWx0ZXI8L2E+PC9jb2RlPiBkaXJlY3RpdmUuPC9wPgoKICAgIDxwPllvdSBvbmx5IG5lZWQgdG8gc2V0IHRoZSBwcm90b2NvbCBpZiB5b3UgYXJlIHJ1bm5pbmcgb24gbm9uLXN0YW5kYXJkCiAgICAgICBwb3J0cy4gIEZvciBleGFtcGxlLCBydW5uaW5nIGFuIDxjb2RlPmh0dHBzPC9jb2RlPiBzaXRlIG9uIHBvcnQgODQ0Mzo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkxpc3RlbiAxOTIuMTcwLjIuMTo4NDQzIGh0dHBzPC9wcmU+CjwvZGl2PgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0idmlydHVhbGhvc3QiIGlkPSJ2aXJ0dWFsaG9zdCI+SG93IFRoaXMgV29ya3MgV2l0aCBWaXJ0dWFsIEhvc3RzPC9hPiA8YSB0aXRsZT0iUGVybWFuZW50IGxpbmsiIGhyZWY9IiN2aXJ0dWFsaG9zdCIgY2xhc3M9InBlcm1hbGluayI+JnBhcmE7PC9hPjwvaDI+CiAgICAKCiAgICA8cD4gVGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+IGRpcmVjdGl2ZSBkb2VzIG5vdCBpbXBsZW1lbnQKICAgIFZpcnR1YWwgSG9zdHMgLSBpdCBvbmx5IHRlbGxzIHRoZQogICAgbWFpbiBzZXJ2ZXIgd2hhdCBhZGRyZXNzZXMgYW5kIHBvcnRzIHRvIGxpc3RlbiBvbi4gSWYgbm8KICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+CiAgICBkaXJlY3RpdmVzIGFyZSB1c2VkLCB0aGUgc2VydmVyIHdpbGwgYmVoYXZlCiAgICBpbiB0aGUgc2FtZSB3YXkgZm9yIGFsbCBhY2NlcHRlZCByZXF1ZXN0cy4gSG93ZXZlciwKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+CiAgICBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgZGlmZmVyZW50IGJlaGF2aW9yCiAgICBmb3Igb25lIG9yIG1vcmUgb2YgdGhlIGFkZHJlc3NlcyBvciBwb3J0cy4gVG8gaW1wbGVtZW50IGEKICAgIFZpcnR1YWxIb3N0LCB0aGUgc2VydmVyIG11c3QgZmlyc3QgYmUgdG9sZCB0byBsaXN0ZW4gdG8gdGhlCiAgICBhZGRyZXNzIGFuZCBwb3J0IHRvIGJlIHVzZWQuIFRoZW4gYQogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3ZpcnR1YWxob3N0Ij4mbHQ7VmlydHVhbEhvc3QmZ3Q7PC9hPjwvY29kZT4gc2VjdGlvbgogICAgc2hvdWxkIGJlIGNyZWF0ZWQgZm9yIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBhbmQgcG9ydCB0byBzZXQgdGhlCiAgICBiZWhhdmlvciBvZiB0aGlzIHZpcnR1YWwgaG9zdC4gTm90ZSB0aGF0IGlmIHRoZQogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3ZpcnR1YWxob3N0Ij4mbHQ7VmlydHVhbEhvc3QmZ3Q7PC9hPjwvY29kZT4KICAgIGlzIHNldCBmb3IgYW4gYWRkcmVzcyBhbmQgcG9ydCB0aGF0IHRoZQogICAgc2VydmVyIGlzIG5vdCBsaXN0ZW5pbmcgdG8sIGl0IGNhbm5vdCBiZSBhY2Nlc3NlZC48L3A+CiAgPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi9kZS9iaW5kLmh0bWwiIGhyZWZsYW5nPSJkZSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJEZXV0c2NoIj4mbmJzcDtkZSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VuL2JpbmQuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZXMvYmluZC5odG1sIiBocmVmbGFuZz0iZXMiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRXNwYfFvbCI+Jm5ic3A7ZXMmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9mci9iaW5kLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9iaW5kLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9iaW5kLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vdHIvYmluZC5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50czwvYT48L2gyPjxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPjxiciAvPlRoaXMgaXMgbm90IGEgUSZhbXA7QSBzZWN0aW9uLiBDb21tZW50cyBwbGFjZWQgaGVyZSBzaG91bGQgYmUgcG9pbnRlZCB0b3dhcmRzIHN1Z2dlc3Rpb25zIG9uIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbiBvciBzZXJ2ZXIsIGFuZCBtYXkgYmUgcmVtb3ZlZCBhZ2FpbiBieSBvdXIgbW9kZXJhdG9ycyBpZiB0aGV5IGFyZSBlaXRoZXIgaW1wbGVtZW50ZWQgb3IgY29uc2lkZXJlZCBpbnZhbGlkL29mZi10b3BpYy4gUXVlc3Rpb25zIG9uIGhvdyB0byBtYW5hZ2UgdGhlIEFwYWNoZSBIVFRQIFNlcnZlciBzaG91bGQgYmUgZGlyZWN0ZWQgYXQgZWl0aGVyIG91ciBJUkMgY2hhbm5lbCwgI2h0dHBkLCBvbiBGcmVlbm9kZSwgb3Igc2VudCB0byBvdXIgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvbGlzdHMuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4uPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCnZhciBjb21tZW50c19zaG9ydG5hbWUgPSAnaHR0cGQnOwp2YXIgY29tbWVudHNfaWRlbnRpZmllciA9ICdodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL3RydW5rL2JpbmQuaHRtbCc7CihmdW5jdGlvbih3LCBkKSB7CiAgICBpZiAody5sb2NhdGlvbi5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpID09ICJodHRwZC5hcGFjaGUub3JnIikgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+PFwvZGl2PicpOwogICAgICAgIHZhciBzID0gZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBzLmFzeW5jID0gdHJ1ZTsKICAgICAgICBzLnNyYyA9ICdodHRwczovL2NvbW1lbnRzLmFwYWNoZS5vcmcvc2hvd19jb21tZW50cy5sdWE/c2l0ZT0nICsgY29tbWVudHNfc2hvcnRuYW1lICsgJyZwYWdlPScgKyBjb21tZW50c19pZGVudGlmaWVyOwogICAgICAgIChkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0gfHwgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdKS5hcHBlbmRDaGlsZChzKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTkgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkxpY2Vuc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==