PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sPgo8aGVhZD4KPHRpdGxlPldvcmtpbmcgaW4gdGhlIE92ZXJ2aWV3IHBhZ2U8L3RpdGxlPgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KICAgIGZ1bmN0aW9uIHBvcHVwX3dpbmRvdyggdXJsLCBpZCwgd2lkdGgsIGhlaWdodCApCiAgICB7CiAgICAgIHBvcHVwID0gd2luZG93Lm9wZW4oIHVybCwgaWQsICd0b29sYmFyPW5vLHNjcm9sbGJhcnM9bm8sbG9jYXRpb249bm8sc3RhdHVzYmFyPW5vLG1lbnViYXI9bm8scmVzaXphYmxlPW5vLHdpZHRoPScgKyB3aWR0aCArICcsaGVpZ2h0PScgKyBoZWlnaHQgKyAnLGxlZnQ9LHRvcD0nICk7CiAgICAgIHBvcHVwLmZvY3VzKCk7CiAgICB9Cjwvc2NyaXB0PjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHNyYz0iaGVscC9saXZlSGVscC5qcyI+PC9zY3JpcHQ+PC9oZWFkPgo8Ym9keSBpZD0idHdlZHR3YngxIj48YSBuYW1lPSJ0d2VkdHdieDEiPjwhLS0gLS0+PC9hPgoKPGgxIGNsYXNzPSJ0b3BpY3RpdGxlMSI+V29ya2luZyBpbiB0aGUgT3ZlcnZpZXcgcGFnZTwvaDE+CjxkaXY+PGRpdiBjbGFzcz0ic2tpcHNwYWNlIj5JbiB0aGUgPGI+T3ZlcnZpZXc8L2I+IHBhZ2Ugb2YgdGhlIDxhIGhyZWY9ImNjd2VieG1sLmh0bWwiPldlYgpkZXBsb3ltZW50IGRlc2NyaXB0b3IgZWRpdG9yPC9hPiwgeW91IGNhbiBnZXQgYSBxdWljayBzdW1tYXJ5IG9mIHRoZSBjb250ZW50cwpvZiB0aGUgV2ViIGRlcGxveW1lbnQgZGVzY3JpcHRvciBpbiBhZGRpdGlvbiB0byBhZGp1c3RpbmcgdmFyaW91cyBzZXR0aW5ncy4gPHA+VG8Kd29yayBpbiB0aGUgPGI+IE92ZXJ2aWV3PC9iPiBwYWdlLCBjb21wbGV0ZSB0aGUgZm9sbG93aW5nIHN0ZXBzOjwvcD4KPC9kaXY+CjxvbD48bGk+PHNwYW4+T3BlbiBhIFdlYiBwcm9qZWN0IGluIHRoZSBQcm9qZWN0IEV4cGxvcmVyLjwvc3Bhbj48L2xpPgo8bGk+PHNwYW4+RG91YmxlLWNsaWNrIHRoZSBXZWIgcHJvamVjdCdzIDxiPldlYiBEZXBsb3ltZW50IERlc2NyaXB0b3I8L2I+IGZpbGUKaW4gdGhlIFByb2plY3QgRXhwbG9yZXIuIFRoZSBXZWIgZGVwbG95bWVudCBkZXNjcmlwdG9yIGVkaXRvciBvcGVucy48L3NwYW4+PC9saT4KPGxpPjxzcGFuPkNsaWNrIHRoZSA8Yj5PdmVydmlldzwvYj4gdGFiIHRvIG9wZW4gdGhlIDxiPk92ZXJ2aWV3PC9iPiBwYWdlLjwvc3Bhbj48L2xpPgo8bGk+PHNwYW4+WW91IGNhbiBlZGl0IHNldHRpbmdzIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgb2YgdGhlIDxiPk92ZXJ2aWV3PC9iPiBwYWdlOgooWW91IG1heSBhbHNvIHdhbnQgdG8gb3BlbiB0aGlzIHBhZ2UgdG8gdmlldyB0aGUgc2V0dGluZ3MuKSA8L3NwYW4+PHVsPjxsaT5HZW5lcmFsIEluZm9ybWF0aW9uIC0gbGV0cyB5b3UgdmlldyBhbmQgZWRpdCBnZW5lcmFsIGluZm9ybWF0aW9uLAppbmNsdWRpbmcgdGhlIGRpc3BsYXkgbmFtZSwgZGVzY3JpcHRpb24gKG5vdCBkaXNwbGF5ZWQgdG8gZW5kIHVzZXJzKSwgYW5kCmNsaWVudCBzZXNzaW9uIHRpbWUgb3V0IChpbiBtaW51dGVzKS48L2xpPgo8bGk+U2VydmxldHMgYW5kIEpTUHMgLSBsZXRzIHlvdSB2aWV3IHRoZSBzZXJ2bGV0cyBhbmQgSlNQcyB1c2VkIGluIHRoZQphcHBsaWNhdGlvbi48L2xpPgo8bGk+RmlsdGVycyAtIGxldHMgeW91IHZpZXcgZmlsdGVycyB1c2VkIGluIHRoZSBhcHBsaWNhdGlvbi48L2xpPgo8bGk+UGFnZXMgLSBsZXRzIHlvdSB2aWV3IHdlbGNvbWUgcGFnZXMgdXNlZCBpbiB0aGUgYXBwbGljYXRpb24uPC9saT4KPGxpPk1pbWUgdHlwZSAtIGxldHMgeW91IHZpZXcgZmlsZSBleHRlbnNpb25zIHRoYXQgYXJlIG1hcHBlZCB0byBtaW1lCnR5cGVzLjwvbGk+CjxsaT5TZWN1cml0eSAtIGxldHMgeW91IHZpZXcgdGhlIHNlY3VyaXR5IHJvbGVzIGFuZCB0aGVpciBjb25zdHJhaW50cwpkZWZpbmVkIGZvciB0aGUgV2ViIGFwcGxpY2F0aW9uLjwvbGk+CjxsaT5JY29ucyAtIGxldHMgeW91IHZpZXcsIGNoYW5nZSwgb3IgYWRkIGljb25zIHJlcHJlc2VudGluZyB0aGUgV2ViIGFwcGxpY2F0aW9uLjwvbGk+CjxsaT5Vc2FnZSAtIGxpc3QgdGhlIGVudGVycHJpc2UgYXBwbGljYXRpb25zIHRoYXQgYXJlIHVzaW5nIHRoaXMgV2ViIG1vZHVsZS48L2xpPgo8bGk+V2ViIExpYnJhcnkgcHJvamVjdHMgLSBsZXRzIHlvdSB2aWV3LCBhZGQsIG9yIHJlbW92ZSByZWZlcmVuY2VzIHRvCkpBUiBmaWxlcyBtYXBwZWQgdG8gSmF2YZkgcHJvamVjdHMuPC9saT4KPGxpPkxpc3RlbmVycyAtIGxldHMgeW91IHZpZXcgbGlzdGVuZXJzIHVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uLjwvbGk+CjxsaT5SZWZlcmVuY2VzIC0gbGV0cyB5b3UgdmlldyByZXNvdXJjZXMgdGhhdCB0aGUgV2ViIGFwcGxpY2F0aW9uIHJlZmVyZW5jZXMuIDwvbGk+CjxsaT5FbnZpcm9ubWVudCBWYXJpYWJsZXMgLSBsZXRzIHlvdSB2aWV3IGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZQpyZWxldmFudCB0byB0aGUgV2ViIGFwcGxpY2F0aW9uLjwvbGk+CjxsaT5Db250ZXh0IFBhcmFtZXRlcnMgLSBsZXRzIHlvdSB2aWV3IHRoZSBjb250ZXh0IGluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMKdGhhdCBhcHBseSB0byBhbGwgdGhlIHNlcnZsZXRzIGluIHRoZSBXZWIgYXBwbGljYXRpb24uPC9saT4KPC91bD4KPC9saT4KPC9vbD4KPC9kaXY+CjxkaXY+PHA+PGIgY2xhc3M9InJlbHRhc2tzaGQiPlJlbGF0ZWQgdGFza3M8L2I+PGJyIC8+CjxhIGhyZWY9InR3ZWR0d2J4Lmh0bWwiIHRpdGxlPSIiPkNvbmZpZ3VyaW5nIFdlYiBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIFdlYiBkZXBsb3ltZW50IGRlc2NyaXB0b3IgZWRpdG9yPC9hPjxiciAvPgo8L3A+CjwvZGl2PjxwPgoJCShDKSBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uIDIwMDAsIDIwMDUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCjwvcD4KPC9ib2R5Pgo8L2h0bWw+