PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sPgo8aGVhZD4KPHRpdGxlPldvcmtpbmcgaW4gdGhlIFNlcnZsZXRzIHBhZ2U8L3RpdGxlPgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KICAgIGZ1bmN0aW9uIHBvcHVwX3dpbmRvdyggdXJsLCBpZCwgd2lkdGgsIGhlaWdodCApCiAgICB7CiAgICAgIHBvcHVwID0gd2luZG93Lm9wZW4oIHVybCwgaWQsICd0b29sYmFyPW5vLHNjcm9sbGJhcnM9bm8sbG9jYXRpb249bm8sc3RhdHVzYmFyPW5vLG1lbnViYXI9bm8scmVzaXphYmxlPW5vLHdpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLGxlZnQ9LHRvcD0nICk7CiAgICAgIHBvcHVwLmZvY3VzKCk7CiAgICB9Cjwvc2NyaXB0PjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHNyYz0iaGVscC9saXZlSGVscC5qcyI+PC9zY3JpcHQ+PC9oZWFkPgo8Ym9keSBpZD0idHdlZHR3YngyIj48YSBuYW1lPSJ0d2VkdHdieDIiPjwhLS0gLS0+PC9hPgoKPGgxIGNsYXNzPSJ0b3BpY3RpdGxlMSI+V29ya2luZyBpbiB0aGUgU2VydmxldHMgcGFnZTwvaDE+CjxkaXY+PGRpdiBjbGFzcz0ic2tpcHNwYWNlIj5JbiB0aGUgPGI+U2VydmxldHM8L2I+IHBhZ2Ugb2YgdGhlIDxhIGhyZWY9ImNjd2VieG1sLmh0bWwiPldlYgoKIGRlcGxveW1lbnQgZGVzY3JpcHRvciBlZGl0b3I8L2E+LCB5b3UgY2FuIGFkZCBhbiBleGlzdGluZyBzZXJ2bGV0IG9yIEpTUAoKIGZpbGUgdG8gdGhlIGRlcGxveW1lbnQgZGVzY3JpcHRvciBvciByZW1vdmUgdGhlIHNlbGVjdGVkIHNlcnZsZXQgb2YgSlNQIGZpbGUKCiBmcm9tIHRoZSBkZXBsb3ltZW50IGRlc2NyaXB0b3IuPHA+VG8gd29yayBpbiB0aGUgPGI+U2VydmxldHM8L2I+IHBhZ2UsIGNvbXBsZXRlCgogdGhlIGZvbGxvd2luZyBzdGVwczo8L3A+CjwvZGl2Pgo8b2w+PGxpPjxzcGFuPk9wZW4gYSBXZWIgcHJvamVjdCBpbiB0aGUgUHJvamVjdCBFeHBsb3Jlci48L3NwYW4+PC9saT4KPGxpPjxzcGFuPkRvdWJsZS1jbGljayB0aGUgV2ViIHByb2plY3QncyA8Yj4gRGVwbG95bWVudCBEZXNjcmlwdG9yPC9iPiBmaWxlCgogaW4gdGhlIFByb2plY3QgRXhwbG9yZXIuIFRoZSBXZWIgZGVwbG95bWVudCBkZXNjcmlwdG9yIGVkaXRvciBvcGVucy48L3NwYW4+PC9saT4KPGxpPjxzcGFuPkNsaWNrIHRoZTxiPiBTZXJ2bGV0czwvYj4gdGFiIHRvIG9wZW4gdGhlIDxiPlNlcnZsZXRzPC9iPiBwYWdlLjwvc3Bhbj48L2xpPgo8bGk+PHNwYW4+WW91IGNhbiBlZGl0IHNldHRpbmdzIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgb2YgdGhlIDxiPlNlcnZsZXRzPC9iPiBwYWdlOiA8L3NwYW4+PHVsPjxsaT5TZXJ2bGV0cyBhbmQgSlNQcyAtIGxpc3Qgc2VydmxldHMgYW5kIEpTUHMgdXNlZCBpbiB0aGlzIGFwcGxpY2F0aW9uLgoKIFlvdSBjYW4gYWRkIG9yIHJlbW92ZSBzZXJ2bGV0cyBhbmQgSlNQcyBmcm9tIHRoZSBsaXN0LjwvbGk+CjxsaT5EZXRhaWxzIC0gbGlzdHMgZGV0YWlscyBhYm91dCB0aGUgc2VsZWN0ZWQgc2VydmxldCBvciBKU1AuIERldGFpbHMKCiBsaXN0ZWQgaW5jbHVkZSB0aGUgc2VydmxldCBjbGFzcyAoY2Fub25pY2FsIG5hbWUpLCB0aGUgZGlzcGxheSBuYW1lIChhIHNob3J0CgogbmFtZSBmb3IgZGlzcGxheSBwdXJwb3NlcyksIGFuZCBhIGRlc2NyaXB0aW9uLjwvbGk+CjxsaT5VUkwgTWFwcGluZ3MgLSBsaXN0cyBVUkxzIG1hcHBlZCB0byB0aGUgc2VsZWN0ZWQgc2VydmxldC4gPC9saT4KPGxpPkluaXRpYWxpemF0aW9uIC0gbGlzdHMgdGhlIGluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMgdGhhdCBhcmUgY29uZmlndXJlZAoKIGZvciB0aGUgc2VsZWN0ZWQgc2VydmxldCBvciBKU1AgZmlsZTwvbGk+CjxsaT5Mb2FkIG9uIFN0YXJ0dXAtIGVuYWJsZXMgeW91IHRvIHNwZWNpZnkgdGhlIGRldGFpbHMgb2YgYSBzZXJ2bGV0J3MKCiBsb2FkLW9uLXN0YXJ0dXAgZWxlbWVudCwgaW5jbHVkaW5nIGxvYWQgb3JkZXIuPC9saT4KPGxpPlNlY3VyaXR5IHJvbGUgcmVmZXJlbmNlcyAtIGxpc3QgdGhlIHNlY3VyaXR5IHJvbGVzIHJlZmVyZW5jZWQgaW4gdGhlCgogV2ViIGFwcGxpY2F0aW9uIGFuZCBsZXRzIHlvdSBlZGl0IHRoZSBzZWN1cml0eSByb2xlcyB0aGF0IGFyZSBhdXRob3JpemVkCgp0byAgYWNjZXNzIHRoZSBzZXJ2bGV0LiBZb3UgY2FuIGFkZCBvciByZW1vdmUgc2VjdXJpdHkgcm9sZXMuIElmIHlvdSBhZGQgYQoKc2VjdXJpdHkgIHJvbGUgcmVmZXJlbmNlLCB5b3Ugc3BlY2lmeSB0aGUgcm9sZSByZWZlcmVuY2UgbmFtZSwgdGhlIHJvbGUgbGluaywKCmFuZCBhICBkZXNjcmlwdGlvbi48L2xpPgo8bGk+UnVuIGFzIC0gbGlzdHMgZGV0YWlscyBvZiB0aGUgc2VsZWN0ZWQgc2VydmxldCdzIHJ1bi1hcwoKZWxlbWVudC48L2xpPgo8bGk+SWNvbnMgLSBsZXRzIHlvdSB2aWV3IG9yIGNoYW5nZSBpY29ucyAoc21hbGwgb3IgbGFyZ2UpIHVzZWQgdG8gcmVwcmVzZW50CgogdGhlIHNlbGVjdGVkIHNlcnZsZXQgb3IgSlNQIGZpbGUuPC9saT4KPGxpPldlYlNwaGVyZTxzdXA+rjwvc3VwPiBFeHRlbnNpb25zCgogLSBsaXN0IGFuZCBsZXRzIHlvdSBjaGFuZ2UgdGhlIGRldGFpbHMgb2YgdGhlIFNlcnZsZXQgRXh0ZW5zaW9uIGZvciB0aGUgc2VsZWN0ZWQKCiBzZXJ2bGV0LiBZb3UgY2FuIGFkZCBhIG5ldyBleHRlbnNpb24gYnkgY2xpY2tpbmcgPGI+QWRkPC9iPi4gVGhlIEFkZCBNYXJrdXAKCiBMYW5ndWFnZSBlbnRyeSB3aXphcmQgYXBwZWFycy4gQWxzbywgZGVwZW5kaW5nIG9uIHRoZSBTZXJ2bGV0IFZlcnNpb24gb2YKCnRoZSAgcHJvamVjdCB5b3UgYXJlIHdvcmtpbmcgd2l0aCwgeW91IGNhbiBzcGVjaWZ5IGdsb2JhbCBhbmQgbG9jYWwgdHJhbnNhY3Rpb24KCiBzZXR0aW5ncy48L2xpPgo8L3VsPgo8L2xpPgo8L29sPgo8L2Rpdj4KPGRpdj48cD48YiBjbGFzcz0icmVsY29uY2VwdHNoZCI+UmVsYXRlZCBjb25jZXB0czwvYj48YnIgLz4KPGEgaHJlZj0iY2N3ZWJ4bWwuaHRtbCIgdGl0bGU9IiI+VGhlIFdlYiBkZXBsb3ltZW50IGRlc2NyaXB0b3IgZWRpdG9yPC9hPjxiciAvPgo8IS0tPGEgaHJlZj0iLi4vLi4vY29tLmlibS5ldG9vbHMud3JkLmFubm90YXRpb24uZG9jL3RvcGljcy9jb3ZlcnZpZXcuaHRtbCI+QW5ub3RhdGlvbi1iYXNlZCBwcm9ncmFtbWluZyBvdmVydmlldzwvYT4tLT48YnIgLz4KPC9wPgo8cD48YiBjbGFzcz0icmVsdGFza3NoZCI+UmVsYXRlZCB0YXNrczwvYj48YnIgLz4KPGEgaHJlZj0idHdlZHR3YnguaHRtbCIgdGl0bGU9IiI+Q29uZmlndXJpbmcgV2ViIGFwcGxpY2F0aW9ucyB1c2luZyB0aGUgV2ViIGRlcGxveW1lbnQgZGVzY3JpcHRvciBlZGl0b3I8L2E+PGJyIC8+CjwvcD4KPC9kaXY+PHA+CgkJKEMpIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24gMjAwMCwgMjAwNS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPC9wPgo8L2JvZHk+CjwvaHRtbD4=