PD9waHAKCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQlyZXF1aXJlX29uY2UoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICIvZWNsaXBzZS5vcmctY29tbW9uL3N5c3RlbS9hcHAuY2xhc3MucGhwIik7CXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL25hdi5jbGFzcy5waHAiKTsgCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL21lbnUuY2xhc3MucGhwIik7IAkkQXBwIAk9IG5ldyBBcHAoKTsJJE5hdgk9IG5ldyBOYXYoKTsJJE1lbnUgCT0gbmV3IE1lbnUoKTsJCWluY2x1ZGUoIl9wcm9qZWN0Q29tbW9uLnBocCIpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnCgoJCgkjCgkjIEJlZ2luOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzLiAgQ2hhbmdlIHRoZXNlLiAKCSRwYWdlVGl0bGUgCQk9ICJQcm9ncmFtIGFuZCBTcGVha2VycyBBbm5vdW5jZWQgZm9yIHRoZSBOZXcgQWdpbGUgQUxNIENvbm5lY3QgQ29uZmVyZW5jZSI7CgkkcGFnZUtleXdvcmRzCT0gImFnaWxlIGFsbSwgZWNsaXBzZSI7CgkkcGFnZUF1dGhvcgkJPSAiSWFuIFNrZXJyZXR0IjsKCQoJIyBBZGQgcGFnZS1zcGVjaWZpYyBOYXYgYmFycyBoZXJlCgkjIEZvcm1hdCBpcyBMaW5rIHRleHQsIGxpbmsgVVJMIChjYW4gYmUgaHR0cDovL3d3dy5zb21lb3RoZXJzaXRlLmNvbS8pLCB0YXJnZXQgKF9zZWxmLCBfYmxhbmspCgkjICROYXYtPmFkZEN1c3RvbU5hdigiTXkgTGluayIsICJteXBhZ2UucGhwIiwgIl9zZWxmIik7CgkjICROYXYtPmFkZEN1c3RvbU5hdigiR29vZ2xlIiwgImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iLCAiX2JsYW5rIik7CgoJIyBFbmQ6IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MKCSMKCQoJIyBQYXN0ZSB5b3VyIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBFT0hUTUwgbWFya2VycyEJCgkkaHRtbCA9IDw8PEVPSFRNTAoJPHN0eWxlPgoJCS5wYWRkZWRsaXN0IGxpIHsJcGFkZGluZy1ib3R0b206N3B4Owl9Cgk8L3N0eWxlPgoJCjxkaXYgaWQ9Im1haW5jb250ZW50Ij4KCTxkaXYgaWQ9Im1pZGNvbHVtbiI+Cjxicj48YnI+PGJyPgkKCQk8aDE+JHBhZ2VUaXRsZTwvaDE+CgoJCgkJPGJyPgogIDxwPjxzdHJvbmc+T3R0YXdhLCBDYW5hZGEgliBEZWNlbWJlciAxNCwgMjAxMTwvc3Ryb25nPiCWIEFnaWxlIEFMTSBDb25uZWN0IGlzIHBsZWFzZWQgdG8gYW5ub3VuY2UgaXRzIGxpbmUtdXAgb2YgdGVjaG5pY2FsIHNlc3Npb25zIGFuZCAKICBzcGVha2VycyBmb3IgdGhlIHVwY29taW5nIGNvbmZlcmVuY2UuICAgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlY29uLm9yZy8yMDEyL2FnaWxlYWxtIj5BZ2lsZSBBTE0gQ29ubmVjdDwvYT4gaXMgYSBuZXcgY29uZmVyZW5jZSB0aGF0IHdpbGwgZm9jdXMgb24gY29ubmVjdGluZyB0aGUgdG9vbHMsIGFnaWxlIG1ldGhvZHMgYW5kIAogIHBlb3BsZSBhY3Jvc3MgdGhlIHNvZnR3YXJlIGRldmVsb3BtZW50IGxpZmVjeWNsZS4gICBUaGUgY29uZmVyZW5jZSB3aWxsIGJlIGhlbGQgTWFyY2ggMjYtMjksIDIwMTIgaW4gUmVzdG9uLCBWaXJnaW5pYSBhbmQgYmUgY28tbG9jYXRlZCAKICB3aXRoIHRoZSBhbm51YWwgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlY29uLm9yZy8yMDEyLyI+RWNsaXBzZUNvbjwvYT4gY29tbXVuaXR5IGNvbmZlcmVuY2UuCiAgPC9wPgoKPHA+QWdpbGUgQUxNIENvbm5lY3QgaXMgZm9yIGRldmVsb3BtZW50IGV4ZWN1dGl2ZXMgYW5kIHRlY2huaWNhbCBsZWFkZXJzIHdobyB3YW50IHRvIGltcHJvdmUgdGhlaXIgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgcHJvY2Vzc2VzIHRocm91Z2ggCmVuaGFuY2VtZW50cyB0byB0aGVpciBzb2Z0d2FyZSBkZXZlbG9wbWVudCB0b29sIGNoYWluLiAgVGhlIGNvbmZlcmVuY2UgZmVhdHVyZXMgc3BlYWtlcnMgZnJvbSBsZWFkaW5nIG9yZ2FuaXphdGlvbnMgYW5kIHdpbGwgZXhwbG9yZSBhIHJhbmdlIApvZiB0b3BpY3MsIGluY2x1ZGluZzoKPHVsPgo8bGk+VGVjaG5pY2FsIHRhbGtzIG9uIHBvcHVsYXIgb3BlbiBzb3VyY2UgcHJvamVjdHMsIHN1Y2ggYXMgUHVwcGV0LCBTZWxlbml1bSwgU29uYXIsIEdpdCwgSHVkc29uLCBHZXJyaXQsIEVjbGlwc2UgTXlseW4gYW5kIApFY2xpcHNlIEp1YnVsYQo8bGk+U2Vzc2lvbnMgb24gYmVzdCBwcmFjdGljZXMgYW5kIGFnaWxlIG1ldGhvZHMgc3VjaCBhcyBjb250aW51b3VzIGRlbGl2ZXJ5LCBTY3J1bSBhbmQgS2FuYmFuLCBjb250aW51b3VzIGZlZWRiYWNrLCBkZXZvcHMsIHJlcXVpcmVtZW50cyAKbWFuYWdlbWVudCwgYWdpbGUgdHJhbnNmb3JtYXRpb24gYW5kIGxlYW4gQUxNCjxsaT5JbnNpZ2h0ZnVsIGNhc2Ugc3R1ZGllcyBmcm9tIGxlYWRpbmcgb3JnYW5pemF0aW9ucywgbGlrZSBJQk0sIGdpdGh1YiwgQXRsYXNzaWFuLCBCb3NjaCBhbmQgQm9laW5nCjwvdWw+CjwvcD4KCjxwPkFnaWxlIEFMTSBDb25uZWN0IGlzIG9uZSBvZiB0aGUgZmlyc3QgY29uZmVyZW5jZXMgdG8gZXhwbG9yZSB0aGUgdXNlIG9mIHNvZnR3YXJlIHRvb2xzIGFuZCBhZ2lsZSBtZXRob2RzIHRvIGltcHJvdmUgb3ZlcmFsbCBlZmZpY2llbmN5IApvZiB0aGUgc29mdHdhcmUgZGV2ZWxvcG1lbnQgcHJvY2Vzcy4gICBUaGlzIGluZHVzdHJ5IGNvbmZlcmVuY2UgbG9va3MgYXQgYWxsIGFzcGVjdHMgb2YgdGhlIGFwcGxpY2F0aW9uIGxpZmVjeWNsZSBmcm9tIHJlcXVpcmVtZW50cyAKbWFuYWdlbWVudCB0byBkZXZvcHMuICBBIHNwZWNpYWwgZm9jdXMgd2lsbCBiZSBvbiBpbnRlZ3JhdGluZyBkaWZmZXJlbnQgaW5kdXN0cnkgc29sdXRpb25zIHRvIG1lZXQgdGhlIG5lZWRzIG9mIHNwZWNpZmljIG9yZ2FuaXphdGlvbnMuCjwvcD4KCjxwPlRoZSBuZXcgY29uZmVyZW5jZSBpcyBjby1sb2NhdGVkIHdpdGggdGhlIGFubnVhbCBFY2xpcHNlQ29uIGNvbW11bml0eSBjb25mZXJlbmNlLiAgQXR0ZW5kZWVzIG9mIEFnaWxlIEFMTSBDb25uZWN0IG1heSBhdHRlbmQgYW5kIApwYXJ0aWNpcGF0ZSBpbiBhbnkgb2YgdGhlIEVjbGlwc2VDb24gc2Vzc2lvbnMuPC9wPgoKPHA+UmVnaXN0cmF0aW9uIGZvciBBZ2lsZSBBTE0gQ29ubmVjdCBpcyA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Vjb24ub3JnLzIwMTIvcmVnaXN0cmF0aW9uIj5ub3cgb3Blbi48L2E+ICAgVmVyeSBlYXJseSByZWdpc3RyYXRpb24gcHJpY2VzIGFyZSBhdmFpbGFibGUgdGhyb3VnaCBEZWNlbWJlciAzMSwgMjAxMS4gICA8L3A+CgoKPHN0cm9uZz5BYm91dCBBZ2lsZSBBTE0gQ29ubmVjdDwvc3Ryb25nPjxicj4KCkFnaWxlIEFMTSBDb25uZWN0IGlzIHByb2R1Y2VkIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24uICBUaGUgY29uZmVyZW5jZSBpcyBjby1sb2NhdGVkIHdpdGggdGhlIGFubnVhbCBFY2xpcHNlQ29uIGNvbmZlcmVuY2UuCjxicj48YnI+ClRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgYSBub3QtZm9yLXByb2ZpdCwgbWVtYmVyIHN1cHBvcnRlZCBjb3Jwb3JhdGlvbiB0aGF0IGhvc3RzIHRoZSBFY2xpcHNlIHByb2plY3RzLiBGdWxsIGRldGFpbHMgb2YgRWNsaXBzZSBhbmQgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBhcmUgYXZhaWxhYmxlIGF0IHd3dy5lY2xpcHNlLm9yZwogIAogIAogCiAKCgk8L2Rpdj4KCgk8IS0tIHJlbW92ZSB0aGUgZW50aXJlIDxkaXY+IHRhZyB0byBvbWl0IHRoZSByaWdodCBjb2x1bW4hICAtLT4KCTxkaXYgaWQ9InJpZ2h0Y29sdW1uIj4KCQk8ZGl2IGNsYXNzPSJzaWRlaXRlbSI+CgkJCTxoNj5SZWxhdGVkIExpbmtzPC9oNj4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZWNvbi5vcmcvMjAxMi9hZ2lsZWFsbSI+QWdpbGUgQUxNIENvbm5lY3Q8L2E+PC9saT4KCQkJPC91bD4KCQk8L2Rpdj4KCTwvZGl2PgkKPC9kaXY+CgoKRU9IVE1MOwoJJGh0bWwgPSBtYl9jb252ZXJ0X2VuY29kaW5nKCRodG1sLCAiSFRNTC1FTlRJVElFUyIsICJJU08tODg1OS0xIik7CgkkcGFnZVRpdGxlID0gbWJfY29udmVydF9lbmNvZGluZygkcGFnZVRpdGxlLCAiSFRNTC1FTlRJVElFUyIsICJJU08tODg1OS0xIik7CgkjIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7Cj8+CgoKCg==