PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJkZSIgeG1sOmxhbmc9ImRlIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5BbiBBZHJlc3NlbiB1bmQgUG9ydHMgYmluZGVuIC0gQXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi41PC90aXRsZT4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuL3N0eWxlL3NjcmlwdHMvcHJldHRpZnkubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KCjxsaW5rIGhyZWY9Ii4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiPjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVrdGl2ZW48L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXI8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlNlaXRlbmluZGV4PC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+QXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi41PC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPkhUVFAtU2VydmVyPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2t1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5WZXJzaW9uIDIuNTwvYT48L2Rpdj48ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPjxkaXYgaWQ9InByZWFtYmxlIj48aDE+QW4gQWRyZXNzZW4gdW5kIFBvcnRzIGJpbmRlbjwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5WZXJm/GdiYXJlIFNwcmFjaGVuOiA8L3NwYW4+PGEgaHJlZj0iLi9kZS9iaW5kLmh0bWwiIHRpdGxlPSJEZXV0c2NoIj4mbmJzcDtkZSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VuL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZXMvYmluZC5odG1sIiBocmVmbGFuZz0iZXMiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRXNwYfFvbCI+Jm5ic3A7ZXMmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9mci9iaW5kLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9iaW5kLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9iaW5kLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vdHIvYmluZC5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdXRvZmRhdGUiPkRpZXNlINxiZXJzZXR6dW5nIGlzdCBt9mdsaWNoZXJ3ZWlzZQogICAgICAgICAgICBuaWNodCBtZWhyIGFrdHVlbGwuIEJpdHRlIHBy/GZlbiBTaWUgZGllIGVuZ2xpc2NoZSBWZXJzaW9uIGF1ZgogICAgICAgICAgICBkaWUgbmV1ZXN0ZW4gxG5kZXJ1bmdlbi48L2Rpdj4KCiAgICA8cD5Lb25maWd1cmF0aW9uIGRlciB2b20gQXBhY2hlIEhUVFAgU2VydmVyIHZlcndlbmRldGVuIEFkcmVzc2VuIHVuZAogICAgUG9ydHMuPC9wPgogIDwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjx1bCBpZD0idG9jIj48bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI292ZXJ2aWV3Ij7cYmVyYmxpY2s8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNpcHY2Ij5CZXRyYWNodHVuZyB2b24gSVB2Ni1CZXNvbmRlcmhlaXRlbjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3Byb3RvY29sIj5BbmdhYmUgZGVzIFByb3Rva29sbHMgYmVpIExpc3RlbjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3ZpcnR1YWxob3N0Ij5EYXMgWnVzYW1tZW5zcGllbCBtaXQgdmlydHVlbGxlbiBIb3N0czwvYT48L2xpPgo8L3VsPjxoMz5TaWVoZSBhdWNoPC9oMz48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSJ2aG9zdHMvIj5WaXJ0dWVsbGUgSG9zdHM8L2E+PC9saT48bGk+PGEgaHJlZj0iZG5zLWNhdmVhdHMuaHRtbCI+UHJvYmxlbWUgYmV6/GdsaWNoIEROUyB1bmQKICAgIEFwYWNoZTwvYT48L2xpPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+S29tbWVudGFyZTwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0ib3ZlcnZpZXciIGlkPSJvdmVydmlldyI+3GJlcmJsaWNrPC9hPjwvaDI+CiAgICAKCiAgICA8dGFibGUgY2xhc3M9InJlbGF0ZWQiPjx0cj48dGg+UmVmZXJlbnppZXJ0ZSBNb2R1bGU8L3RoPjx0aD5SZWZlcmVuemllcnRlIERpcmVrdGl2ZW48L3RoPjwvdHI+PHRyPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCI+Y29yZTwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sIj5tcG1fY29tbW9uPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPgoKICAgIDxwPkJlaW0gU3RhcnQgYmluZGV0IHNpY2ggZGVyIGh0dHBkIGFuIGJlc3RpbW10ZSBBZHJlc3NlbiB1bmQgUG9ydHMKICAgIGRlciBsb2thbGVuIE1hc2NoaW5lIHVuZCB3YXJ0ZXQgYXVmIGVpbmdlaGVuZGUgQW5mcmFnZW4uCiAgICBTdGFuZGFyZG3k32lnIGxhdXNjaHQgZXIgYW4gYWxsZW4gQWRyZXNzZW4gZGVzIFN5c3RlbXMuCiAgICBFcyBrYW5uIGplb2RjaCBub3R3ZW5kaWcgc2VpbiwgaWhtIG1pdCB6dXRlaWxlbiwgbnVyIGFuIGJlc3RpbW10ZW4KICAgIFBvcnRzIHp1IGxhdXNjaGVuIG9kZXIgbnVyIGFuIGF1c2dld+RobHRlbiBBZHJlc3NlbiwgYnp3LiBlaW5lcgogICAgS29tYmluYXRpb24gYXVzIGJlaWRlbS4gRGllcyB3aXJkIG9mdCBtaXQgZGVyIEZ1bmt0aW9uYWxpdOR0IDxhIGhyZWY9InZob3N0cy8iPnZpcnR1ZWxsZXIgSG9zdHM8L2E+IGtvbWJpbmllcnQsIGRpZSBiZXN0aW1tdCwgd2llCiAgICBkZXIgPGNvZGU+aHR0cGQ8L2NvZGU+IGF1ZiB2ZXJzY2hpZWRlbmUgSVAtQWRyZXNzZW4sIEhvc3RuYW1lbiB1bmQKICAgIFBvcnRzIHJlYWdpZXJ0LjwvcD4KCiAgICA8cD5EaWUgRGlyZWt0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+CiAgICB3ZWlzdCBkZW4gU2VydmVyIGFuLCBlaW5nZWhlbmRlIEFuZnJhZ2VuIG51ciBhbiBiZXN0aW1tdGVuIFBvcnQocykKICAgIG9kZXIgQWRyZXNzL1BvcnQtS29tYmluYXRpb25lbiB6dSBha3plcHRpZXJlbi4gV2VubiBiZWkgZGVyCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPi1EaXJla3RpdmUgbnVyIGVpbmUKICAgIFBvcnRudW1tZXIgYW5nZWdlYmVuIHdpcmQsIGRhbm4gbGF1c2NodCBkZXIgU2VydmVyIGF1ZiBhbGxlbgogICAgTmV0endlcmtpbnRlcmZhY2VzIGFuIGRlbSBhbmdlZ2ViZW5lbiBQb3J0LiBJc3QgYXVjaCBlaW5lIElQLUFkcmVzc2UKICAgIGFuZ2VnZWJlbiwgZGFubiBsYXVzY2h0IGRlciBTZXJ2ZXIgYW4gZGVyIGFuZ2VnZWJlbmVuIFNjaG5pdHRzdGVsbGUKICAgIGF1ZiBkZW0gYW5nZWdlYmVuZW4gUG9ydC4gIEVzIGv2bm5lbiBtZWhyZXJlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+LUFud2Vpc3VuZ2VuIHZlcndlbmRldCB3ZXJkZW4sCiAgICB1bSBlaW5lIFJlaWhlIHZvbiBBZHJlc3NlbiB1bmQgUG9ydHMgYW56dWdlYmVuLCBhbiBkZW5lbiBnZWxhdXNjaHQKICAgIHdlcmRlbiBzb2xsLiBEZXIgU2VydmVyIHdpcmQgZGFubiBhdWYgQW5mcmFnZW4gYW4gamVkZXIgZGVyCiAgICBhYmdlaPZydGVuIEFkcmVzc2VuIHVuZCBQb3J0cyBhbnR3b3J0ZW4uPC9wPgoKICAgIDxwPlVtIGJlaXNwaWVsc3dlaXNlIGRlbiBTZXJ2ZXIgenUgdmVyYW5sYXNzZW4sIGF1ZiBhbGxlbgogICAgTmV0endlcmtpbnRlcmZhY2VzIHNvd29obCBhbiBQb3J0IDgwLCBhbHMgYXVjaCBhbiBQb3J0IDgwMDAKICAgIFZlcmJpbmR1bmdlbiB6dSBha3plcHRpZXJlbiwgZ2ViZW4gU2llIGFuOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TGlzdGVuIDgwCkxpc3RlbiA4MDAwPC9wcmU+CjwvZGl2PgoKICAgIDxwPlVtIGRlbiBTZXJ2ZXIgVmVyYmluZHVuZ2VuIGFuIFBvcnQgODAgYXVmIGVpbmVtIE5ldHp3ZXJraW50ZXJmYWNlCiAgICBha3plcHRpZXJlbiB6dSBsYXNzZW4gdW5kIGFuIFBvcnQgODA4MCBhdWYgZWluZW0gYW5kZXJlbiBJbnRlcmZhY2UsIGdlYmVuCiAgICBTaWUgYW46PC9wPgogICAgICAKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5MaXN0ZW4gMTkyLjAuMi4xOjgwCkxpc3RlbiAxOTIuMC4yLjU6ODAwMDwvcHJlPgo8L2Rpdj4KCiAgICA8cD5JUHY2LUFkcmVzc2VuIG38c3NlbiB3aWUgaW0gZm9sZ2VuZGVuIEJlaXNwaWVsIGluIGVja2lnZW4KICAgICAgS2xhbW1lcm4gYW5nZWdlYmVuIHdlcmRlbjo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkxpc3RlbiBbMjAwMTpkYjg6OmEwMDoyMGZmOmZlYTc6Y2NlYV06ODA8L3ByZT4KPC9kaXY+CgogICAgPGRpdiBjbGFzcz0id2FybmluZyI+PHA+U2ljaCD8YmVybGFwcGVuZGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI2xpc3RlbiI+TGlzdGVuPC9hPjwvY29kZT4tRGlyZWt0aXZlbiBnZW5lcmllcmVuIGVpbmVuCiAgICBmYXRhbGVuIEZlaGxlciwgZGVyIHZlcmhpbmRlcnQsIGRhc3MgZGVyIFNlcnZlciBob2NoZuRocnQuPC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgogICAgICAoNDgpQWRkcmVzcyBhbHJlYWR5IGluIHVzZTogbWFrZV9zb2NrOiBjb3VsZCBub3QgYmluZCB0byBhZGRyZXNzIFs6Ol06ODAKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+PGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9Db3VsZE5vdEJpbmRUb0FkZHJlc3MiPkRpZXNlCiAgICBEaXNrdXNzaW9uIGltIFdpa2k8L2E+IGdpYnQgd2VpdGVyZSBUaXBwcyB6dXIgRmVobGVyYmVoZWJ1bmcuPC9wPgogICAgPC9kaXY+CiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJpcHY2IiBpZD0iaXB2NiI+QmV0cmFjaHR1bmcgdm9uIElQdjYtQmVzb25kZXJoZWl0ZW48L2E+PC9oMj4KICAgIAoKICAgIDxwPkVpbmUgd2FjaHNlbmRlIEFuemFobCB2b24gUGxhdHRmb3JtZW4gaW1wbGVtZW50aWVydCBJUHY2LiBEaWUKICAgIDxhIGNsYXNzPSJnbG9zc2FyeWxpbmsiIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCNhcHIiIHRpdGxlPSJzaWVoZSBHbG9zc2FyIj5BUFI8L2E+IHVudGVyc3T8dHp0IElQdjYgYXVmIGRlbiBtZWlzdGVuCiAgICBkaWVzZXIgUGxhdHRmb3JtZW4gdW5kIGVybfZnbGljaHQgZGVtIGh0dHBkLCBJUHY2LVNvY2tldHMgenUKICAgIHZlcndlbmRlbiB1bmQg/GJlciBJUHY2IGdlc2VuZGV0ZSBBbmZyYWdlbiB6dSBiZWhhbmRlbG4uPC9wPgoKICAgIDxwPkb8ciBodHRwZC1BZG1pbmlzdHJhdG9yZW4ga29tbXQgZXJzY2h3ZXJlbmQgZGllIEZyYWdlIGhpbnp1LAogICAgb2IgSVB2Ni1Tb2NrZXRzIHNvd29obCBJUHY0LSBhbHMgYXVjaCBJUHY2LVZlcmJpbmR1bmdlbiBoYW5kaGFiZW4KICAgIGv2bm5lbi4gWnVtIEJldHJpZWIgdm9uIElQdjQtVmVyYmluZHVuZ2VuIGFuIElQdjYtU29ja2V0cwogICAgd2VyZGVuIGF1ZiBJUHY2IGFiZ2ViaWxkZXRlIElQdjQtQWRyZXNzZW4gPHNwYW4gY2xhc3M9InRyYW5zbm90ZSI+KDxlbT5Bbm0uZC7cLjo8L2VtPiBzbyBnZW5hbm5ldGUKICAgIElQdjQtZ2VtYXBwdGUgSVB2Ni1BZHJlc3Nlbik8L3NwYW4+IHZlcndlbmRldCwgd2VsY2hlCiAgICBzdGFuZGFyZG3k32lnIGF1ZiBkZW4gbWVpc3RlbiBQbGF0dGZvcm1lbiBlcmxhdWJ0IHNpbmQuCiAgICBVbnRlciBGcmVlQlNELCBOZXRCU0QgdW5kIE9wZW5CU0QgamVkb2NoIHNpbmQgc2llCiAgICBzdGFuZGFyZG3k32lnIGRlYWt0aXZpZXJ0LCB1bSBkZW4gU3lzdGVtZ3J1bmRz5HR6ZW4KICAgIGRpZXNlciBQbGF0dGZvcm1lbiB6dSBlbnRzcHJlY2hlbi4gQXVmIFN5c3RlbWVuLCB3byBkaWVzCiAgICBzdGFuZGFyZG3k32lnIGRla2F0aXZpZXJ0IGlzdCwga2FubiBkaWVzZXMgVmVyaGFsdGVuIG1pdAogICAgZWluZW0gc3BlemllbGxlbiA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9jb25maWd1cmUuaHRtbCI+Y29uZmlndXJlPC9hPjwvY29kZT4tUGFyYW1ldGVyIGb8ciBkZW4KICAgIGh0dHBkIGdl5G5kZXJ0IHdlcmRlbi48L3A+CgogICAgPHA+QXVmIGRlciBhbmRlcmVuIFNlaXRlIGlzdCBkaWUgVmVyd2VuZHVuZyB2b24gZ2VtYXBwdGVuIEFkcmVzc2VuCiAgICBiZWkgZWluaWdlbiBQbGF0dGZvcm1lbiB3aWUgTGludXggdW5kIFRydWU2NCBkZXIKICAgIDxzdHJvbmc+ZWluemlnZTwvc3Ryb25nPiBXZWcsIHNvd29obCBJUHY0IHdpZSBhdWNoIElQdjYgenUKICAgIHZlcndlbmRlbi4gV2VubiBTaWUgbfZjaHRlbiwgZGFzcyBkZXIgPGNvZGU+aHR0cGQ8L2NvZGU+IElQdjQtCiAgICB1bmQgSVB2Ni1WZXJiaW5kdW5nZW4gbWl0IGVpbmVtIE1pbmltdW0gYW4gU29ja2V0cyBiZWhhbmRlbHQsIHdhcwogICAgZGllIFZlcndlbmR1bmcgdm9uIElQdjQtZ2VtYXBwdGVuIElQdjYtQWRyZXNzZW4gZXJmb3JkZXJ0LCBkYW5uCiAgICBt/HNzZW4gU2llIGRpZSA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9jb25maWd1cmUuaHRtbCI+Y29uZmlndXJlPC9hPjwvY29kZT4tT3B0aW9uCiAgICA8Y29kZT4tLWVuYWJsZS12NC1tYXBwZWQ8L2NvZGU+IGFuZ2ViZW4uPC9wPgoKICAgIDxwPjxjb2RlPi0tZW5hYmxlLXY0LW1hcHBlZDwvY29kZT4gaXN0IGRpZSBWb3JlaW5zdGVsbHVuZyBhdWYgYWxsZW4KICAgIFBsYXR0Zm9ybWVuIGF132VyIEZyZWVCU0QsIE5ldEJTRCB1bmQgT3BlbkJTRCwgc28gZGFzcyBJaHIKICAgIGh0dHBkIHdhaHJzY2hlaW5saWNoIHNvIPxiZXJzZXR6dCB3dXJkZS48L3A+CgogICAgPHA+R2ViZW4gU2llIHdpZSBpbiBkZW0gZm9sZ2VuZGVuIEJlaXNwaWVsIGJlaSBhbGxlbiA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPi1BbndlaXN1bmdlbiBlaW5lIElQdjQtQWRyZXNzZQogICAgYW4sIHdlbm4gU2llIG32Y2h0ZW4sIGRhc3MgSWhyIGh0dHBkIGxlZGlnbGljaCBJUHY0LUFkcmVzc2VuCiAgICBiZWhhbmRlbHQsIHVuYWJo5G5naWcgZGF2b24sIHdhcyBJaHJlIFBsYXR0Zm9ybSB1bmQgZGllIEFQUgogICAgdW50ZXJzdPx0emVuOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TGlzdGVuIDAuMC4wLjA6ODAKTGlzdGVuIDE5Mi4wLjIuMTo4MDwvcHJlPgo8L2Rpdj4KCiAgICA8cD5XZW5uIFNpZSBt9mNodGVuLCBkYXNzIGRlciBodHRwZCBJUHY0LSB1bmQgSVB2Ni1WZXJiaW5kdW5nZW4KICAgIGFuIHNlcGFyYXRlbiBTb2NrZXRzIGJlaGFuZGVsdCAoZC5oLiBJUHY0LWdlbWFwcHRlIEFkcmVzc2VuCiAgICBkZWFrdGl2aWVydCB3ZXJkZW4gc29sbGVuKSB1bmQgSWhyZSBQbGF0dGZvcm0gZXMgdW50ZXJzdPx0enQsCiAgICBkYW5uIG38c3NlbiBTaWUgZGllIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPi1PcHRpb24KICAgIDxjb2RlPi0tZGlzYWJsZS12NC1tYXBwZWQ8L2NvZGU+IGFuZ2ViZW4uICBVbnRlciBGcmVlQlNELCBOZXRCU0QgdW5kCiAgICBPcGVuQlNEIGlzdCA8Y29kZT4tLWRpc2FibGUtdjQtbWFwcGVkPC9jb2RlPiB2b3JlaW5nZXN0ZWxsdC48L3A+CiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJwcm90b2NvbCIgaWQ9InByb3RvY29sIj5BbmdhYmUgZGVzIFByb3Rva29sbHMgYmVpIExpc3RlbjwvYT48L2gyPgogICAgCiAgICA8cD5EYXMgb3B0aW9uYWxlIHp3ZWl0ZSA8dmFyPlByb3Rva29sbDwvdmFyPi1Bcmd1bWVudCB2b24gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI2xpc3RlbiI+TGlzdGVuPC9hPjwvY29kZT4gaXN0IGb8ciBkaWUgbWVpc3RlbgogICAgS29uZmlndXJhdGlvbmVuIGdhciBuaWNodCBlcmZvcmRlcmxpY2guIFdlbm4gbmljaHQgYW5nZWdlYmVuLCBzaW5kCiAgICA8Y29kZT5odHRwczwvY29kZT4gZvxyIFBvcnQgNDQzIHVuZCA8Y29kZT5odHRwPC9jb2RlPiBm/HIKICAgIGFsbGUgYW5kZXJlbiBQb3J0cyBkaWUgVm9yZWluc3RlbGx1bmdlbi4gRGllIFByb3Rva29sbGFuZ2FiZSB3aXJkCiAgICBzb3dvaGwgZGF6dSB2ZXJ3ZW5kZXQsIGhlcmF1c3p1ZmluZGVuLCB3ZWxjaGVzIE1vZHVsIEFuZnJhZ2VuCiAgICB2ZXJhcmJlaXRlbiBzb2xsLCBhbHMgYXVjaCwgdW0gcHJvdG9rb2xsc3BlemlmaXNjaGUgT3B0aW1pZXJ1bmdlbgogICAgYmVpIGRlciA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjYWNjZXB0ZmlsdGVyIj5BY2NlcHRGaWx0ZXI8L2E+PC9jb2RlPi1EaXJla3RpdmUKICAgIHp1IGFrdGl2aWVyZW4uPC9wPgoKICAgIDxwPlNpZSBt/HNzZW4gZGFzIFByb3Rva29sbCBudXIgYW5nZWJlbiwgd2VubiBTaWUKICAgIHVuZ2V39mhubGljaGUgUG9ydHMgYmVudXR6ZW4sIGJlaXNwaWVsc3dlaXNlIDxjb2RlPmh0dHBzPC9jb2RlPgogICAgYXVmIFBvcnQgODQ0Mzo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkxpc3RlbiAxOTIuMTcwLjIuMTo4NDQzIGh0dHBzPC9wcmU+CjwvZGl2PgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0idmlydHVhbGhvc3QiIGlkPSJ2aXJ0dWFsaG9zdCI+RGFzIFp1c2FtbWVuc3BpZWwgbWl0IHZpcnR1ZWxsZW4gSG9zdHM8L2E+PC9oMj4KICAgIAoKICAgIDxwPkRpZSBEaXJla3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI2xpc3RlbiI+TGlzdGVuPC9hPjwvY29kZT4KICAgIGltcGxlbWVudGllcnQga2VpbmUgdmlydHVlbGxlbiBIb3N0cyAtIHNpZSB0ZWlsdCBkZW0gSGF1cHRzZXJ2ZXIKICAgIGxlZGlnbGljaCBtaXQsIGFuIHdlbGNoZW4gQWRyZXNzZW4gdW5kIFBvcnRzIGVyIHp1IGxhdXNjaGVuIGhhdC4KICAgIFdlcmRlbiBrZWluZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPi1Db250YWluZXIgdmVyd2VuZGV0LCBkYW5uCiAgICB2ZXJo5Gx0IHNpY2ggZGVyIFNlcnZlciBiZWkgYWxsZW4gYW5nZW5vbW1lbmVuIEFuZnJhZ2VuIGdsZWljaC4KICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+LUFic2Nobml0dGUga/ZubmVuIGplZG9jaAogICAgZGF6dSB2ZXJ3ZW5kZXQgd2VyZGVuLCBlaW4gdW50ZXJzY2hpZWRsaWNoZXMgVmVyaGFsdGVuIGb8ciBlaW5lCiAgICBvZGVyIG1laHJlcmUgQWRyZXNzZW4gdW5kIFBvcnRzIGZlc3R6dWxlZ2VuLiBVbSBlaW5lbiB2aXJ0dWVsbGVuCiAgICBIb3N0IGVpbnp1cmljaHRlbiwgbXVzcyBkZW0gU2VydmVyIHp1buRjaHN0IG1pdGdldGVpbHQgd2VyZGVuLAogICAgYW4gZGVuIGJldHJlZmZlbmRlbiBBZHJlc3NlbiBvZGVyIFBvcnRzIHp1IGxhdXNjaGVuLiBEYW5uIHNvbGx0ZSBlaW4KICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+LUFic2Nobml0dCBm/HIgZGllCiAgICBhbmdlYmVuZSBBZHJlc3NlIHVuZCBkZW4gYW5nZWdlYmVuZW4gUG9ydCBlcnN0ZWxsdCB3ZXJkZW4sIHVtIGRhcwogICAgVmVyaGFsdGVuIGRpZXNlcyB2aXJ0dWVsbGVuIEhvc3RzIGZlc3R6dWxlZ2VuLiBCZWFjaHRlbiBTaWUgYml0dGUsCiAgICBkYXNzIGF1ZiBlaW5lbiA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPiBuaWNodCB6dWdlZ3JpZmZlbiB3ZXJkZW4KICAgIGthbm4sIHdlbm4gZXIgZvxyIGVpbmUgQWRyZXNzZSB1bmQgZWluZW4gUG9ydCBlaW5nZXJpY2h0ZXQKICAgIHd1cmRlLCBhbiBkZW0gZGVyIFNlcnZlciBuaWNodCBsYXVzY2h0LjwvcD4KICA8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPlZlcmb8Z2JhcmUgU3ByYWNoZW46IDwvc3Bhbj48YSBocmVmPSIuL2RlL2JpbmQuaHRtbCIgdGl0bGU9IkRldXRzY2giPiZuYnNwO2RlJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZW4vYmluZC5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9iaW5kLmh0bWwiIGhyZWZsYW5nPSJlcyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFc3Bh8W9sIj4mbmJzcDtlcyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9iaW5kLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgc3JjPSIuL2ltYWdlcy91cC5naWYiIGFsdD0idG9wIiAvPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDI+PGEgaWQ9ImNvbW1lbnRzX3NlY3Rpb24iIG5hbWU9ImNvbW1lbnRzX3NlY3Rpb24iPktvbW1lbnRhcmU8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy90cnVuay9iaW5kLmh0bWwnOwooZnVuY3Rpb24odywgZCkgewogICAgaWYgKHcubG9jYXRpb24uaG9zdG5hbWUudG9Mb3dlckNhc2UoKSA9PSAiaHR0cGQuYXBhY2hlLm9yZyIpIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPjxcL2Rpdj4nKTsKICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9jb21tZW50cy5hcGFjaGUub3JnL3Nob3dfY29tbWVudHMubHVhP3NpdGU9JyArIGNvbW1lbnRzX3Nob3J0bmFtZSArICcmcGFnZT0nICsgY29tbWVudHNfaWRlbnRpZmllcjsKICAgICAgICAoZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQocyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPkNvbW1lbnRzIGFyZSBkaXNhYmxlZCBmb3IgdGhpcyBwYWdlIGF0IHRoZSBtb21lbnQuPFwvZGl2PicpOwogICAgfQp9KSh3aW5kb3csIGRvY3VtZW50KTsKLy8tLT48IV1dPjwvc2NyaXB0PjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAyMDE2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi48YnIgLz5MaXplbnppZXJ0IHVudGVyIGRlciA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi9tb2QvIj5Nb2R1bGU8L2E+IHwgPGEgaHJlZj0iLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWt0aXZlbjwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhcjwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+U2VpdGVuaW5kZXg8L2E+PC9wPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCmlmICh0eXBlb2YocHJldHR5UHJpbnQpICE9PSAndW5kZWZpbmVkJykgewogICAgcHJldHR5UHJpbnQoKTsKfQovLy0tPjwhXV0+PC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+