PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgkQXBwLT5nZXRQcm9qZWN0Q29tbW9uKCkpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnDQoNCiRwYWdlVGl0bGUgCQk9ICIiOw0KJHBhZ2VLZXl3b3Jkcwk9ICIiOw0KJHBhZ2VBdXRob3IJCT0gIiI7DQoNCm9iX3N0YXJ0KCk7DQo/Pg0KICAgIDxkaXYgaWQ9Im1haW5jb250ZW50Ij4NCgk8ZGl2IGlkPSJtaWRjb2x1bW4iPg0KDQo8aDE+RFNEUCBQYWNrYWdpbmc8L2gxPg0KPC9wPg0KPD9waHANCmluY2x1ZGVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9wcm9qZWN0cy9mcmFnbWVudHMvcHJvcG9zYWwtcGFnZS1oZWFkZXIucGhwIik7DQpnZW5lcmF0ZV9oZWFkZXIoIkQtUGFjayIpOw0KPz4NCg0KDQo8cD5EU0RQIFBhY2thZ2luZyAoIkQtUGFjayIpIGlzIGEgcHJvcG9zZWQgb3Blbi1zb3VyY2Ugc3ViLXByb2plY3QgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cvZWNsaXBzZS5vcmcvZHNkcCIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHRpdGxlPSJodHRwOi8vd3d3L2VjbGlwc2Uub3JnL2RzZHAiIHJlbD0ibm9mb2xsb3ciPkRldmljZSBTb2Z0d2FyZSBEZXZlbG9wbWVudCBQbGF0Zm9ybTwvYT4gdG9wLWxldmVsIHByb2plY3QuICBUaGUgZ29hbCBvZiB0aGlzIHByb2plY3QgaXMgdG8gZW5hYmxlIDxpPm11bHRpcGxlPC9pPiBlbnRyeS1sZXZlbCBkaXN0cmlidXRpb25zIG9mIEVjbGlwc2UgdGhhdCByZXNwZWN0aXZlbHkgcHJvdmlkZSB0dXJua2V5IGVudmlyb25tZW50cyBmb3IgdmVyeSA8aT5zcGVjaWZpYzwvaT4gZGV2ZWxvcGVyIGNvbW11bml0aWVzIGZvdW5kIGluIHRoZSBicm9hZGVyIGVtYmVkZGVkIHN5c3RlbXMgbWFya2V0cGxhY2UuICAgDQo8L3A+PHA+VGhpcyBwcm9wb3NhbCBpcyBpbiB0aGUgUHJlLVByb3Bvc2FsIFBoYXNlIGFzIGRlZmluZWQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvcHJvamVjdHMvZGV2X3Byb2Nlc3MvZGV2ZWxvcG1lbnRfcHJvY2Vzcy5waHAiIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiB0aXRsZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wcm9qZWN0cy9kZXZfcHJvY2Vzcy9kZXZlbG9wbWVudF9wcm9jZXNzLnBocCIgcmVsPSJub2ZvbGxvdyI+RWNsaXBzZSBEZXZlbG9wbWVudCBQcm9jZXNzPC9hPiBkb2N1bWVudCBhbmQgZm9sbG93cyB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wcm9qZWN0cy9kZXZfcHJvY2Vzcy9wcmUtcHJvcG9zYWwtcGhhc2UucGhwIiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgdGl0bGU9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvcHJvamVjdHMvZGV2X3Byb2Nlc3MvcHJlLXByb3Bvc2FsLXBoYXNlLnBocCIgcmVsPSJub2ZvbGxvdyI+RWNsaXBzZSBQcm9wb3NhbCAKR3VpZGVsaW5lczwvYT4uIEl0IGlzIHdyaXR0ZW4gdG8gZGVjbGFyZSB0aGUgaW50ZW50IGFuZCBzY29wZSBvZiB0aGUgcHJvamVjdCwgYXMgd2VsbCBhcyB0byAKc29saWNpdCBhZGRpdGlvbmFsIHBhcnRpY2lwYXRpb24gYW5kIGlucHV0IGZyb20gdGhlIEVjbGlwc2UgYW5kIGVtYmVkZGVkIGRldmVsb3BlciBjb21tdW5pdHkuIFlvdSAKYXJlIGludml0ZWQgdG8gY29tbWVudCB1cG9uIGFuZC9vciBqb2luIHRoaXMgcHJvamVjdC4gUGxlYXNlIHNlbmQgYWxsIGZlZWRiYWNrIAp0byB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9uZXdzcG9ydGFsL3RocmVhZC5waHA/Z3JvdXA9ZWNsaXBzZS5kLXBhY2siIGNsYXNzPSJleHRlcm5hbCBmcmVlIiB0aXRsZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9uZXdzcG9ydGFsL3RocmVhZC5waHA/Z3JvdXA9ZWNsaXBzZS5kLXBhY2siIHJlbD0ibm9mb2xsb3ciPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbmV3c3BvcnRhbC90aHJlYWQucGhwP2dyb3VwPWVjbGlwc2UuZC1wYWNrPC9hPiBuZXdzZ3JvdXAuIA0KDQo8L3A+DQoNCjxhIG5hbWU9IkJhY2tncm91bmQiPjwvYT48aDI+IDxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSI+IEJhY2tncm91bmQgPC9zcGFuPjwvaDI+DQo8cD5XaGlsZSB1c2FnZSBvZiBFY2xpcHNlIGNvbnRpbnVlcyB0byBncm93IGFtb25nc3QgZW1iZWRkZWQgc29mdHdhcmUgZGV2ZWxvcGVycywgY3JlYXRpb24gb2YgdHVybmtleSAoZW50cnktbGV2ZWwpIGRvd25sb2FkcyBzYXRpc2Z5aW5nIHRoZSBuZWVkcyBvZiB0aGlzIGNvbW11bml0eZdub3QgdW5saWtlIHdoYXQncyBjdXJyZW50bHkgcHJvdmlkZWQgdGhyb3VnaCB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lcHAvIiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgdGl0bGU9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZXBwLyIgcmVsPSJub2ZvbGxvdyI+RVBQPC9hPiBwcm9qZWN0l3JlbWFpbnMgZWx1c2l2ZSBmb3IgYSBudW1iZXIgb2YgcmVhc29ucy4gIEZvciBzdGFydGVycywgdGhlIGNvbW11bml0eSBvZiBlbWJlZGRlZCBzb2Z0d2FyZSBkZXZlbG9wZXJzIHdpbGwgYWx3YXlzIHJlbWFpbiBhIHZlcnkgZnJhZ21lbnRlZCBvbmUgZHVlIHRvIHRoZSBzaGVlciBkaXZlcnNpdHkgb2YgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgcGxhdGZvcm1zIHRhcmdldGVkIGJ5IHRoaXMgY29tbXVuaXR5l3JhbmdpbmcgZnJvbSBwb3dlcmZ1bCBtdWx0aS1jb3JlIFNPQ3MgY2FwYWJsZSBvZiBzdXBwb3J0aW5nIExpbnV4IGFuZCBKYXZhLCByaWdodCBkb3duIHRvIHJlc291cmNlLWNvbnN0cmFpbmVkIDgvMTYtYml0IE1DVXMgd2l0aCBsaXR0bGUvbm8gcnVudGltZSBzdXBwb3J0LiAgR2l2ZW4gdGhpcyBkaXZlcnNpdHksIGF0dGVtcHRzIHRvIGNyZWF0ZSBhIDxpPnNpbmdsZTwvaT4gZGlzdHJpYnV0aW9uIG9mIEVjbGlwc2UgdGFyZ2V0aW5nIGVtYmVkZGVkIHNvZnR3YXJlIGRldmVsb3BlcnMgd291bGQgY2xlYXJseSBwcm92ZSBmdXRpbGUuDQo8L3A+PHA+TWFraW5nIG1hdHRlcnMgd29yc2UsIGFueSB1c2FnZSBvZiBFY2xpcHNlIGZvciBlbWJlZGRlZCBzb2Z0d2FyZSBkZXZlbG9wbWVudCBpbnZhcmlhYmx5IHJlcXVpcmVzIGludGVncmF0aW9uIG9mIGxlZ2FjeSBob3N0IHRvb2xpbmcgKHN1Y2ggYXMgYSBjb21waWxlcikgYWxvbmcgd2l0aCBsZWdhY3kgdGFyZ2V0IGNvbnRlbnQgKHN1Y2ggYXMgYW4gUlRPUykgc3BlY2lmaWMgdG8gdGhlIGhhcmR3YXJlIHBsYXRmb3JtIGF0IGhhbmQuICBOb3Qgb25seSBkbyB0aGVzZSBlbGVtZW50cyBtYWludGFpbiBhbiBleGlzdGVuY2Ugb3V0c2lkZSBvZiB0aGUgRWNsaXBzZSBJREUgcGVyIHNlLCB0aGVzZSB0b29scyBhbmQgY29udGVudCBvZnRlbiBjYXJyeSBub24tRVBMIGxpY2Vuc2VzIHRoYXQgd291bGQgdWx0aW1hdGVseSA8aT5wcmVjbHVkZTwvaT4gdGhlaXIgcHJvdmlzaW9uaW5nIGZyb20gYW55IGVjbGlwc2Uub3JnIHNlcnZlci4NCg0KPC9wPjxwPlJlc3BvbmRpbmcgdG8gdGhpcyByZWFsaXR5LCB0dXJua2V5IEVjbGlwc2UgZGlzdHJpYnV0aW9ucyAoYnVuZGxpbmcgdGhlIG5lY2Vzc2FyeSB0b29scy9jb250ZW50KSB3aGljaCBzZXJ2ZSBzcGVjaWZpYyBzZWdtZW50cyBvZiB0aGUgZW1iZWRkZWQgY29tbXVuaXR5IGRvLCBpbiBmYWN0LCBleGlzdCBvdXRzaWRlIG9mIGVjbGlwc2Uub3Jnl3doZXRoZXIgb2ZmZXJlZCBieSBzb2Z0d2FyZSB2ZW5kb3JzIHN1Y2ggYXMgV2luZCBSaXZlciBvciBieSBzaWxpY29uIHZlbmRvcnMgc3VjaCBhcyBUZXhhcyBJbnN0cnVtZW50cy4gIFRoZSA8YSBocmVmPSJodHRwOi8vd2FzY2FuYS5zb3VyY2Vmb3JnZS5uZXQvIiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgdGl0bGU9Imh0dHA6Ly93YXNjYW5hLnNvdXJjZWZvcmdlLm5ldC8iIHJlbD0ibm9mb2xsb3ciPldhc2NhbmE8L2E+IHByb2plY3QgYXQgU291cmNlRm9yZ2WWcHJvdmlkaW5nIGEgdHVybmtleSBFY2xpcHNlL0NEVCBkaXN0cmlidXRpb24gZm9yIFdpbmRvd3MgZGV2ZWxvcG1lbnSWZm9sbG93cyBhIHNpbWlsYXIgcGF0dGVybi4NCjwvcD4NCjxhIG5hbWU9IlNjb3BlIj48L2E+PGgyPiA8c3BhbiBjbGFzcz0ibXctaGVhZGxpbmUiPiBTY29wZSA8L3NwYW4+PC9oMj4NCjxwPlRvIHJlaXRlcmF0ZSwgdGhlIGdvYWwgb2YgdGhpcyBwcm9qZWN0IGlzIHRvIGVuYWJsZSBtdWx0aXBsZSBlbnRyeS1sZXZlbCBkaXN0cmlidXRpb25zIG9mIEVjbGlwc2UgdGhhdCByZXNwZWN0aXZlbHkgcHJvdmlkZSB0dXJua2V5IGVudmlyb25tZW50cyBmb3IgdmVyeSBzcGVjaWZpYyBkZXZlbG9wZXIgY29tbXVuaXRpZXMgZm91bmQgaW4gdGhlIGJyb2FkZXIgZW1iZWRkZWQgc3lzdGVtcyBtYXJrZXRwbGFjZS4gIEFzIGFuIGluaXRpYWwgb2JqZWN0aXZlLCB0aGUgcHJvamVjdCB3aWxsIGZvY3VzIHVwb24gYSA8aT5nZW5lcmljIHBhY2thZ2luZyBtZXRob2RvbG9neTwvaT4gdGhhdCBjYW4gYmUgYWRvcHRlZCBhbmQgdGFpbG9yZWQgb24gYSBjYXNlLWJ5LWNhc2UgYmFzaXMgdG8gdGhlIG5lZWRzIG9mIHNwZWNpZmljIGRpc3RyaWJ1dGlvbnMgc2VydmluZyBwYXJ0aWN1bGFyIGVtYmVkZGVkIG1hcmtldCBzZWdtZW50cy4NCjwvcD48cD5Gcm9tIGEgdGVjaG5pY2FsIHBlcnNwZWN0aXZlLCB0aGUgbmV3IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL0VxdWlub3gvcDIiIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiB0aXRsZT0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvRXF1aW5veC9wMiIgcmVsPSJub2ZvbGxvdyI+RXF1aW5veCBwMjwvYT4gcHJvdmlzaW9uaW5nIGluZnJhc3RydWN0dXJlIGFmZm9yZHMgYW4gb2J2aW91cyBzdGFydGluZyBwb2ludCBmb3IgYW55IG1ldGhvZG9sb2d5IGZvcm11bGF0ZWQgdGhyb3VnaCB0aGlzIHByb2plY3QncyBlZmZvcnRzLiAgVGhlIGNsZWFuIHNlcGFyYXRpb24gYmV0d2VlbiBpbnN0YWxsYXRpb24gbWV0YWRhdGEgYW5kIHRoZSBpbnN0YWxsYWJsZSBhcnRpZmFjdHMgdGhlbXNlbHZlcywgZm9yIGV4YW1wbGUsIHNlZW1zIHBhcnRpY3VsYXJseSByZXNwb25zaXZlIHRvIHNvbWUgb2YgdGhlIGNoYWxsZW5nZXMgb2YgYnVuZGxpbmcgbGVnYWN5IHRvb2xzL2NvbnRlbnQgb3V0bGluZWQgZWFybGllcjsgdGhlIG1ldGFkYXRhIGFuZCBhcnRpZmFjdHMsIGFzIGEgY2FzZSBpbiBwb2ludCwgbWlnaHQgcmVzcGVjdGl2ZWx5IGNhcnJ5IGRpZmZlcmVudCBsaWNlbnNlcyBhcyB3ZWxsIHJlc2lkZSBhdCBkaWZmZXJlbnQgc2l0ZXMuICBUaGUgYWJpbGl0eSB0byBoaWVyYXJjaGljYWxseSBjb21wb3NlIGluc3RhbGxhYmxlIHVuaXRzIGludG8gbGFyZ2VyIChpbnN0YWxsYWJsZSkgZW50aXRpZXMgYWxzbyBmYWNpbGlhdGVzIHJlLXVzZSBvZiBjb21tb24gc3ViLWVsZW1lbnRzIChzYXksIGEgcGFydGljdWxhciBjb21waWxlcikgYWNyb3NzIG11bHRpcGxlIHR1cm5rZXkgZGlzdHJpYnV0aW9ucyB1bHRpbWF0ZWx5IHNlcnZlZCBmcm9tIGRpZmZlcmVudCBzaXRlcy4gDQoNCjwvcD48cD5SZWNvZ25pemluZyB0aGF0IHRoZXNlIHR1cm5rZXkgZGlzdHJpYnV0aW9ucyB3aWxsIHVsdGltYXRlbHkgYmUgcHJvdmlzaW9uZWQgb3V0c2lkZSBvZiBlY2xpcHNlLm9yZ5dldmVuIHNvbWUgc3VpdGFibGUgYmFzZWxpbmUgdmVyc2lvbiBvZiB0aGUgRWNsaXBzZSBJREUgY29udGFpbmluZyBDRFQgcGx1cyBzdG9jayBEU0RQIGVsZW1lbnRzIHdvdWxkIGlkZWFsbHkgZGVsaXZlciBhIHByZS1wb3B1bGF0ZWQgbGlzdCBvZiBwMiB1cGRhdGUgc2l0ZXMgd2hpY2ggdGhlbXNlbHZlcyBtaWdodCBzZXJ2ZSBub24tRVBMIHRvb2xzL2NvbnRlbnSXdGhpcyBwcm9qZWN0IHdpbGwgcHJvYWN0aXZlbHkgZW5jb3VyYWdlIGFuZCBmYWNpbGl0YXRlIGNyZWF0aW9uIG9mIDxpPmV4dGVybmFsPC9pPiBkaXN0cmlidXRpb24gc2l0ZXMgcmVxdWlyZWQgdG8gZGVsaXZlciB0dXJua2V5IEVjbGlwc2UtYmFzZWQgZW52aXJvbm1lbnRzIHRvIGVtYmVkZGVkIHNvZnR3YXJlIGRldmVsb3BlcnM7IHN1Y2ggc2l0ZXMgYmVjb21lIG1vZGVscyBvZiB0aGUgbWV0aG9kb2xvZ3kgYW5kIGV4ZW1wbGFycyBmb3Igb3RoZXJzIHRvIGVtdWxhdGUuDQo8L3A+PHA+U3RyYW5nZSBhcyBpdCBtYXkgc2VlbSwgdGhpcyBwcm9qZWN0IG1heSA8aT5ub3Q8L2k+IG5lY2Vzc2FyaWx5IGRlbGl2ZXIgYW55IHNvdXJjZSBjb2Rll2F0IGxlYXN0IG5vdCBpbiBpdHMgaW5pdGlhbCBwaGFzZXMuIFJhdGhlciwgdGhlIHByb2plY3Qgd2lsbCBzZXJ2ZSBhcyBhIGNlbnRyYWwgbWVldGluZyBwb2ludCBmb3IgY29sbGVjdGl2ZWx5IGNyYWZ0aW5nIGEgcGFja2FnaW5nIG1ldGhvZG9sb2d5IHRoYXQgc2VydmVzIHRoZSBwcm92aXNpb25pbmcgbmVlZHMgb2YgdGhlIGVtYmVkZGVkIGNvbW11bml0aWVzIGFscmVhZHkgZW5nYWdlZCB3aXRoIHRoZSBDRFQgYW5kIERTRFAsIGJ5IGVmZmVjdGl2ZWx5IGFwcGx5aW5nIHRoZSA8aT5leGlzdGluZzwvaT4gRXF1aW5veCBwMiB0ZWNobm9sb2d5IHRvIHRoZSBzcGVjaWZpYyB1c2UtY2FzZXMgYXQgaGFuZC4gIFdpdGhvdXQgYSBkZWRpY2F0ZWQgZWNsaXBzZS5vcmcgcHJvamVjdCBwcm92aWRpbmcgc29tZSBuZWNlc3NhcnkgbGVhZGVyc2hpcCwgaG93ZXZlciwgdHVybmtleSBkaXN0cmlidXRpb25zIG9mIEVjbGlwc2Ugc2VydmluZyBlbWJlZGRlZCBzb2Z0d2FyZSBkZXZlbG9wZXJzIHdpbGwgcmVtYWluIHNwYXJzZSwgc3BvcmFkaWMsIGFuZCBzaWxvZWQuDQo8L3A+DQo8YSBuYW1lPSJPcmdhbml6YXRpb24iPjwvYT48aDI+IDxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSI+IE9yZ2FuaXphdGlvbiA8L3NwYW4+PC9oMj4NCjxwPlRoaXMgcHJvamVjdCB3b3VsZCBiZSBsZWFkIGJ5IEJvYiBGcmFua2VsLCB3aG8gcmVjZW50bHkgcmV0aXJlZCBmcm9tIFRleGFzIEluc3RydW1lbnRzIGFmdGVyIGEgbG9uZyBhbmQgcHJvZHVjdGl2ZSB0b3VyIG9mIGR1dHkgc3Bhbm5pbmcgdGhyZWUgZGVjYWRlcy4gIEJlc2lkZXMgc2VydmluZyBhcyBvbmUgb2YgdGhlIGVhcmxpZXN0IGFkdm9jYXRlcyBmb3IgbGV2ZXJhZ2luZyB0aGUgRWNsaXBzZS9DRFQgZnJhbWV3b3JrIGFzIHRoZSBiYWNrYm9uZSBmb3IgVEkncyBvd24gSURFLCBtdWNoIG9mIEJvYidzIGVmZm9ydCB0aHJvdWdob3V0IHRoaXMgZGVjYWRlIGhhcyBiZWVuIGZvY3VzZWQgdXBvbiBkZXZlbG9waW5nIGFuZCBldmFuZ2VsaXppbmcgPGEgaHJlZj0iaHR0cDovL3J0c2MuZWNsaXBzZS5vcmcvZG9jcy10aXAvTWFpbl9QYWdlIiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgdGl0bGU9Imh0dHA6Ly9ydHNjLmVjbGlwc2Uub3JnL2RvY3MtdGlwL01haW5fUGFnZSIgcmVsPSJub2ZvbGxvdyI+UlRTQzwvYT6Xc29mdHdhcmUgdGVjaG5vbG9neSB3aGljaCBlbmFibGVzIGNvbXBvbmVudC1iYXNlZCBkZXZlbG9wbWVudCBpbiBDL0MrKyB0YXJnZXRpbmcgZGl2ZXJzZSBlbWJlZGRlZCBwbGF0Zm9ybXMsIGFuZCB3aGljaCBoYXMgZm9ybWFsbHkgam9pbmVkIHRoZSBFY2xpcHNlL0RTRFAgY29tbXVuaXR5IHRocm91Z2ggYSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2RzZHAvcnRzYy8iIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiB0aXRsZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9kc2RwL3J0c2MvIiByZWw9Im5vZm9sbG93Ij5wcm9qZWN0PC9hPiBvZiBpdHMgb3duLiAgIA0KDQo8L3A+DQo8ZGw+PGR0PjxiPkluaXRpYWwgQ29tbWl0dGVyczwvYj4NCjwvZHQ+PC9kbD4NCjxkbD48ZGQ+PGk+Qm9iIEZyYW5rZWwsIEJpb3NCb2IuQml6PC9pPiAoUHJvamVjdCBMZWFkKSCXIEZvciBtb3JlIGRldGFpbHMgb24gd2hlcmUgQm9iJ3MgYmVlbiBhbmQgd2hlcmUgQm9iJ3MgaGVhZGluZywgdmlzaXQgaGlzIHdlYnNpdGUgYXQgPGEgaHJlZj0iaHR0cDovL2Jpb3Nib2IuYml6IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgdGl0bGU9Imh0dHA6Ly9iaW9zYm9iLmJpeiIgcmVsPSJub2ZvbGxvdyI+Qmlvc0JvYi5CaXo8L2E+Lg0KPC9kZD48L2RsPg0KPGRsPjxkZD48aT5NYXJ0aW4gT2Jlcmh1YmVyLCBXaW5kIFJpdmVyPC9pPiCXIE1hcnRpbiBpcyB0aGUgbGVhZCBvZiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9kc2RwL3RtIiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgdGl0bGU9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZHNkcC90bSIgcmVsPSJub2ZvbGxvdyI+RFNEUCBUYXJnZXQgTWFuYWdlbWVudCBQcm9qZWN0PC9hPiwgYW5kIGNoYWlyIG9mIHRoZSBFY2xpcHNlIEFyY2hpdGVjdHVyZSBDb3VuY2lsLiBIZSdzIGJlZW4gd29ya2luZyBmb3IgV2luZCBSaXZlciBpbiBTYWx6YnVyZywgQXVzdHJpYSBzaW5jZSAxOTk4LiBEcml2ZW4gYnkgaGlzIGRlc2lyZSBmb3IgY29uc3RhbnQgaW1wcm92ZW1lbnQsIGhlIGlzIGludm9sdmVkIGluIG1hbnkgYXJlYXMgYXJvdW5kIEVjbGlwc2UgYW5kIE9wZW4gU291cmNlLiBNYXJ0aW4gaG9sZHMgYSBNYXN0ZXIgb2YgRW5naW5lZXJpbmcgZGVncmVlIGluIFRlbGVtYXRpY3MgZnJvbSB0aGUgVW5pdmVyc2l0eSBvZiBUZWNobm9sb2d5IEdyYXovQXVzdHJpYS4NCjwvZGQ+PC9kbD4NCjxkbD48ZGQ+PGk+RGF2ZSBSdXNzbywgVGV4YXMgSW5zdHJ1bWVudHM8L2k+IJcgRGF2ZSBpcyB0aGUgbGVhZCBvZiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9kc2RwL3J0c2MvIiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgdGl0bGU9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZHNkcC9ydHNjLyIgcmVsPSJub2ZvbGxvdyI+UlRTQyBQcm9qZWN0PC9hPiBhbmQgYSBTZW5pb3IgU29mdHdhcmUgRW5naW5lZXJpbmcgYXQgVGV4YXMgSW5zdHJ1bWVudHMsIHdoZXJlIGhlIGNvbnRpbnVlcyB0byBkcml2ZSBjb21wb25lbnQgdGVjaG5vbG9neSBpbnRvIGEgbnVtYmVyIG9mIGZsYWdzaGlwIFRJIHByb2R1Y3RzLiAgQWxvbmcgd2l0aCBCb2IsIGhlIGNvLWZvdW5kZWQgU3BlY3Ryb24gTWljcm9zeXN0ZW1zIHdoZXJlIGhlIGNvLWRldmVsb3BlZCBudW1lcm91cyBlbWJlZGRlZCBzb2Z0d2FyZSBwcm9kdWN0cyB0aGF0IGNvbnRpbnVlIHRvIHRocml2ZSBpbiB0aGUgbWFya2V0IHRvZGF5LiAgRGF2ZSBob2xkcyBhIFBoRCBkZWdyZWUgaW4gTWF0aGVtYXRpY3MgZnJvbSB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhIFNhbnRhIEJhcmJhcmEuIA0KPC9kZD48L2RsPg0KPGRsPjxkZD48aT5Eb3VnIFNjaGFlZmVyLCBXaW5kIFJpdmVyPC9pPiCXIERvdWcgaXMgdGhlIGxlYWQgZm9yIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2NkdCIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHRpdGxlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2NkdCIgcmVsPSJub2ZvbGxvdyI+Q0RUIFByb2plY3Q8L2E+IGFuZCBhbiBFbmdpbmVlcmluZyBNYW5hZ2VyIGF0IFdpbmQgUml2ZXIgU3lzdGVtcywgd2hlcmUgaGUgbWFuYWdlcyB0aGUgdGVhbSBwdXR0aW5nIHRvZ2V0aGVyIFdpbmQgUml2ZXIncyBuZXh0IGdlbmVyYXRpb24gc29mdHdhcmUgZGlzdHJpYnV0aW9uIHRlY2hub2xvZ3kgYmFzZWQgb24gRWNsaXBzZSBwMi4gSGUgYWxzbyByZW1haW5zIGludm9sdmVkIHdpdGggdGhlIENEVCB3b3JraW5nIG9uIGhpcyA8YSBocmVmPSJodHRwOi8vd2FzY2FuYS5zb3VyY2Vmb3JnZS5uZXQvIiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgdGl0bGU9Imh0dHA6Ly93YXNjYW5hLnNvdXJjZWZvcmdlLm5ldC8iIHJlbD0ibm9mb2xsb3ciPldhc2NhbmE8L2E+IEVjbGlwc2UvTWluR1cgdG9vbHMgZGlzdHJpYnV0aW9uLCBhcyB3ZWxsIGFzIGdldHRpbmcgbW9yZSBhbmQgbW9yZSBpbnZvbHZlZCBpbiBvcGVuIHBsYXRmb3JtcyBmb3IgZW1iZWRkZWQgZGV2ZWxvcG1lbnQuDQo8L2RkPjwvZGw+DQoNCjxkbD48ZHQ+PGI+SW50ZXJlc3RlZCBQYXJ0aWVzPC9iPg0KPC9kdD48ZGQ+PGk+TW90b3JvbGE8L2k+DQo8L2RkPjxkZD48aT5UZXhhcyBJbnN0cnVtZW50czwvaT4NCjwvZGQ+PGRkPjxpPldpbmQgUml2ZXI8L2k+DQoNCjwvZGQ+PC9kbD4NCjxkbD48ZHQ+PGI+UHJvamVjdCBNZW50b3JzPC9iPg0KPC9kdD48ZGQ+PGk+RG91ZyBHYWZmLCBXaW5kIFJpdmVyPC9pPg0KPC9kZD48ZGQ+PGk+TWFydGluIE9iZXJodWJlciwgV2luZCBSaXZlcjwvaT4NCjwvZGQ+PC9kbD4NCjxhIG5hbWU9IlJlZmVyZW5jZXMiPjwvYT48aDI+IDxzcGFuIGNsYXNzPSJtdy1oZWFkbGluZSI+IFJlZmVyZW5jZXMgPC9zcGFuPjwvaDI+DQo8dWw+PGxpPiBpbml0aWFsIGRpc2N1c3Npb25zIG9uIHBhY2thZ2luZyBiZWdpbm5pbmcgaW4gMjAwNyBjYW4gYmUgZm91bmQgPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvRFNEUC9QYWNrYWdpbmcvQmFja2dyb3VuZCIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHRpdGxlPSJodHRwOi8vd2lraS5lY2xpcHNlLm9yZy9EU0RQL1BhY2thZ2luZy9CYWNrZ3JvdW5kIiByZWw9Im5vZm9sbG93Ij5oZXJlPC9hPg0KPC9saT48L3VsPg0KPHVsPjxsaT4gcmF3IG5vdGVzIGZyb20gYSBCb0Ygc2Vzc2lvbiBoZWxkIGF0IEVjbGlwc2VDb24gMjAwOCBjYW4gYmUgZm91bmQgPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvRFNEUC9QYWNrYWdpbmcvTWVldGluZ3MvTWFyXzE4XzIwMDhfRWNsaXBzZUNvbl9Cb0YiIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiB0aXRsZT0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvRFNEUC9QYWNrYWdpbmcvTWVldGluZ3MvTWFyXzE4XzIwMDhfRWNsaXBzZUNvbl9Cb0YiIHJlbD0ibm9mb2xsb3ciPmhlcmU8L2E+DQoNCjwvbGk+PC91bD4NCjx1bD48bGk+IHJhdyBub3RlcyBmcm9tIGEgc2VyaWVzIG9mIG1lZXRpbmdzIGhlbGQgaW4gZWFybHkgMjAwOSBjYW4gYmUgZm91bmQgPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvRFNEUC9QYWNrYWdpbmcvTWVldGluZ3MiIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiB0aXRsZT0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvRFNEUC9QYWNrYWdpbmcvTWVldGluZ3MiIHJlbD0ibm9mb2xsb3ciPmhlcmU8L2E+DQo8L2xpPjwvdWw+PGJyPg0KDQogICAgICA8L2Rpdj4NCiAgPC9kaXY+DQo8P3BocA0KCSRodG1sID0gb2JfZ2V0X2NvbnRlbnRzKCk7DQoJb2JfZW5kX2NsZWFuKCk7DQoNCgkjIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQ0KCSRBcHAtPmdlbmVyYXRlUGFnZSgkdGhlbWUsICRNZW51LCAkTmF2LCAkcGFnZUF1dGhvciwgJHBhZ2VLZXl3b3JkcywgJHBhZ2VUaXRsZSwgJGh0bWwpOw0KPz4NCg==