PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgkQXBwLT5nZXRQcm9qZWN0Q29tbW9uKCkpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnCgoJIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkjCgkjIHJjcE9TLnBocAoJIwoJIyBBdXRob3I6IAkJTmF0aGFuIEdlcnZhaXMKCSMgRGF0ZToJCQkyMDA2LTAzLTAxCgkjCgkjIERlc2NyaXB0aW9uOiBUeXBlIHlvdXIgcGFnZSBjb21tZW50cyBoZXJlIC0gdGhlc2UgYXJlIG5vdCBzZW50IHRvIHRoZSBicm93c2VyCgkjCgkjCgkjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJCgkjCgkjIEJlZ2luOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzLiAgQ2hhbmdlIHRoZXNlLiAKCSRwYWdlVGl0bGUgCQk9ICJPcGVuIFNvdXJjZSBSaWNoIGNsaWVudCBwbGF0Zm9ybSAoUkNQKSBhcHBsaWNhdGlvbnMiOwoJJHBhZ2VLZXl3b3Jkcwk9ICJSQ1AsIHJpY2gtY2xpZW50LCByaWNoLCBjbGllbnQsIGFwcGxpY2F0aW9ucywgamF2YSwgdGhpY2ssIHBsYXRmb3JtLCBwbHVnLWlucywgY2F0YWxvZ3VlIjsKCSRwYWdlQXV0aG9yCQk9ICIiOwoJCQoJIyBQYXN0ZSB5b3VyIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBFT0hUTUwgbWFya2VycyEJCgkkaHRtbCA9IDw8PEVPSFRNTAo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJsYXlvdXQuY3NzIiBtZWRpYT0ic2NyZWVuIiAvPgo8ZGl2IGlkPSJtaWRjb2x1bW4iPgoJCTxoMT4kcGFnZVRpdGxlPC9oMT4KPHA+VGhpcyBwYWdlIGNvbnRhaW5zIGxpbmtzIHRvIGFwcGxpY2F0aW9ucyBidWlsdCBvbiB0aGUgPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvaW5kZXgucGhwL1JpY2hfQ2xpZW50X1BsYXRmb3JtIiB0YXJnZXQ9Il90b3AiPkVjbGlwc2UgCiAgUmljaCBDbGllbnQgUGxhdGZvcm0gKFJDUCk8L2E+LiBUaGUgbGlzdGluZ3MgaGVyZSBhcmUgaW50ZW5kZWQgdG8gZ2V0IHlvdSBzdGFydGVkIAogIGluIGZpbmRpbmcgb3V0IG1vcmUgYWJvdXQgcHJvZHVjdHMgYW5kIHByb2plY3RzIHRoYXQgdXNlIHRoZSBFY2xpcHNlIFJDUC4gWW91IGNhbiBhbHNvIHZpZXcgYSA8YSBocmVmPSIuL2V4YW1wbGVfcmNwX2FwcGxpY2F0aW9uc192Mi5wZGYiPnBkZiBwcmVzZW50YXRpb248L2E+IG9mICBSQ1AgYmFzZWQgYXBwbGljYXRpb25zLiA8L3A+Cgo8cD5XZSBoYXZlIGFsc28gcHJlcGFyZWQgc29tZSBjYXNlIHN0dWRpZXMgb2Ygb3JnYW5pemF0aW9ucyB0aGF0IGFyZSB1c2luZyBFY2xpcHNlIFJDUC4gSG9wZWZ1bGx5IGl0IHdpbGwgcHJvdmlkZSB5b3UgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgYmVuZWZpdHMgZnJvbSB1c2luZyBFY2xpcHNlIFJDUCBmb3IgeW91ciBhcHBsaWNhdGlvbiBwbGF0Zm9ybS4gPC9wPgoKPHA+V2UnZCBsaWtlIHRoZXNlIHBhZ2VzIHRvIGJlIHVzZWZ1bCB0byB5b3UgLSBzbyBwbGVhc2UgPGEgaHJlZj0ibWFpbHRvOm5ld3NAZWNsaXBzZS5vcmciPmVtYWlsPC9hPiAKICB1cyB5b3VyIHBvaW50ZXJzIGFuZCBjb21tZW50cyEgPC9wPgoKCgo8ZGl2IGNsYXNzPSJob21laXRlbTNjb2wiPgoJPGgzPk9wZW4gU291cmNlIFJDUCBBcHBsaWNhdGlvbnM8L2gzPgoJPGRpdiBjbGFzcz0icmNwVGh1bWJuYWlsIj4KCTx0YWJsZT4KCQkJCSA8dHI+CgkJCQkgCQkgPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjAwIj48YSBocmVmPSJpbWFnZXMvYmlvY2xpcHNlLnBuZyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJpbWFnZXMvYmlvY2xpcHNlVGh1bWIucG5nIj48YnI+PGltZyBzcmM9ImltYWdlcy96b29tLmdpZiIgc3R5bGU9InBhZGRpbmctdG9wOjJweDsiPiBFbmxhcmdlIFNjcmVlbnNob3QgPC9hPjwvdGQ+CgkJCQkJCSA8dGQgdmFsaWduPSJ0b3AiPiA8Yj5CaW9jbGlwc2U8L2I+PGJyPgoJCQkJCQkgCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5iaW9jbGlwc2UubmV0L2luZGV4LnBocCIgdGFyZ2V0PSJfYmxhbmsiPkJpb2NsaXBzZSBIb21lcGFnZTxicj48L2E+CgkJCQkJCQkJCVRoZSBCaW9jbGlwc2UgcHJvamVjdCBpcyBhaW1lZCBhdCBjcmVhdGluZyBhIEphdmEtYmFzZWQsIG9wZW4gc291cmNlLCB2aXN1YWwgcGxhdGZvcm0gZm9yIGNoZW1vLSBhbmQgYmlvaW5mb3JtYXRpY3MgYmFzZWQgb24gdGhlIEVjbGlwc2UgUkNQLiAgVGhlIGN1cnJlbnQgcGx1Zy1pbnMgaW5jbHVkZSAzRC12aXN1bGl6YXRpb24gb2YgbW9sZWN1bGVzIGFuZCBwcm90ZWlucywgMkQtZWRpdGluZyBvZiBzbWFsbCBtb2xlY3VsZXMsIE5NUi1TcGVjdHJhIHZpc3VhbGl6YXRpb24gYW5kIGFuYWx5c2lzLCBhcyB3ZWxsIGFzIGJhc2ljIFNlcXVlbmNlIGVkaXRpbmcuIFdvcmsgaXMgYWxzbyBiZWluZyBkb25lIHRvIGRldmVsb3AgcGx1Zy1pbnMgZm9yIHBoeWxvZ2VuZXRpYyBhbmFseXNpcywgbXVsdGlwbGUgYWxpZ25tZW50cywgbW9sZWN1bGFyIGRhdGFiYXNlcywgYSAzRC1tb2RlbCBidWlsZGVyLCBhbmQgUVNBUi1hbmFseXNpcy48L3RkPgoJCQkJIDwvdHI+Cgk8L3RhYmxlPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJyY3BUaHVtYm5haWwiPgoJPHRhYmxlPgoJCQkJIDx0cj4KCQkJCSAJCSA8dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyMDAiPjxhIGhyZWY9ImltYWdlcy9icmFpbkJveC5wbmciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaW1hZ2VzL2JyYWluQm94VGh1bWIucG5nIj48YnI+PGltZyBzcmM9ImltYWdlcy96b29tLmdpZiIgc3R5bGU9InBhZGRpbmctdG9wOjJweDsiPiBFbmxhcmdlIFNjcmVlbnNob3QgPC9hPjwvdGQ+CgkJCQkJCSA8dGQgdmFsaWduPSJ0b3AiPiA8Yj5CcmFpbkJveDwvYj4gLSBNYXRldXMgUGltZW50YTxicj4KCQkJCQkJIAkJCTxhIGhyZWY9Imh0dHA6Ly9icmFpbmJveC5zb3VyY2Vmb3JnZS5uZXQvIiB0YXJnZXQ9Il9ibGFuayI+QnJhaW5Cb3ggSG9tZXBhZ2U8YnI+PC9hPgoJCQkJCQkJCQlCcmFpbkJveCBpcyBhIHNpbXVsYXRpb24gdG9vbGJveCwgc2ltaWxhciB0byBNYXRMYWIgU2ltdWxpbmsuIEl0IHNpbXVsYXRlcyBwaHlzaWNzIGFuZCBtYXRoZW1hdGljYWwgbW9kZWxzIGJhc2VkIG9uIGEgYmxvY2sgZGlhZ3JhbSBkZXNjcmlwdGlvbi4gQnJhaW5Cb3ggaXMgV2ViIFNlcnZpY2VzIGNvbXBhdGlibGUsIHByb3ZpZGluZyBhc3luY2hyb25vdXMgc2ltdWxhdGlvbnMgYnkgdXNpbmcgYSBKMkVFIGJhc2VkIHNlcnZlci4gIEJlc2lkZXMsIEJyYWluQm94IHByb3ZpZGVzIGEgY29tcGxldGUgdXNlciBpbnRlcmZhY2UgdG8gaGVscCBjcmVhdGUgdGhlIGJsb2NrIGRpYWdyYW1zIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBzaW11bGF0aW9uIHJlc3VsdHMuIEl0IGFsc28gcHJvdmlkZXMgYSBidWlsZC1pbiBKYXZhU2NyaXB0IGxhbmd1YWdlIGFuZCBhIGxvdCBvZiBleHRlbnNpb25zIHBvaW50cyBmb3IgZGV2ZWxvcGVycyB0byBjcmVhdGUgdGhlaXIgb3duIGN1c3RvbWl6ZWQgdG9vbGJveGVzPC90ZD4KCQkJCSA8L3RyPgoJPC90YWJsZT4KCTwvZGl2PgkKCTxkaXYgY2xhc3M9InJjcFRodW1ibmFpbCI+Cgk8dGFibGU+CgkJCQkgPHRyPgoJCQkJIAkJIDx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjIwMCI+PGEgaHJlZj0iaW1hZ2VzL2VjbGlwc2VUcmFkZXIuanBnIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImltYWdlcy9lY2xpcHNlVHJhZGVyVGh1bWIuanBnIj48YnI+PGltZyBzcmM9ImltYWdlcy96b29tLmdpZiIgc3R5bGU9InBhZGRpbmctdG9wOjJweDsiPiBFbmxhcmdlIFNjcmVlbnNob3QgPC9hPjwvdGQ+CgkJCQkJCSA8dGQgdmFsaWduPSJ0b3AiPiA8Yj5FY2xpcHNlIFRyYWRlcjwvYj4gLSBNYXJjbyBNYWNjYWZlcnJpPGJyPgoJCQkJCQkgCQkJPGEgaHJlZj0iaHR0cDovL2VjbGlwc2V0cmFkZXIuc291cmNlZm9yZ2UubmV0IiB0YXJnZXQ9Il9ibGFuayI+RWNsaXBzZSBUcmFkZXIgSG9tZXBhZ2U8YnI+PC9hPgoJCQkJCQkJCQlFY2xpcHNlIFRyYWRlciBpcyBhIHNldCBvZiBwbHVnLWlucyBmb3IgdGhlIEVjbGlwc2UgUkNQIGRlZGljYXRlZCB0byB0aGUgYnVpbGRpbmcgb2YgYW4gb25saW5lIHN0b2NrIHRyYWRpbmcgc3lzdGVtLiBJdCBmZWF0dXJlcyBzaGFyZXMgcHJpY2luZyB3YXRjaCwgaW50cmFkYXkgYW5kIGhpc3RvcnkgY2hhcnRzIHdpdGggdGVjaG5pY2FsIGFuYWx5c2lzIGluZGljYXRvcnMsIGxldmVsIElJL21hcmtldCBkZXB0aCB2aWV3LCBuZXdzIHdhdGNoaW5nLCBhbmQgaW50ZWdyYXRlZCB0cmFkaW5nLjwvdGQ+CgkJCQkgPC90cj4KCTwvdGFibGU+Cgk8L2Rpdj4JCgk8ZGl2IGNsYXNzPSJyY3BUaHVtYm5haWwiPgoJPHRhYmxlPgoJCQkJIDx0cj4KCQkJCSAJCSA8dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyMDAiPgk8YSBocmVmPSJpbWFnZXMvZ3VtVHJlZS5qcGciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaW1hZ2VzL2d1bVRyZWVUaHVtYi5qcGciPjxicj48aW1nIHNyYz0iaW1hZ2VzL3pvb20uZ2lmIiBzdHlsZT0icGFkZGluZy10b3A6MnB4OyI+IEVubGFyZ2UgU2NyZWVuc2hvdCA8L2E+PC90ZD4KCQkJCQkJIDx0ZCB2YWxpZ249InRvcCI+IDxiPkd1bVRyZWU8L2I+IC0gQXVzdHJhbGlhbiBOdWNsZWFyIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgT3JnYW5pc2F0aW9uIChBTlNUTykgVG9ueSBMYW0sIEFuZHkgR290eiwgRmVyZGkgRnJhbmNlc2NoaW5pLCBQYXVsIEhhdGhhd2F5LCBOaWNrIEhhdXNlciA8YnI+CgkJCQkJCSAJCQk8YSBocmVmPSJodHRwOi8vZ3VtdHJlZS5zb3VyY2Vmb3JnZS5uZXQvd2lraSIgdGFyZ2V0PSJfYmxhbmsiPkd1bXRyZWUgSG9tZXBhZ2U8L2E+PGJyPgoJCQkJCQkJCQlHdW1UcmVlIGlzIGFuIG9wZW4gc291cmNlIG11bHRpLXBsYXRmb3JtIHNjaWVudGlmaWMgd29ya2JlbmNoIGZvciBwZXJmb3JtaW5nIHNjaWVudGlmaWMgZXhwZXJpbWVudCB1bmRlciBhIHNlcnZlci1jbGllbnQgZW52aXJvbm1lbnQuIEl0IHByb3ZpZGVzIGVhc3ktdG8tdXNlIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZSBmb3IgaW5zdHJ1bWVudCBkYXRhIGFjcXVpc2l0aW9uLCBvbmxpbmUgb3Igb2ZmbGluZSBkYXRhIHZpc3VhbGlzYXRpb24gYW5kIGFuYWx5c2lzLiBUaGUgYWltIG9mIEd1bVRyZWUgaXMgdG8gcHJvdmlkZSBhIGhpZ2hseSBJbnRlZ3JhdGVkIFNjaWVudGlmaWMgRXhwZXJpbWVudCBFbnZpcm9ubWVudCAoSVNFRSksIGFsbG93aW5nIGludGVyYWN0aW9uIGJldHdlZW4gZGlmZmVyZW50IGNvbXBvbmVudHMgd2l0aGluIHRoZSB3b3JrYmVuY2guIEd1bVRyZWUgaXMgYmVpbmcgYWRhcHRlZCB0byBzZXZlcmFsIGluc3RydW1lbnQgY29udHJvbCBzZXJ2ZXIgc3lzdGVtcyBpbmNsdWRpbmcgVEFOR08sIEVQSUNTIGFuZCBTSUNTLCB3aXRoIHNpbXBsZS10by1leHRlbmQgbW9kZWwgZm9yIHNvZnR3YXJlIGRldmVsb3BlcnMuIEN1cnJlbnQgZGV2ZWxvcG1lbnRzIGluY2x1ZGUgYWNxdWlzaXRpb24sIGNvbnRyb2wgYW5kIGFuYWx5c2lzIG9uIG5ldXRyb24gYW5kIHN5bmNocm90cm9uIGJlYW1saW5lcy4gSW4gdGhlIGZ1dHVyZSBpdCB3aWxsIGJlIGV4dGVuZGVkIHRlbGVzY29wZSBjb250cm9sIGFuZCBvdGhlciBzY2llbnRpZmljIGluc3RydW1lbnRzIHdpdGggZGlzdHJpYnV0ZWQgaGFyZHdhcmUuPC90ZD4KCQkJCSA8L3RyPgoJPC90YWJsZT4KCTwvZGl2PgkJCgk8ZGl2IGNsYXNzPSJyY3BUaHVtYm5haWwiPgoJPHRhYmxlPgoJCQkJIDx0cj4KCQkJCSAJCSA8dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyMDAiPjxhIGhyZWY9ImltYWdlcy9qQ29tbWFuZGVyLmpwZyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJpbWFnZXMvakNvbW1hbmRlclRodW1iLmpwZyI+PGJyPjxpbWcgc3JjPSJpbWFnZXMvem9vbS5naWYiIHN0eWxlPSJwYWRkaW5nLXRvcDoycHg7Ij4gRW5sYXJnZSBTY3JlZW5zaG90IDwvYT4gPC90ZD4KCQkJCQkJIDx0ZCB2YWxpZ249InRvcCI+IDxiPmpDb21tYW5kZXI8L2I+PGJyPgoJCQkJCQkgCQkJPGEgaHJlZj0iaHR0cDovL2pjb21tYW5kZXIuc291cmNlZm9yZ2UubmV0LyIgdGFyZ2V0PSJfYmxhbmsiPmpDb21tYW5kZXIgSG9tZXBhZ2U8L2E+PGJyPgoJCQkJCQkJCQlKQ29tbWFuZGVyIGlzIGEgbmV4dCBnZW5lcmF0aW9uIGZpbGUgbWFuYWdlciB3aXRoIGEgcG93ZXJmdWwgdGFiIGJhc2VkIHVzZXIgaW50ZXJmYWNlLiBCZWluZyBtdWx0aS1wbGF0Zm9ybSBhbmQgZGlzdHJpYnV0ZWQgdW5kZXIgYW4gb3Blbi1zb3VyY2UgbGljZW5zZSBpdCBpcyBmcmVlbHkgdXNhYmxlIG9uIHZpcnR1YWxseSBhbnkgcGxhdGZvcm0gYW5kIG9wZXJhdGluZyBzeXN0ZW0uIEl0IGlzIHN0aWxsIHVuZGVyIGhlYXZ5IGRldmVsb3BtZW50IGFuZCBhY3RpdmVseSBzZWVraW5nIGNvbnRyaWJ1dG9ycy48L3RkPgoJCQkJIDwvdHI+Cgk8L3RhYmxlPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJyY3BUaHVtYm5haWwiPgoJPHRhYmxlPgoJCQkJIDx0cj4KCQkJCSAJCSA8dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyMDAiPjxhIGhyZWY9ImltYWdlcy9qZmlyZS5wbmciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaW1hZ2VzL2pmaXJlVGh1bWIucG5nIj48YnI+PGltZyBzcmM9ImltYWdlcy96b29tLmdpZiIgc3R5bGU9InBhZGRpbmctdG9wOjJweDsiPiBFbmxhcmdlIFNjcmVlbnNob3QgPC9hPiA8L3RkPgoJCQkJCQkgPHRkIHZhbGlnbj0idG9wIj4gPGI+akZpcmU8L2I+PGJyPgoJCQkJCQkgCQkJPGEgaHJlZj0iaHR0cDovL2pjb21tYW5kZXIuc291cmNlZm9yZ2UubmV0LyIgdGFyZ2V0PSJfYmxhbmsiPmpGaXJlIEhvbWVwYWdlPC9hPjxicj4KCQkJCQkJCQkJSkZpcmUgaXMgYSBmbGV4aWJsZSBPcGVuIFNvdXJjZSBFUlAgZnJhbWV3b3JrIGJhc2VkIEoyRUUsIEpETyBhbmQgdGhlIEVjbGlwc2UgUkNQLiBJdCBtYW5hZ2VzIGFsbCBjb21tb24gdGFza3MgYW4gRVJQIHN5c3RlbSBhaW1zLCBsaWtlIHRoZSBkaXN0cmlidXRpb24gb2YgcHJvZHVjdHMsIGN1c3RvbWVyIHJlbGF0aW9uc2hpcCBtYW5hZ2VtZW50IGFuZCBhY2NvdW50aW5nLiBUaGUgZnJhbWV3b3JrIGlzIGRlc2lnbmVkIHRvIGJlIGhpZ2hseSBjdXN0b21pemFibGUgYW5kIHByb3ZpZGVzIHRoZSBjb21tb24gYmFzZSBmb3IgZGV2ZWxvcGVycyBpbiBuZWVkIG9mIGFuIEVSUCBzeXN0ZW0gc3BlY2lhbGl6ZWQgZm9yIHRoZWlyIGJ1c2luZXNzLiBPdXRzdGFuZGluZyBmZWF0dXJlcyBvZiB0aGUgSkZpcmUgUkNQIGNsaWVudCBhcmUgYSBjbGFzc3NoYXJpbmcgcGx1Z2luIGFsbG93aW5nIHJlbW90ZSBjbGFzc2xvYWRpbmcgZnJvbSB0aGUgSkZpcmUgc2VydmVyLCBpbnRlZ3JhdGlvbiB3aXRoIG1hbnkgRWNsaXBzZSBwcm9qZWN0cyBsaWtlIEdFRiBhbmQgQklSVCBvciBhIFdvcmtiZW5jaC13aWRlIGV4dGVuZGFibGUgZXhjZXB0aW9uIGhhbmRsZXIuIEdVSSBhbmQgY2xpZW50c2lkZSBvYmplY3RzIGZvciBtb3N0IGJhc2ljIGZlYXR1cmVzIGFyZSBhbHJlYWR5IGluY2x1ZGVkIGluIHRoZSBjb3JlIHN5c3RlbSwgdGhpcyBjb21wcmlzZXMgb3JnYW5pc2F0aW9uIGFuZCB1c2VyIG1hbmFnZW1lbnQsIGJhc2ljIHByb2R1Y3QgZGVmaW5pdGlvbiwgdHJhZGluZyBhbmQgbWFueSBtb3JlLiBUaGV5IGNhbiBjYW4gYmUgcmV1c2VkIG9yIGN1c3RvbWl6ZWQgdmlhIGV4dGVuc2lvbi1wb2ludHMgaW4gb3JkZXIgdG8gYnVpbGQgbmV3IGFwcGxpY2F0aW9ucyB0YWlsb3JlZCB0byBtYW55IGtpbmRzIG9mIGJ1c2luZXNzZXMuIDwvdGQ+CgkJCQkgPC90cj4KCTwvdGFibGU+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InJjcFRodW1ibmFpbCI+Cgk8dGFibGU+CgkJCQkgPHRyPgoJCQkJIAkJPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjAwIj48YSBocmVmPSJpbWFnZXMvakxpYnJhcnkucG5nIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImltYWdlcy9qTGlicmFyeVRodW1iLnBuZyI+IDxicj48aW1nIHNyYz0iaW1hZ2VzL3pvb20uZ2lmIiBzdHlsZT0icGFkZGluZy10b3A6MnB4OyI+IEVubGFyZ2UgU2NyZWVuc2hvdCA8L2E+PC90ZD4KCQkJCQkJIDx0ZCB2YWxpZ249InRvcCI+IDxiPmpMaWJyYXJ5PC9iPiAtIE1hcnRpbiBQZXJleiBNYXJp8WFuIDxicj4KCQkJCQkJIAkJCTxhIGhyZWY9Imh0dHA6Ly9qbGlicmFyeS5zb3VyY2Vmb3JnZS5uZXQvIiB0YXJnZXQ9Il9ibGFuayI+akxpYnJhcnkgSG9tZXBhZ2U8L2E+PGJyPgoJCQkJCQkJCQlqTGlicmFyeSBpcyBhbiBPcGVuIFNvdXJjZSBDTVMgc3lzdGVtIGRldmVsb3BlZCB3aXRoIEVjbGlwc2UgUmljaCBDbGllbnQgcGxhdGZvcm0uIEl0IGhhcyBhIHJpY2ggc2V0IG9mIGZlYXR1cmVzOiByZW1vdGUvbG9jYWwgcmVwb3NpdG9yaWVzLCBtZXRhZGF0YSwgbmF0aXZlIGVkaXRvcnMgc3VwcG9ydCAoYWNyb2JhdCwgTVMgV29yZCwgT3Blbk9mZmljZSwgLi4uKSwgSFRNTC9YTUwgZWRpdG9yIHdpdGggc3ludGF4IGhpZ2hsaWdodGluZywgZ3JhcGhpY2FsIHJlbGF0aW9uIGJyb3dzZXIsIGNhdGVnb3JpZXMsIGZhdm9yaXRlcywgd2ViIHNwaWRlciB0byBkb3dubG9hZCBvdXIgcHJlZmVycmVkIHdlYiBwYWdlcywgZXRjLiBDdXJyZW50bHkgdGhlIHdlYiBpcyBpbiBTcGFuaXNoLCBidXQgdGhlIHByb2dyYW0gaXMgaW50ZXJuYXRpb25hbGl6ZWQgdG8gc3VwcG9ydCBFbmdsaXNoIGFuZCBTcGFuaXNoLiBXaW5kb3dzIGFuZCBMaW51eCBwbGF0Zm9ybXMgYXJlIHN1cHBvcnRlZC48L3RkPgoJCQkJIDwvdHI+Cgk8L3RhYmxlPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0icmNwVGh1bWJuYWlsIj4KCTx0YWJsZT4KCQkJCSA8dHI+CgkJCQkgCQkgPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjAwIj48YSBocmVmPSJpbWFnZXMvalRyYWNrQW5kRmllbGQuanBnIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImltYWdlcy9qVHJhY2tBbmRGaWVsZFRodW1iLmpwZyI+PGJyPjxpbWcgc3JjPSJpbWFnZXMvem9vbS5naWYiIHN0eWxlPSJwYWRkaW5nLXRvcDoycHg7Ij4gRW5sYXJnZSBTY3JlZW5zaG90IDwvYT4gPC90ZD4KCQkJCQkJIDx0ZCB2YWxpZ249InRvcCI+IDxiPkpUcmFja0FuZEZpZWxkPC9iPiAtIFNpbW9uIE1hcnRpbmVsbGkgPGJyPgoJCQkJCQkgCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5qdGFmLmNoLyIgdGFyZ2V0PSJfYmxhbmsiPkpUcmFja0FuZEZpZWxkIEhvbWVwYWdlPC9hPjxicj4KCQkJCQkJCQkJSlRyYWNrQW5kRmllbGQgaXMgYW4gT3BlbiBTb3VyY2UgRWNsaXBzZSBSaWNoIENsaWVudCB0aGF0IG1hbmFnZXMgdHJhY2sgYW5kIGZpZWxkIGV2ZW50cy4gWW91IGNhbiBlZGl0IHBhcnRpY2lwYW50cywgY2F0ZWdvcmllcywgZGlzY2lwbGluZXMgYW5kIGNsdWJzLiBFdmVuIHRoZSBmb3JtdWxhcyBmb3IgcG9pbnQgY2FsY3VsYXRpb24gYXJlIGNvbmZpZ3VyYWJsZSAoZm9sbG93aW5nIHRoZSBJQUFGIGFuZCBTTFYgc3RhbmRhcmRzKS4gRm9ybXVsYXMgY2FuIGJlIGltcG9ydGVkIGFuZCBleHBvcnRlZC4gRXZlcnkgcGFydGljaXBhbnQgY2FuIGhhdmUgdXAgdG8gdGVuIGZyZWUgY29uZmlndXJhYmxlIGRpc2NpcGxpbmVzLiBUaGUgYnVsbGV0aW5zIG9mIHRoZSBwYXJ0aWNpcGFudHMgYW5kIHRoZSByYW5rIGxpc3QgY2FuIGJlIGNvbmZpZ3VyZWQgYW5kIGFyZSBnZW5lcmF0ZWQgYXMgUERGLiBPdGhlciBmZWF0dXJlcyBzdWNoIGFzIGRpc2NpcGxpbmVzIHJhbmsgbGlzdHMgYXJlIGNvbWluZyBzb29uLiBKVHJhY2sgYW5kIEZpZWxkIGlzIGN1cnJlbnRseSB0cmFuc2xhdGVkIGluIEVuZ2xpc2ggYW5kIEdlcm1hbi48L3RkPgoJCQkJIDwvdHI+Cgk8L3RhYmxlPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0icmNwVGh1bWJuYWlsIj4KCTx0YWJsZT4KCQkJCSA8dHI+CgkJCQkgCQkgPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjAwIj48YSBocmVmPSJpbWFnZXMva2FseXBzby5wbmciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaW1hZ2VzL2thbHlwc29UaHVtYi5wbmciPjxicj48aW1nIHNyYz0iaW1hZ2VzL3pvb20uZ2lmIiBzdHlsZT0icGFkZGluZy10b3A6MnB4OyI+IEVubGFyZ2UgU2NyZWVuc2hvdCA8L2E+IDwvdGQ+CgkJCQkJCSA8dGQgdmFsaWduPSJ0b3AiPiA8Yj5LYWx5cHNvPC9iPiAtIEJqb2VybnNlbiBCZXJhdGVuZGU8YnI+CgkJCQkJCSAJCQk8YSBocmVmPSJodHRwOi8vaWJwbS5iam9lcm5zZW4uZGUva2FseXBzby9pbmRleC5waHAiIHRhcmdldD0iX2JsYW5rIj5LYWx5cHNvIEhvbWVwYWdlPC9hPjxicj4KCQkJCQkJCQkJS2FseXBzbyBpcyBhIG1vZGVybiBzb2Z0d2FyZSBwYWNrYWdlIGZvciBudW1lcmljYWwgbW9kZWxsaW5nLCBjdXJyZW50bHkgYXZhaWxhYmxlIGZvciBoeWRyb2xvZ2ljYWwgYW5kIGh5ZHJhdWxpYyBtb2RlbGxpbmcsIGZsb29kIGZvcmVjYXN0aW5nLCBhbmQgZmxvb2QgcmlzayBhc3Nlc3NtZW50LiBJdCBwcm92aWRlcyBhIGZyYW1ld29yayBmb3IgZWRpdGluZyBtb2RlbCBkYXRhIGFuZCBydW5uaW5nIG1vZGVsIGNvbXB1dGF0aW9ucyB3aXRoaW4gYSBob21vZ2Vub3VzIFVzZXIgSW50ZXJmYWNlLiBUd28ga2V5IGZlYXR1cmVzIGFyZSBEZXNrdG9wLUdJUyBhbmQgRGVza3RvcC1PYnNlcnZhdGlvbiZNZWFzdXJlbWVudC4gVGhlIGNsb3NlIGNvdXBsaW5nIG9mIGdlb3NwYXRpYWwgYW5kIG1lYXN1cmVtZW50IGRhdGEgaW4gS2FseXBzbyBhbGxvd3MgLiBUaGUgS2FseXBzbyBGcmFtZXdvcmsgc3VwcG9ydHMgdGhlIGludGVncmF0aW9uIG9mIG51bWVyaWNhbCBtb2RlbHMganVzdCBieSBzcGVjaWZ5aW5nIHRoZWlyIGRhdGEtc3RydWN0dXJlIGFuZCB0aGVpciBpbnB1dC9vdXRwdXQgYmVoYXZpb3VyIGFwcGx5aW5nIHN0YW5kYXJkcyBvZiB0aGUgT3BlbiBHZW9zcGF0aWFsIENvbnNvcnRpdW0gKE9HQykuIEFueSBsZWdhY3kgbW9kZWxsaW5nIHByb2dyYW0gaXMgYSBwb3RlbnRpYWwgY2FuZGlkYXRlIGZvciBiZWluZyBwbHVnZ2VkIGluIEthbHlwc28gd2l0aCBtaW5pbWFsIHByb2dyYW1taW5nIGVmZm9ydC4gU3BlY2lmaWMgZnVuY3Rpb25hbGl0eSBzdWNoIGFzIGNvbXB1dGF0aW9uLCBkYXRhIG1hbmFnZW1lbnQgYW5kIHVzZXIgbWFuYWdlbWVudCBpcyBkZWxpdmVyZWQgdGhyb3VnaCB3ZWIgc2VydmljZXMgZnJvbSB0aGUgc2VydmVyIGFwcGxpY2F0aW9uLjwvdGQ+CgkJCQkgPC90cj4KCTwvdGFibGU+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InJjcFRodW1ibmFpbCI+Cgk8dGFibGU+CgkJCQkgPHRyPgoJCQkJIAkJPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjAwIj48YSBocmVmPSJpbWFnZXMvb2ZmaWNlSW50ZWdyYXRpb25FZGl0b3IuanBnIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImltYWdlcy9vZmZpY2VJbnRlZ3JhdGlvbkVkaXRvclRodW1iLmpwZyI+PGJyPjxpbWcgc3JjPSJpbWFnZXMvem9vbS5naWYiIHN0eWxlPSJwYWRkaW5nLXRvcDoycHg7Ij4gRW5sYXJnZSBTY3JlZW5zaG90IDwvYT4gPC90ZD4KCQkJCQkJIDx0ZCB2YWxpZ249InRvcCI+IDxiPk5PQSBPZmZpY2UgSW50ZWdyYXRpb24gRWRpdG9yPC9iPjxicj4KCQkJCQkJIAkJCTxhIGhyZWY9Imh0dHA6Ly91Ymlvbi5pb24uYWcvcGxvbmVzb2Z0d2FyZWNlbnRlci8wMDNvZmZpY2VpbnRlZ3JhdGlvbmVkaXRvciIgdGFyZ2V0PSJfYmxhbmsiPk5PQSBPZmZpY2UgSW50ZWdyYXRpb24gRWRpdG9yIEhvbWVwYWdlPC9hPjxicj4KCQkJCQkJCQkJV2l0aCB0aGUgTk9BIE9mZmljZSBJbnRlZ3JhdGlvbiBFZGl0b3IgUGx1Z2luIHlvdSBjYW4gZXh0ZW5kIHlvdXIgRWNsaXBzZSBJREUgb3IgUmljaCBDbGllbnQgQXBwbGljYXRpb24gd2l0aCB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZnJlZSBPZmZpY2UgU3VpdGUgT3Blbk9mZmljZS5vcmcuIFRoaXMgcGx1Zy1pbiB3aWxsIHByb3ZpZGUgYW4gZWRpdG9yIGluIG9yZGVyIHRvIG1vZGlmeSBhbGwgZG9jdW1lbnQgdHlwZXMgb2YgT3Blbk9mZmljZS5vcmcgaW4gYSByZWFsIGludGVncmF0ZWQgZW52aXJvbm1lbnQuIEluIGFkZGl0aW9uIHlvdSB3aWxsIGdldCBzZXZlcmFsIHdpemFyZHMgZm9yIHRoZSBjcmVhdGlvbiBvZiBuZXcgT3Blbk9mZmljZS5vcmcgZG9jdW1lbnRzLjwvdGQ+CgkJCQkgPC90cj4KCTwvdGFibGU+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InJjcFRodW1ibmFpbCI+Cgk8dGFibGU+CgkJCQkgPHRyPgoJCQkJIAkJIDx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjIwMCI+CTxhIGhyZWY9ImltYWdlcy9Ob21hZFBJTS5wbmciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaW1hZ2VzL05vbWFkUElNVGh1bWIucG5nIj48YnI+PGltZyBzcmM9ImltYWdlcy96b29tLmdpZiIgc3R5bGU9InBhZGRpbmctdG9wOjJweDsiPiBFbmxhcmdlIFNjcmVlbnNob3QgPC9hPiA8L3RkPgoJCQkJCQkgPHRkIHZhbGlnbj0idG9wIj4gPGI+Tm9tYWQgUElNPC9iPiAtIExhcnMgR3JhbW1lbCAgPGJyPgoJCQkJCQkgCQkJPGEgaHJlZj0iaHR0cDovL25vbWFkcGltLnNvdXJjZWZvcmdlLm5ldC8iIHRhcmdldD0iX2JsYW5rIj5Ob21hZCBQSU0gSG9tZXBhZ2U8L2E+PGJyPgoJCQkJCQkJCQlOb21hZCBQSU0gaXMgYW4gRWNsaXBzZSByaWNoIGNsaWVudCBwbGF0Zm9ybSBiYXNlZCBwZXJzb25hbCBpbmZvcm1hdGlvbiBtYW5hZ2VyIChQSU0pLiBDdXJyZW50bHksIHRoZXJlIGFyZSBtb2R1bGVzIGZvciBub3RlcywgZGlhcnksIGNvbnRhY3RzIGFuZCBtb25leSBtYW5hZ2VtZW50LCBpbiBhZGRpdGlvbiB0byBhIGJhc2ljIHdvcmthcmVhIHdoZXJlIGEgdGV4dCBjYW4gYmUgd3JpdHRlbi48L3RkPgoJCQkJIDwvdHI+Cgk8L3RhYmxlPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJyY3BUaHVtYm5haWwiPgoJPHRhYmxlPgoJCQkJIDx0cj4KCQkJCSAJCSA8dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyMDAiPgk8YSBocmVmPSJpbWFnZXMvcGFwZXJEb2cuanBnIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImltYWdlcy9wYXBlckRvZ1RodW1iLmpwZyI+PGJyPjxpbWcgc3JjPSJpbWFnZXMvem9vbS5naWYiIHN0eWxlPSJwYWRkaW5nLXRvcDoycHg7Ij4gRW5sYXJnZSBTY3JlZW5zaG90IDwvYT4gPC90ZD4KCQkJCQkJIDx0ZCB2YWxpZ249InRvcCI+IDxiPlBhcGVyRG9nPC9iPjxicj4KCQkJCQkJIAkJCTxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvcGFwZXJkb2cvIiB0YXJnZXQ9Il9ibGFuayI+UGFwZXJEb2cgSG9tZXBhZ2U8L2E+PGJyPgoJCQkJCQkJCQlQYXBlckRvZyBpcyBhIEoyRUUtYmFzZWQgY2xpZW50LXNlcnZlci1zeXN0ZW0gZm9yIHZlcnNpb25pbmcsIG1hbmFnaW5nIGFuZCBhcmNoaXZpbmcgb2YgZG9jdW1lbnRzIGFuZCBvdGhlciBmaWxlcy4gUGFwZXJEb2cgcHJvdmlkZXMgYSBmdWxsLXRleHQgc2VhcmNoIGJhc2VkIG9uIEFwYWNoZSBMdWNlbmUgZm9yIG1vc3QgY29tbW9uIGZpbGUtZm9ybWF0cy4gSXQgc2VydmVzIGFzIGEgdGVjaG5pY2FsIGRlbW9uc3RyYXRpb24gZm9yIGltcGxlbWVudGluZyBiZXN0LXByYWN0aWNlIGFwcHJvYWNoZXMgdG8gY29tYmluZSBhbiBSQ1AtYXBwbGljYXRpb24gd2l0aCBhIEoyRUUgY29udGFpbmVyIChKQm9zcykgYmFja2VuZC48L3RkPgoJCQkJIDwvdHI+Cgk8L3RhYmxlPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJyY3BUaHVtYm5haWwiPgoJPHRhYmxlPgoJCQkJIDx0cj4KCQkJCSAJCSA8dGQgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyMDAiPjwvdGQ+CgkJCQkJCSA8dGQgdmFsaWduPSJ0b3AiPiA8Yj5SZWxhdGlvbnM8L2I+IC0gQmVubm8gTHV0aGlnZXI8YnI+CgkJCQkJCSAJCQk8YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL3JlbGF0aW9ucy1yY3AvIiB0YXJnZXQ9Il9ibGFuayI+UmVsYXRpb25zIEhvbWVwYWdlPC9hPjxicj4KCQkJCQkJCQkJUmVsYXRpb25zIGlzIGFuIEVjbGlwc2UgUkNQIGFwcGxpY2F0aW9uIGZvciB0aGUgdmlzdWFsaXphdGlvbiBvZiB0ZXJtcyBhbmQgY29uY2VwdHMuIFRoZSBSZWxhdGlvbnMgYXBwbGljYXRpb24gaXMgYSB0b29sIGZvciBrbm93bGVkZ2UgbWFuYWdlbWVudC4gSXRzIGFpbSBpcyB0byB2aXN1YWxpemUgYW5kIGNvbnRleHR1YWxpemUgY29uY2VwdHMuIFRoaXMgaXMgcG9zc2libGUgaWYgaXRlbXMgKGUuZy4gdGVybXMpIGNhbiBiZSBlYXNpbHkgY3JlYXRlZCBhbmQsIGFib3ZlIGFsbCwgcmVsYXRlZCB0byBvdGhlciBpdGVtcy4gQnkgYSB2aXN1YWxpemF0aW9uIG9mIHN1Y2ggcmVsYXRpb25zLCB0aGUgY29udGV4dCBvZiBhIHRlcm0gYmVjb21lcyBjb21wcmVoZW5zaWJsZS4gVGhlIGV4aXN0aW5nIGFwcGxpY2F0aW9uIChpbiBWaXN1YWxCYXNpYykgd2lsbCBiZSBtaWdyYXRlZCB0byBFY2xpcHNlIGFuZCBvcGVuIHNvdXJjZWQuPC90ZD4KCQkJCSA8L3RyPgoJPC90YWJsZT4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icmNwVGh1bWJuYWlsIj4KCTx0YWJsZT4KCQkJCSA8dHI+CgkJCQkgCQkgPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjAwIj48YSBocmVmPSJpbWFnZXMvcmVsb2FkLmpwZyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJpbWFnZXMvcmVsb2FkVGh1bWIuanBnIj48YnI+PGltZyBzcmM9ImltYWdlcy96b29tLmdpZiIgc3R5bGU9InBhZGRpbmctdG9wOjJweDsiPiBFbmxhcmdlIFNjcmVlbnNob3QgPC9hPiAgPC90ZD4KCQkJCQkJIDx0ZCB2YWxpZ249InRvcCI+IDxiPlJlbG9hZCBQcm9qZWN0PC9iPiAtIEJvbHRvbiBVbml2ZXJzaXR5LCBVSyA8YnI+CgkJCQkJCSAJCQk8YSBocmVmPSJodHRwOi8vd3d3LnJlbG9hZC5hYy51ay8iIHRhcmdldD0iX2JsYW5rIj5SZWxvYWQgUHJvamVjdCBIb21lcGFnZTwvYT48YnI+CgkJCQkJCQkJCVJlbG9hZCBQcm9qZWN0IGlzIHByb2R1Y2luZyBvcGVuIHNvdXJjZSB0b29scyB0byBlZGl0IGFuZCBjcmVhdGUgSU1TIHNwZWNpZmljYXRpb25zLiAgVGhlc2Ugc3RhbmRhcmRzIGFuZCBzcGVjaWZpY2F0aW9ucyBpbmNsdWRlIE1ldGEtZGF0YSwgQ29udGVudCBQYWNrYWdpbmcsIFNDT1JNIChhcyB1c2VkIGJ5IHRoZSBVUyBEb0QpIGFuZCBMZWFybmluZyBEZXNpZ24uIFRoZSBzb2Z0d2FyZSB0b29scyBhcmUgdXNlZCBleHRlbnNpdmVseSBpbiB0aGUgc3BoZXJlIG9mIGUtTGVhcm5pbmcgdGhyb3VnaG91dCB0aGUgd29ybGQgKG92ZXIgMTAwMCBkb3dubG9hZHMgYSBtb250aCkgYW5kIGhhdmUgYmVjb21lIHRoZSBkZSBmYWN0byByZWZlcmVuY2UgdG9vbHMuIFRoZXNlIHRvb2xzIGFyZSBmcmVlIGFuZCBvcGVuIHNvdXJjZSAoc291cmNlIGNvZGUgYXZhaWxhYmxlIGF0IFNvdXJjZUZvcmdlKSBhbmQgYXZhaWxhYmxlIG5vdyBmb3IgZG93bmxvYWQgYXQ6IDxhIGhyZWY9Imh0dHA6Ly93d3cucmVsb2FkLmFjLnVrL2xkZWRpdG9yLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vd3d3LnJlbG9hZC5hYy51ay9sZGVkaXRvci5odG1sPC9hPjwvdGQ+CgkJCQkgPC90cj4KCTwvdGFibGU+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InJjcFRodW1ibmFpbCI+Cgk8dGFibGU+CgkJCQkgPHRyPgoJCQkJIAkJIDx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjIwMCI+PGEgaHJlZj0iaW1hZ2VzL3Jzc293bC5qcGciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaW1hZ2VzL3Jzc293bFRodW1iLmpwZyI+PGJyPjxpbWcgc3JjPSJpbWFnZXMvem9vbS5naWYiIHN0eWxlPSJwYWRkaW5nLXRvcDoycHg7Ij4gRW5sYXJnZSBTY3JlZW5zaG90IDwvYT4gIDwvdGQ+CgkJCQkJCSA8dGQgdmFsaWduPSJ0b3AiPiA8Yj5SU1NPd2w8L2I+IC0gQmVuamFtaW4gUGFzZXJvPGJyPgoJCQkJCQkgCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5yc3Nvd2wub3JnLyIgdGFyZ2V0PSJfYmxhbmsiPlJTU1dvbCBIb21lcGFnZTwvYT48YnI+CgkJCQkJCQkJCUFwcGxpY2F0aW9ucyB0aGF0IGNvbGxlY3QgZGF0YSBmcm9tIFJTUy1jb21wbGlhbnQgc2l0ZXMgYXJlIGNhbGxlZCBSU1MgcmVhZGVycyBvciAiYWdncmVnYXRvcnMuIiBSU1NPd2wgaXMgc3VjaCBhbiBhcHBsaWNhdGlvbi4gUlNTT3dsIGxldHMgeW91IGdhdGhlciwgb3JnYW5pemUsIHVwZGF0ZSwgYW5kIHN0b3JlIGluZm9ybWF0aW9uIGZyb20gYW55IGNvbXBsaWFudCBzb3VyY2UgaW4gYSBjb252ZW5pZW50LCBlYXN5IHRvIHVzZSBpbnRlcmZhY2UsIHNhdmUgc2VsZWN0ZWQgaW5mb3JtYXRpb24gaW4gdmFyaW91cyBmb3JtYXRzIGZvciBvZmZsaW5lIHZpZXdpbmcgYW5kIHNoYXJpbmcsIGFuZCBtdWNoIG1vcmUuIEl0J3MgZWFzeSB0byBjb25maWd1cmUsIGF2YWlsYWJsZSBpbiBtYW55IG1hbnkgbGFuZ3VhZ2VzIGFuZCB0aGUgYmVzdCBvZiBhbGw6IEl0J3MgcGxhdGZvcm0taW5kZXBlbmRlbnQuIDwvdGQ+CgkJCQkgPC90cj4KCTwvdGFibGU+Cgk8L2Rpdj4JCQoJPGRpdiBjbGFzcz0icmNwVGh1bWJuYWlsIj4KCTx0YWJsZT4KCQkJCSA8dHI+CgkJCQkgCQkgPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjAwIj4JPGEgaHJlZj0iaW1hZ2VzL3NjaG9vbGNsaXBzZS5qcGciIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaW1hZ2VzL3NjaG9vbGNsaXBzZVRodW1iLmpwZyI+PGJyPjxpbWcgc3JjPSJpbWFnZXMvem9vbS5naWYiIHN0eWxlPSJwYWRkaW5nLXRvcDoycHg7Ij4gRW5sYXJnZSBTY3JlZW5zaG90IDwvYT4gPC90ZD4KCQkJCQkJIDx0ZCB2YWxpZ249InRvcCI+IDxiPlNjaG9vbGNsaXBzZSA8L2I+IC0gU3RhdnJvcyBTLiBLb3VuaXMgJiBLb25zdGFudGlub3MgTGFwcGFzICA8YnI+CgkJCQkJCSAJCQk8YSBocmVmPSJodHRwczovL3NjaG9vbGNsaXBzZS5kZXYuamF2YS5uZXQvIiB0YXJnZXQ9Il9ibGFuayI+U2Nob29sY2xpcHNlIEhvbWVwYWdlPC9hPjxicj4KCQkJCQkJCQkJU2Nob29sY2xpcHNlIGlzIGFuIEVjbGlwc2UgUkNQIGFwcGxpY2F0aW9uIGZvciBwcml2YXRlIHNjaG9vbCBtYW5hZ2VtZW50LiBJdCBjYW4gaGFuZGxlIHN0dWRlbnRzIChhcyBjb250YWN0cyksIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gc3R1ZGVudHMgKGVucm9sbWVudHMsIGZlZXMsIHBheW1lbnRzLCB0YXNrcywgLi4uKSBhbmQgc2Nob29sIGluZm9ybWF0aW9uIChjb3Vyc2VzLCBsZXNzb24gY2xhc3NlcywgLi4uKTwvdGQ+CgkJCQkgPC90cj4KCTwvdGFibGU+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InJjcFRodW1ibmFpbCI+Cgk8dGFibGU+CgkJCQkgPHRyPgoJCQkJIAkJIDx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjIwMCI+PGEgaHJlZj0iaW1hZ2VzL3VEaWcucG5nIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImltYWdlcy91RGlnVGh1bWIucG5nIj48YnI+PGltZyBzcmM9ImltYWdlcy96b29tLmdpZiIgc3R5bGU9InBhZGRpbmctdG9wOjJweDsiPiBFbmxhcmdlIFNjcmVlbnNob3QgPC9hPiA8L3RkPgoJCQkJCQkgPHRkIHZhbGlnbj0idG9wIj4gPGI+dURpZyBHSVM8L2I+IC0gUmVmcmFjdGlvbnMgUmVzZWFyY2ggPGJyPgoJCQkJCQkgCQkJPGEgaHJlZj0iaHR0cDovL3VkaWcucmVmcmFjdGlvbnMubmV0LyIgdGFyZ2V0PSJfYmxhbmsiPnVEaWcgR0lTIEhvbWVwYWdlPC9hPjxicj4KCQkJCQkJCQkJdURpZyBpcyBhIFVzZXItZnJpZW5kbHkgRGVza3RvcCBJbnRlcm5ldCBHSVMuIEl0IHByb3ZpZGVzIGEgZ3JhcGhpY2FsIGludGVyZmFjZSB0byBPR0Mgc3RhbmRhcmQgaW50ZXJuZXQgbWFwcGluZyBzZXJ2ZXJzIChXTVMsIFdGUyksIGxvY2FsIGRhdGEgZmlsZXMsIGFuZCBzcGF0aWFsIGRhdGFiYXNlcy4gdURpZyBoYXMgcHJvZ3JhbW1pbmcgZXh0ZW5zaW9uIHBvaW50cyBmb3IgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IGFuZCBjdXN0b20gc3BhdGlhbCBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudC48L3RkPgoJCQkJIDwvdHI+Cgk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBjbGFzcz0icmNwVGh1bWJuYWlsIj4KCTx0YWJsZT4KCQkJCSA8dHI+CgkJCQkgCQkgPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjAwIj4JPGEgaHJlZj0iaW1hZ2VzL3dpcmVkUmVhY2gucG5nIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImltYWdlcy93aXJlZFJlYWNoVGh1bWIucG5nIj48YnI+PGltZyBzcmM9ImltYWdlcy96b29tLmdpZiIgc3R5bGU9InBhZGRpbmctdG9wOjJweDsiPiBFbmxhcmdlIFNjcmVlbnNob3QgPC9hPiA8L3RkPgoJCQkJCQkgPHRkIHZhbGlnbj0idG9wIj4gPGI+V2lyZWRSZWFjaCA8L2I+IC0gV2lyZWRSZWFjaCAgPGJyPgoJCQkJCQkgCQkJPGEgaHJlZj0iaHR0cDovL3d3dy53aXJlZHJlYWNoLmNvbS8iIHRhcmdldD0iX2JsYW5rIj5XaXJlZFJlYWNoIEhvbWVwYWdlPC9hPjxicj4KCQkJCQkJCQkJV2lyZWRSZWFjaCBpcyBhIHVuaXZlcnNhbCBjb250ZW50IHNoYXJpbmcgcGxhdGZvcm0gYnVpbHQgb24gYSBzZXQgb2Ygb3BlbiBzdGFuZGFyZHMgYW5kIHRlY2hub2xvZ2llcyAoRWNsaXBzZSwgSlhUQSwgUkRGLCBSU1MsIGFuZCBYTVBQKSB0aGF0IGFsbG93cyB1c2VycyB0byBzZWxlY3RpdmVseSBzaGFyZSBjb250ZW50IHdpdGggb3RoZXJzIGluIGEgY29tcGxldGVseSBkZWNlbnRyYWxpemVkIGFuZCBzZWN1cmUgbWFubmVyLiBUaGUgdGVybSAiY29udGVudCIgaXRzZWxmIGlzIHZlcnkgbG9vc2VseSBkZWZpbmVkIGluIHRoZSBwbGF0Zm9ybSwgYW5kIGl0IGNhbiBpbmNsdWRlIHRoaW5ncyBsaWtlIHByZXNlbmNlLCBibG9ncywgYm9va21hcmtzLCBkb2N1bWVudHMsIGNhbGVuZGFycywgbXVzaWMsIHBob3Rvcy4uLiB2aXJ0dWFsbHkgYW55IHR5cGUgb2Ygc29jaWFsIG1lZGlhLjxicj4KCQkJCQkJCQkJVHJhZGl0aW9uYWwgY29udGVudCBzaGFyaW5nIGFuZCBjb2xsYWJvcmF0aW9uIGFwcGxpY2F0aW9ucyBhcmUgdXN1YWxseSBidWlsdCB1c2luZyBwcm9wcmlldGFyeSBwcm90b2NvbHMgYW5kL29yIGFzIGNsb3NlZCBuZXR3b3JrcyB3aGljaCBsaW1pdCB0aGVpciBhcHBsaWNhYmlsaXR5IGFuZCBzY29wZS4gT3VyIHZpc2lvbiwgaW5zdGVhZCwgaXMgdG8gZW5hYmxlIGFuIG9wZW4gY29sbGFib3JhdGlvbiBuZXR3b3JrICh0aGUgVXNlci1DZW50cmljIFdlYikgLSBvbmUgdGhhdCBibHVycyB0aGUgYm91bmRhcmllcyBiZXR3ZWVuIHRoZSBkZXNrdG9wIGFuZCB0aGUgd2ViIGFuZCB0aGF0IGNhbiBiZSBleHRlbmRlZCBieSBhbnlvbmUuIFRvIHRoYXQgZWZmZWN0LCB3ZSB3aWxsIGFsc28gYmUgcmVsZWFzaW5nIG91ciBjb3JlIHBsYXRmb3JtIHVuZGVyIGFuIG9wZW4gc291cmNlIGxpY2Vuc2UuPC90ZD4KCQkJCSA8L3RyPgoJPC90YWJsZT4KCTwvZGl2PgkJCQkJCQoJCQkJCTxkaXYgY2xhc3M9InJjcFRodW1ibmFpbCI+Cgk8dGFibGU+CgkJCQkgPHRyPgoJCQkJIAkJIDx0ZCB2YWxpZ249InRvcCIgYWxpZ249ImNlbnRlciIgd2lkdGg9IjIwMCI+CTxhIGhyZWY9ImltYWdlcy96ZHQuanBnIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImltYWdlcy96ZHR0aHVtYi5qcGciPjxicj48aW1nIHNyYz0iaW1hZ2VzL3pvb20uZ2lmIiBzdHlsZT0icGFkZGluZy10b3A6MnB4OyI+IEVubGFyZ2UgU2NyZWVuc2hvdCA8L2E+IDwvdGQ+CgkJCQkJCSA8dGQgdmFsaWduPSJ0b3AiPiA8Yj5aaG9uZ3dlbiBEZXZlbG9wbWVudCBUb29sIChaRFQpPC9iPiAtIENocmlzIEZvbmcgIDxicj4KCQkJCQkJIAkJCTxhIGhyZWY9Imh0dHA6Ly96ZHQuc291cmNlZm9yZ2UubmV0IiB0YXJnZXQ9Il9ibGFuayI+WkRUIEhvbWVwYWdlPC9hPjxicj4KCQkJCQkJCQkJVGhlIFpEVCAoWmhvbmd3ZW4gRGV2ZWxvcG1lbnQgVG9vbCkgaXMgYW4gb3BlbiBzb3VyY2UsIG11bHRpLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFpbWVkIGF0IGhlbHBpbmcgcGVvcGxlIGxlYXJuIENoaW5lc2UuICBJdCBmZWF0dXJlcyBhIGJ1aWx0LWluIENoaW5lc2UtRW5nbGlzaCBkaWN0aW9uYXJ5IChiYXNlZCBvbiB0aGUgQ0VESUNUIHByb2plY3QpLCBhbiBhbm5vdGF0aW9uIHRvb2wgZm9yIG9idGFpbmluZyBwb3B1cCB0cmFuc2xhdGlvbnMgb2YgQ2hpbmVzZSB0ZXh0LCBhbmQgYW4gaW50ZWdyYXRlZCBmbGFzaGNhcmQgc3lzdGVtLiAgVGhlIGRpY3Rpb25hcnkgaXMgc2VhcmNoYWJsZSBieSBDaGluZXNlIGNoYXJhY3RlcnMsIHBpbnlpbiwgb3IgRW5nbGlzaCBkZWZpbml0aW9ucy4gIEZsYXNoY2FyZHMgYXJlIG9yZ2FuaXplZCBpbnRvIGNhdGVnb3JpZXMgYW5kIGNhbiBlYXNpbHkgYmUgY3JlYXRlZCBmcm9tIGFueSBzb3VyY2Ugb2YgQ2hpbmVzZSB0ZXh0LiAgQSBzb3VuZCBwbHVnLWluIGlzIGF2YWlsYWJsZSAoaW4gYmV0YSBmb3JtKSwgd2hpY2ggYWxsb3dzIGhlYXJpbmcgY2hhcmFjdGVycyBwcm9ub3VuY2VkIGJ5IGEgbmF0aXZlIENoaW5lc2Ugc3BlYWtlciBpbiBhbnkgcGFydCBvZiB0aGUgYXBwbGljYXRpb24uIDwvdGQ+CgkJCQkgPC90cj4KCTwvdGFibGU+Cgk8L2Rpdj4JCjwvZGl2PgoKCQoKCTwvZGl2PgoJPC9kaXY+CgkKCQk8ZGl2IGlkPSJyaWdodGNvbHVtbiI+CgkJPGRpdiBjbGFzcz0ic2lkZWl0ZW0iPgoJCQk8aDY+UmVsYXRlZCBMaW5rczwvaDY+CgkJCTx1bD4KCQkJCTxsaT48YSBocmVmPSJyY3Bvcy5waHAiPk9wZW4gU291cmNlIFJDUCBBcHBsaWNhdGlvbnM8L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSJyY3BjcC5waHAiPkNvbW1lcmNpYWwgUkNQIEFwcGxpY2F0aW9uczwvYT48L2xpPgkJCQkJCQkKCQkJCTxsaT48YSBocmVmPSJwbHVnaW5zaXRlcy5waHAiPkNvbW11bml0eSBQbHVnLWluIFNpdGVzPC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iLi4vYXJ0aWNsZXMvIj5BcnRpY2xlczwvYT48L2xpPgoJCQk8L3VsPgoJCTwvZGl2PgoJCTwvZGl2PgoKCgpFT0hUTUw7CgoKCSMgR2VuZXJhdGUgdGhlIHdlYiBwYWdlCgkkQXBwLT5nZW5lcmF0ZVBhZ2UoJHRoZW1lLCAkTWVudSwgJE5hdiwgJHBhZ2VBdXRob3IsICRwYWdlS2V5d29yZHMsICRwYWdlVGl0bGUsICRodG1sKTsKPz4K