PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgkQXBwLT5nZXRQcm9qZWN0Q29tbW9uKCkpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnDQoNCiRwYWdlVGl0bGUgCQk9ICIiOw0KJHBhZ2VLZXl3b3Jkcwk9ICIiOw0KJHBhZ2VBdXRob3IJCT0gIiI7DQoNCm9iX3N0YXJ0KCk7DQo/Pg0KICAgIDxkaXYgaWQ9Im1haW5jb250ZW50Ij4NCgk8ZGl2IGlkPSJtaWRjb2x1bW4iPg0KDQo8aDE+U0NBIFRvb2xzIFN1Yi1wcm9qZWN0IFByb3Bvc2FsPC9oMT4NCjwvcD4NCjw/cGhwDQppbmNsdWRlX29uY2UoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICIvcHJvamVjdHMvZnJhZ21lbnRzL3Byb3Bvc2FsLXBhZ2UtaGVhZGVyLnBocCIpOw0KZ2VuZXJhdGVfaGVhZGVyKCJTQ0EgVG9vbHMiKTsNCj8+DQoNCjxwPg0KPGgyPkludHJvZHVjdGlvbjwvaDI+DQo8cD4NClNDQSBUb29scyBpcyBhIHByb3Bvc2VkIHN1Yi1wcm9qZWN0IHVuZGVyIHRoZSB0b3AgbGV2ZWwgcHJvamVjdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3N0cC8iPkVjbGlwc2UgU09BIFRvb2xzIFBsYXRmb3JtIChTVFApPC9hPi4NCjwvcD4NCjxwPg0KVGhpcyBwcm9wb3NhbCBpcyBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wcm9qZWN0cy9kZXZfcHJvY2Vzcy9kZXZlbG9wbWVudF9wcm9jZXNzLnBocCM2XzJfMl9Qcm9wb3NhbCI+UHJvamVjdCBQcm9wb3NhbCBQaGFzZTwvYT4gKGFzIGRlZmluZWQgCmluIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3Byb2plY3RzL2Rldl9wcm9jZXNzL2RldmVsb3BtZW50X3Byb2Nlc3MucGhwIj5FY2xpcHNlIERldmVsb3BtZW50IFByb2Nlc3M8L2E+IGRvY3VtZW50KSBhbmQgaXMgCndyaXR0ZW4gdG8gZGVjbGFyZSB0aGUgaW50ZW50IGFuZCBzY29wZSBvZiB0aGUgU0NBIFRvb2xzIHN1Yi1wcm9qZWN0LiBUaGlzIApwcm9wb3NhbCBpcyB3cml0dGVuIHRvIHNvbGljaXQgYWRkaXRpb25hbCBwYXJ0aWNpcGF0aW9uIGFuZCBpbnB1dCAKZnJvbSB0aGUgRWNsaXBzZSBjb21tdW5pdHkuIFlvdSBhcmUgaW52aXRlZCB0byBjb21tZW50IG9uIGFuZCAKam9pbiB0aGUgcHJvamVjdC4gUGxlYXNlIHNlbmQgYWxsIGZlZWRiYWNrIHRvIHRoZSBTQ0EgVG9vbHMgbmV3c2dyb3VwICg8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL25ld3Nwb3J0YWwvdGhyZWFkLnBocD9ncm91cD1lY2xpcHNlLnN0cC5zY2EtdG9vbHMiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbmV3c3BvcnRhbC90aHJlYWQucGhwP2dyb3VwPWVjbGlwc2Uuc3RwLnNjYS10b29sczwvYT4pLg0KPC9wPg0KDQo8aDI+QmFja2dyb3VuZDwvaDI+DQo8cD4NClRoZSBtaXNzaW9uIG9mIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3N0cC8iPlNUUCBwcm9qZWN0PC9hPiBpcyB0byBidWlsZCBmcmFtZXdvcmtzIGFuZCBleHRlbnNpYmxlIHRvb2xzIHRoYXQgZW5hYmxlIHRoZSBkZXNpZ24sIGNvbmZpZ3VyYXRpb24sIGFzc2VtYmx5LCBkZXBsb3ltZW50LCBtb25pdG9yaW5nLCBhbmQgbWFuYWdlbWVudCBvZiBzb2Z0d2FyZSBkZXNpZ25lZCBhcm91bmQgYSBTZXJ2aWNlIE9yaWVudGVkIEFyY2hpdGVjdHVyZS4gVGhlIHByb2plY3QgaXMgZ3VpZGVkIGJ5IHRoZSB2YWx1ZXMgb2YgdHJhbnNwYXJlbmN5LCBleHRlbnNpYmlsaXR5LCB2ZW5kb3IgbmV1dHJhbGl0eSwgY29tbXVuaXR5IGNvbGxhYm9yYXRpb24sIGFnaWxlIGRldmVsb3BtZW50LCBhbmQgc3RhbmRhcmRzLWJhc2VkIGlubm92YXRpb24uIA0KPC9wPg0KPHA+DQpDdXJyZW50bHksIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvc3RwLyI+U1RQIHByb2plY3Q8L2E+IGNvbnRhaW5zIGEgY29tcG9uZW50IG5hbWVkIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvc3RwL3NjYS9pbmRleC5waHAiPlNUUC9TQ0E8L2E+LiBBbW9uZyBvdGhlciB0aGluZ3MsIHRoaXMgY29tcG9uZW50IHByb3ZpZGVzIGEgZ3JhcGhpY2FsIGRlc2lnbmVyLCBuYW1lZCA8YSBocmVmPSJodHRwOi8vd2lraS5lY2xpcHNlLm9yZy9TVFAvU0NBX0NvbXBvbmVudCNPdmVydmlldyI+U0NBIENvbXBvc2l0ZSBEZXNpZ25lcjwvYT4sIHdoaWNoIGFsbG93cyB0byBjb25zdHJ1Y3QgU0NBIGFzc2VtYmx5IGZpbGVzLiBUaGlzIHRvb2wgaXMgYmFzZWQgb24gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9nbWYvIj5HTUY8L2E+IGFuZCB3b3JrcyB3aXRoIGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mIj5FTUY8L2E+IG1ldGEgbW9kZWwgY29uc3RydWN0ZWQgZnJvbSB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5vc29hLm9yZy9kaXNwbGF5L01haW4vU2VydmljZStDb21wb25lbnQrQXJjaGl0ZWN0dXJlK1NwZWNpZmljYXRpb25zIj5TQ0Egc3BlY2lmaWNhdGlvbnMgdmVyc2lvbiAxLjA8L2E+IHByb3Bvc2VkIGJ5IHRoZSA8YSBocmVmPSJodHRwOi8vd3d3Lm9zb2Eub3JnL2Rpc3BsYXkvTWFpbi9Ib21lIj5PcGVuIFNPQSBjb25zb3J0aXVtPC9hPi4NCjwvcD4NCjxwPg0KVGhlIGFpbSBvZiB0aGlzIHByb3Bvc2FsIGlzIHRvIHRyYW5zZm9ybSB0aGUgYWN0dWFsIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvc3RwL3NjYS9pbmRleC5waHAiPlNUUC9TQ0E8L2E+IGNvbXBvbmVudCBpbnRvIGEgc3ViLXByb2plY3Qgb2YgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9zdHAvIj5TVFAgcHJvamVjdDwvYT4gYW5kIHRvIGFkZCBzZXZlcmFsIG90aGVyIFNDQSB0b29scy4NCjwvcD4NCg0KPGgyPkRlc2NyaXB0aW9uPC9oMj4NCjxwPg0KVGhlIHB1cnBvc2Ugb2YgdGhlIEVjbGlwc2UgU0NBIFRvb2xzIHN1Yi1wcm9qZWN0IGlzIHRvIGRldmVsb3AgYSBzZXQgb2YgdG9vbHMgdG8gaGVscCBkZXZlbG9wZXJzIG9mIFNDQSBhcHBsaWNhdGlvbnMgKGxpa2UgdGhlIFNDQSBtZXRhIG1vZGVsLCBlZGl0b3JzIGFuZCBhIGdyYXBoaWNhbCBkZXNpZ25lciB3aGljaCBhbGxvd3MgdG8gY29uc3RydWN0IFNDQSBhc3NlbWJseSBmaWxlcykuDQo8L3A+DQo8cD4NCk91ciBnb2FscyBhcmUgYWxzbyB0byBsaW5rIHRoZXNlIFNDQSB0b29scyB3aXRoIGV4aXN0aW5nIEVjbGlwc2UgdG9vbHMgdGhhdCBjYW4gZml0IHNvbWUgYXNwZWN0cyBvZiB0aGUgU0NBIHNwZWNpZmljYXRpb25zIGxpa2UgdGhlIGNvbXBvbmVudHMgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9zdHAvcG9saWN5L2luZGV4LnBocCI+U1RQIFBvbGljeSBFZGl0b3I8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3N0cC9zYy8iPlNUUCBTZXJ2aWNlIENyZWF0aW9uPC9hPi4gU0NBIHRvb2xzIHdpbGwgYWxzbyBpbnRlcmFjdCB3aXRoIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3N0cC9pbS9pbmRleC5waHAiPlNUUCBJbnRlcm1lZGlhdGUgTW9kZWw8L2E+IGNvbXBvbmVudC4NCjwvcD4NCg0KPGgyPlByb2plY3QgU2NvcGU8L2gyPg0KVGhlIFNDQSBUb29scyBzdWItcHJvamVjdCB3aWxsIGZvY3VzIG9uIHRvb2xzIGNvdmVyaW5nIHRoZSBTQ0Egc3BlY2lmaWNhdGlvbnMgcHJvcG9zZWQgYnkgdGhlIE9wZW4gU09BIGNvbnNvcnRpdW06DQoNCjx1bD4NCjxsaT4gU0NBIGVjb3JlIG1ldGEgbW9kZWwgY29ycmVzcG9uZGluZyB0byB0aGUgWFNEIHNjaGVtZSBwcm9wb3NlZCBieSB0aGUgT3BlbiBTT0EgY29uc29ydGl1bSw8L2xpPg0KPGxpPiBFY29yZSBtZXRhIG1vZGVscyBvZiBhZGRpdGlvbmFsIGltcGxlbWVudGF0aW9ucywgaW50ZXJmYWNlcywgYW5kIGJpbmRpbmdzIGRlZmluZWQgYnkgdGhlIFNDQSBydW50aW1lIGltcGxlbWVudGF0aW9ucyBUdXNjYW55LCBGcmFzY2F0aSwgYW5kIEZhYnJpYzMsPC9saT4NCjxsaT4gRWRpdG9ycyAoWE1MLCBmb3JtLCBncmFwaGljYWwpIGhlbHBpbmcgZGV2ZWxvcHBlcnMgdG8gY29uc3RydWN0IFNDQSBhc3NlbWJseSBmaWxlcyw8L2xpPg0KPGxpPiBUb29scyB0aGF0IGludHJvc3BlY3QgZXhpc3RpbmcgY29kZSB0byBjb21wbGV0ZSB0aGUgU0NBIG1vZGVsIGFjY29yZGluZyB0byBTQ0EgYW5ub3RhdGlvbnMgZm91bmQgaW4gdGhlIGNvZGUuPC9saT4NCjwvdWw+DQoNCjxoMj5PdXQgb2YgU2NvcGU8L2gyPg0KU29tZXRoaW5ncyBhcmUgbm90IGluIHRoZSBzY29wZSBvZiB0aGUgU0NBIFRvb2xzIHN1Yi1wcm9qZWN0LiBJbiBwYXJ0aWN1bGFyIHNvbWUgYXNwZWN0cyBvZiB0aGUgT3BlbiBTT0Egc3BlY2lmaWNhdGlvbnMgdGhhdCBhcmUgYWxyZWFkeSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIGNvbXBvbmVudHMgb2YgdGhlIFNUUCBwcm9qZWN0IDoNCg0KPHVsPg0KPGxpPiBEZXBsb3ltZW50IGFzcGVjdCAoY292ZXJlZCBieSB0aGUgU09BUyBjb21wb25lbnQpLDwvbGk+DQo8bGk+IFRvb2wgdG8gYXNzaXN0IGRldmVsb3BwZXJzIGluIHRoZSBkZWZpbml0aW9uIG9mIFNDQSBhbm5vdGF0aW9ucyBpbiBKYXZhIGNvZGUgKGNvdmVyZWQgYnkgdGhlIFNDIGNvbXBvbmVudCksPC9saT4NCjxsaT4gTW9kZWwgdHJhbnNmb3JtYXRpb25zIGJldHdlZW4gU0NBIGFuZCBvdGhlciB0ZWNobm9sb2dpZXMgKGNvdmVyZWQgYnkgdGhlIElNIGNvbXBvbmVudCkuPC9saT4NCjwvdWw+DQoNCjxoMj5Qcm9wb3NlZCBDb21wb25lbnRzPC9oMj4NCjx1bD4NCjxsaT4gPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvU1RQL1NDQV9Db21wb25lbnQvU0NBX0NvbXBvc2l0ZV9NZXRhX01vZGVsIj48Yj5TQ0EgRG9tYWluIE1vZGVsPC9iPjwvYT4gKGV4aXN0aW5nIGNvZGUgaW4gU1RQL1NDQSBjb21wb25lbnQpLiBUaGlzIGNvbXBvbmVudCBjb250YWlucyB0aGUgRU1GIG1ldGEgbW9kZWwgYmFzZWQgb24gdGhlIFNDQSBzcGVjaWZpY2F0aW9ucyB2ZXJzaW9uIDEuMCBwcm9wb3NlZCBieSB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5vc29hLm9yZy9kaXNwbGF5L01haW4vSG9tZSI+T3BlbiBTT0EgY29uc29ydGl1bTwvYT4uIFRoaXMgbWV0YSBtb2RlbCB3aWxsIHNlcnZlIGFzIHRoZSBiYXNpcyBmb3IgbWFueSB0b29scy4gVGhpcyBjb21wb25lbnQgY29udGFpbnMgYWxzbyBhZGRpdGlvbmFsIHZhbGlkYXRpb24gcnVsZXMgdGhhdCBhcHBlYXIgaW4gdGhlIFNDQSBzcGVjaWZpY2F0aW9ucyBkb2N1bWVudCAoPGEgaHJlZj0iaHR0cDovL3d3dy5vc29hLm9yZy9kb3dubG9hZC9hdHRhY2htZW50cy8zNS9TQ0FfQXNzZW1ibHlNb2RlbF9WMTAwLnBkZj92ZXJzaW9uPTEiPlNDQSBBc3NlbWJseSBNb2RlbCBWMS4wMDwvYT4pIGFuZCB0aGF0IGFyZSBub3QgY2hlY2tlZCBieSB0aGUgRU1GIG1ldGEgbW9kZWwgaW1wbGVtZW50YXRpb24uIFRoZXNlIHJ1bGVzIGFyZSBsaXN0ZWQgPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvU1RQL1NDQV9Db21wb25lbnQvU0NBX0NvbXBvc2l0ZV9NZXRhX01vZGVsI0FkZGl0aW9uYWxfdmFsaWRhdGlvbl9ydWxlcyI+aGVyZTwvYT4uIFRoZXNlIHJ1bGVzIHdpbGwgYmUgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kZWxpbmcvZW1mLz9wcm9qZWN0PXZhbGlkYXRpb24jdmFsaWRhdGlvbiI+RU1GIFZhbGlkYXRpb24gRnJhbWV3b3JrPC9hPi4gVGhpcyBjb21wb25lbnQgY2FuIGJlIHVzZSBpbiBhbiBFY2xpcHNlIGVudmlyb25tZW50IG9yIHN0YW5kYWxvbmUuPC9saT4NCjxsaT4gPGI+U0NBIEludGVncmF0aW9uPC9iPi4gVGhpcyBjb21wb25lbnQgd2lsbCBjb250YWluIGFsbCBwbHVnaW5zIHRoYXQgaW1wbGVtZW50IGludGVncmF0aW9uIHdpdGggb3RoZXIgU1RQIHRvb2xzIGluIHJlbGF0aW9uIHdpdGggU0NBOiBTVFAgUG9saWN5IEVkaXRvciwgU1RQIFNlcnZpY2UgQ3JlYXRpb24sIFNUUCBTT0EgU3lzdGVtLjwvbGk+DQo8bGk+IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL1NUUC9TQ0FfQ29tcG9uZW50L1NDQV9Db21wb3NpdGVfRGVzaWduZXIiPjxiPlNDQSBDb21wb3NpdGUgRGVzaWduZXI8L2I+PC9hPiAoZXhpc3RpbmcgY29kZSBpbiBTVFAvU0NBIGNvbXBvbmVudCk6IHRoaXMgY29tcG9uZW50IGlzIGEgZ3JhcGhpY2FsIChHTUYpIGRldmVsb3BtZW50IGVudmlyb25tZW50IGZvciB0aGUgY29uc3RydWN0aW9uIG9mIGNvbXBvc2l0ZSBhcHBsaWNhdGlvbnMuPC9saT4NCjxsaT4gPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvU1RQL1NDQV9Db21wb25lbnQvU0NBX0NvbXBvc2l0ZV9FZGl0b3JzIj48Yj5TQ0EgQ29tcG9zaXRlIEVkaXRvcnM8L2I+PC9hPjogdGhpcyBjb21wb25lbnQgd2lsbCBjb250YWluIGEgc291cmNlIGVkaXRvciwgYSB0cmVlIGVkaXRvciwgYW4gWE1MIGVkaXRvciBhbmQgYSBGb3JtIGVkaXRvciB0byBjb25zdHJ1Y3QgU0NBIGFzc2VtYmx5IGZpbGVzLjwvbGk+DQo8L3VsPg0KDQo8aDI+UmVsYXRpb25zaGlwIHdpdGggT3RoZXIgRWNsaXBzZSBQcm9qZWN0czwvaDI+DQpUaGUgU0NBIFRvb2xzIHN1YiBwcm9qZWN0IHdpbGwgYmUgYnVpbHQgb24gdG9wIG9mIHRoZSBFY2xpcHNlIFBsYXRmb3JtIGFuZCB3aWxsIGhhdmUgcmVsYXRpb25zaGlwIHdpdGggb3RoZXIgRWNsaXBzZSBwcm9qZWN0cy4gDQoNCjx1bD4NCjxsaT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9zdHAvIj5TVFA8L2E+DQoJPHVsPg0KCTxsaT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9zdHAvcG9saWN5L2luZGV4LnBocCI+U1RQIFBvbGljeSBFZGl0b3IgY29tcG9uZW50PC9hPiB3aWxsIGJlIHVzZWQgdG8gaW1wbGVtZW50cyBTQ0EgcG9saWNpZXMuPC9saT4NCgk8bGk+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvc3RwL3NjLyI+U2VydmljZSBDcmVhdGlvbiBjb21wb25lbnQ8L2E+IHdpbGwgYmUgdXNlZCB0byBpbnRyb3NwZWN0IGFuZCB0byBhbm5vdGF0ZSBKYXZhIGNvZGUuPC9saT4NCgk8bGk+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvc3RwL3NvYXMvaW5kZXgucGhwIj5TVFAgU09BIFN5c3RlbSBjb21wb25lbnQ8L2E+IHdpbGwgYmUgdXNlZCB0byBwYWNrYWdlIGFuZCBkZXBsb3kgU0NBIGFwcGxpY2F0aW9ucyB0byBydW50aW1lIGNvbnRhaW5lcnMuPC9saT4NCgk8bGk+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvc3RwL2ltL2luZGV4LnBocCI+SW50ZXJtZWRpYXRlIE1vZGVsPC9hPiBjb21wb25lbnQgcGxhbm5lZCB0byB3b3JrIG9uIHRyYW5zZm9ybWF0aW9ucyBiZXR3ZWVuIHRoZSBJTSBhbmQgdGhlIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL1NUUC9TQ0FfQ29tcG9uZW50L1NDQV9Db21wb3NpdGVfTWV0YV9Nb2RlbCI+U0NBIERvbWFpbiBNb2RlbDwvYT4uPC9saT4NCgk8L3VsPjwvbGk+DQo8bGk+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mIj4gRU1GIHByb2plY3Q8L2E+IGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL1NUUC9TQ0FfQ29tcG9uZW50L1NDQV9Db21wb3NpdGVfTWV0YV9Nb2RlbCI+U0NBIERvbWFpbiBNb2RlbDwvYT4uPC9saT4NCjxsaT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tb2RlbGluZy9lbWYvP3Byb2plY3Q9dmFsaWRhdGlvbiN2YWxpZGF0aW9uIj5FTUYgVmFsaWRhdGlvbiBGcmFtZXdvcms8L2E+IGlzIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBhZGRpdGlvbmFsIHZhbGlkYXRpb24gcnVsZXMuPC9saT4NCjxsaT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9nbWYvIj5HTUYgcHJvamVjdDwvYT4gaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvU1RQL1NDQV9Db21wb25lbnQvU0NBX0NvbXBvc2l0ZV9EZXNpZ25lciI+U0NBIENvbXBvc2l0ZSBEZXNpZ25lcjwvYT4uPC9saT4NCjxsaT4gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9tMm0vIj5NMk0gcHJvamVjdDwvYT4gd2lsbCBiZSB1c2VkIHRvIGltcGxlbWVudCB0cmFuc2Zvcm1hdGlvbnMgYmV0d2VlbiBTQ0EgbW9kZWxzIGFuZCBJTSBtb2RlbHMuPC9saT4NCjwvdWw+DQoNCjxoMj5Pcmdhbml6YXRpb248L2gyPg0KV2UgcHJvcG9zZSB0aGF0IHRoaXMgc3ViLXByb2plY3Qgd2lsbCB0YWtlIHBsYWNlIHVuZGVyIHRoZSB0b3AgbGV2ZWwgcHJvamVjdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3N0cC8iPlNUUDwvYT4uDQoNCjxoMj5Qcm9wb3NlZCBJbml0aWFsIENvbW1pdHRlcnM8L2gyPg0KPHVsPg0KPGxpPiBTdGVwaGFuZSBEcmFwZWF1IJYgPGEgaHJlZj0iaHR0cDovL3d3dy5vYmVvLmZyLyI+T2JlbzwvYT4gKExlYWRlcikgliBjb21taXR0ZXIgb2YgU1RQL1NDQSBDb21wb25lbnQuPC9saT4NCjxsaT4gRXRpZW5uZSBKdWxpb3QgliA8YSBocmVmPSJodHRwOi8vd3d3Lm9iZW8uZnIvIj5PYmVvPC9hPiCWIGNvbW1pdHRlciBvZiBTVFAvU0NBIENvbXBvbmVudC48L2xpPg0KPGxpPiBWaW5jZW50IFp1cmN6YWsgliA8YSBocmVmPSJodHRwOi8vd3d3LmVibXdlYnNvdXJjaW5nLmNvbS8iPkVCTSBXZWJzb3VyY2luZzwvYT4gliBIZSB3aWxsIGJlIHByb3Bvc2VkIGFzIGEgbmV3IGNvbW1pdHRlci4gVmluY2VudCBoYXMgcHJvdmlkZWQgdmFsdWFibGUgcGF0Y2hlcyBmb3IgdGhlIFNUUC9TQ0EgQ29tcG9uZW50IGFuZCBoZSBwbGFucyB0byBkZXZlbG9wIHRoZSBYTUwgYW5kIEZvcm0gZWRpdG9ycyBmb3IgU0NBIGFzc2VtYmx5IGZpbGVzLjwvbGk+DQo8L3VsPg0KDQo8aDI+Q29kZSBDb250cmlidXRpb25zPC9oMj4NClRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3N0cC9zY2EvaW5kZXgucGhwIj5FY2xpcHNlIFNUUC9TQ0E8L2E+IGNvbXBvbmVudCB3aWxsIGJlIHRoZSBpbml0aWFsIGNvZGUuDQoNCjxoMj5JbnRlcmVzdGVkIFBhcnRpZXM8L2gyPg0KQXQgdGhpcyB0aW1lLCB0aGUgZm9sbG93aW5nIHBlb3BsZXMsIGNvbXBhbmllcyBhbmQgcHJvamVjdHMgaGF2ZSBleHByZXNzZWQgdGhlaXIgaW50ZXJlc3QgdG8gc2VlIHRoZSBjcmVhdGlvbiBvZiB0aGUgU0NBIFRvb2xzIHN1Yi1wcm9qZWN0Og0KPHVsPg0KPGxpPjxhIGhyZWY9Imh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL1RVU0NBTlkvIj5BcGFjaGUgVHVzY2FueSBwcm9qZWN0PC9hPjwvbGk+DQo8bGk+IEdh62wgQmxvbmRlbGxlIJYgPGEgaHJlZj0iaHR0cDovL3d3dy5lYm13ZWJzb3VyY2luZy5jb20vIj5FQk0gV2Vic291cmNpbmc8L2E+PC9saT4NCjxsaT4gTmFjaSBEYWkgliA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3dlYnRvb2xzLyI+V1RQIFBNQyBtZW1iZXI8L2E+LCA8YSBocmVmPSJodHRwOi8vd3d3LmV0ZXJhdGlvbi5jb20vIj5FdGVyYXRpb248L2E+PC9saT4NCjxsaT4gQWxhaW4gQm91bHplIJYgPGEgaHJlZj0iaHR0cDovL3d3dy5pbnJpYS5mci9pbmRleC5lbi5odG1sIj5JTlJJQTwvYT48L2xpPg0KPGxpPiBBZHJpYW4gTW9zIJYgPGEgaHJlZj0iaHR0cDovL3d3dy5pbnJpYS5mci9pbmRleC5lbi5odG1sIj5JTlJJQTwvYT48L2xpPg0KPGxpPiBPaXNpbiBIdXJsZXkgliA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3N0cC8iPlNUUCBwcm9qZWN0IGxlYWQ8L2E+LCA8YSBocmVmPSJodHRwOi8vd3d3LmlvbmEuY29tLyI+SU9OQTwvYT48L2xpPg0KPGxpPiBGbG9yaWFuIExhdXRlbmJhY2hlciCWIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvand0LyI+SldUIHByb2plY3QgbGVhZDwvYT48L2xpPg0KPGxpPiA8YSBocmVmPSJodHRwOi8vd3d3Lm9iZW8uZnIvIj5PYmVvPC9hPjwvbGk+DQo8bGk+IE1hcmMgRHV0b28gliA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2p3dC8iPkpXVCBwcm9qZWN0IGxlYWQ8L2E+LCA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW53aWRlLmZyLyI+T3BlbldpZGU8L2E+PC9saT4NCjxsaT4gPGEgaHJlZj0iaHR0cDovL3d3dy5zY29yd2FyZS5vcmcvIj5PVzIvU0NPcldhcmUgcHJvamVjdDwvYT48L2xpPg0KPGxpPiBEaW1pdGFyIERpbWl0cm92IJYgPGEgaHJlZj0iaHR0cDovL3d3dy5zYXAuY29tL2luZGV4LmVweCI+U0FQPC9hPjwvbGk+DQo8L3VsPg0KDQo8aDI+VGVudGF0aXZlIFBsYW48L2gyPg0KPHVsPg0KPGxpPiBKdW5lIDIwMDgsIHJlbGVhc2UgVjEuMCBpbiBHYW55bWVkZQ0KPHVsPg0KPGxpPiBDb3JlOiBTQ0EgbmF0dXJlLCB3aXphcmQgZm9yIHRoZSBjcmVhdGlvbiBvZiBuZXcgU0NBIGFzc2VtYmx5IGZpbGVzLCBwcmVmZXJlbmNlIHBhZ2VzLjwvbGk+DQo8bGk+IFNDQSBEb21haW4gTW9kZWw6IFNDQSBzcGVjaWZpY2F0aW9ucyAxLjAgZnJvbSBPU09BICsgYWRkaXRpb25hbCB2YWxpZGF0aW9uIHJ1bGVzIHdoaWNoIGFwcGx5IG9uIHRoZSBTQ0EgYXNzZW1ibHkgZGVzY3JpcHRpb24gZmlsZXMuPC9saT4NCjxsaT4gU0NBIENvbXBvc2l0ZSBEZXNpZ25lcjogc3VwcG9ydCBvZiBUdXNjYW55IFNDQSBlbGVtZW50cy48L2xpPg0KPGxpPiBVcGRhdGUgb2YgdGhlIHdlYiBzaXRlIGFuZCB0aGUgd2lraS48L2xpPg0KPGxpPiBUdXRvcmlhbCB0aGF0IGV4cGxhaW4gaG93IHRvIHVzZSBTQ0EgdG9vbHMuPC9saT4NCjwvdWw+PC9saT4NCjxsaT4gRGVjZW1iZXIgMjAwOA0KPHVsPg0KPGxpPiBTQ0EgRG9tYWluIE1vZGVsOiBmdWxsIHN1cHBvcnQgb2YgdGhlIGFkZGl0aW9uYWwgdmFsaWRhdGlvbiBydWxlcy48L2xpPg0KPGxpPiBTQ0EgQ29tcG9zaXRlIERlc2lnbmVyOiBzdXBwb3J0IG9mIEZyYXNjYXRpIFNDQSBlbGVtZW50cy48L2xpPg0KPGxpPiBTQ0EgQ29tcG9zaXRlIEVkaXRvcnM6IFhNTCBlZGl0b3IgKyBGb3JtIGVkaXRvci48L2xpPg0KPGxpPiBTQ0EgSW50ZWdyYXRpb246IEludGVncmF0aW9uIHdpdGggdGhlIGNvbXBvbmVudHMgU1RQIFBvbGljeSBFZGl0b3IsIFNUUCBTZXJ2aWNlIENyZWF0aW9uLCBhbnMgU1RQIFNPQSBTeXN0ZW0uPC9saT4NCjwvdWw+PC9saT4NCjxsaT4gTWFyY2ggMjAwOQ0KPHVsPg0KPGxpPiBTQ0EgRG9tYWluIE1vZGVsOiBzdXBwb3J0IG9mIFNDQSBzcGVjaWZpY2F0aW9ucyB0aGF0IHNob3VsZCBiZSBwdWJsaXNoZWQgaW4gZGVjZW1iZXIgMjAwOCBieSBPQVNJUy48L2xpPg0KPGxpPiBTQ0EgQ29tcG9zaXRlIERlc2lnbmVyOiB1cGRhdGUgd2l0aCB0aGUgbmV3IG1ldGEgbW9kZWwuPC9saT4NCjxsaT4gU0NBIENvbXBvc2l0ZSBFZGl0b3JzOiB1cGRhdGUgd2l0aCB0aGUgbmV3IG1ldGEgbW9kZWwuPC9saT4NCjwvdWw+PC9saT4NCjwvdWw+DQo8L3A+DQoNCiAgICAgIDwvZGl2Pg0KICA8L2Rpdj4NCjw/cGhwDQoJJGh0bWwgPSBvYl9nZXRfY29udGVudHMoKTsNCglvYl9lbmRfY2xlYW4oKTsNCg0KCSMgR2VuZXJhdGUgdGhlIHdlYiBwYWdlDQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7DQo/Pg0K