PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgkQXBwLT5nZXRQcm9qZWN0Q29tbW9uKCkpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnCgoJIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkjCgkjIHRlbXBsYXRlLnBocAoJIwoJIyBBdXRob3I6IAkJRnJlZGR5IEFsbGlsYWlyZQoJIyBEYXRlOgkJCTIwMDUtMTItMDcKCSMKCSMgRGVzY3JpcHRpb246IFR5cGUgeW91ciBwYWdlIGNvbW1lbnRzIGhlcmUgLSB0aGVzZSBhcmUgbm90IHNlbnQgdG8gdGhlIGJyb3dzZXIKCSMKCSMKCSMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkKCSMKCSMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuIAoJJHBhZ2VUaXRsZSAJCT0gIk1lYXN1cmluZyBVTUwgbW9kZWxzIC0gVXNlciBHdWlkZSI7CgkkcGFnZUtleXdvcmRzCT0gIiI7CgkkcGFnZUF1dGhvcgkJPSAiRnJlZGR5IEFsbGlsYWlyZSI7CgkKCSMgRW5kOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzCgkjCgkJCgkjIFBhc3RlIHlvdXIgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIEVPSFRNTCBtYXJrZXJzIQoJJGh0bWwgPSA8PDxFT0hUTUwKCgk8IS0tIE1haW4gcGFydCAtLT4KCTxkaXYgaWQ9Im1pZGNvbHVtbiI+CgkJPGgxPiRwYWdlVGl0bGU8L2gxPgoKCQk8aW1nIGFsaWduPSJyaWdodCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYXRsTG9nb1NtYWxsLnBuZyIgdmFsaWduPSJ0b3AiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDEwcHg7IiBhbHQ9IkFUTCBMb2dvIiAvPgoJCTxhIGhyZWY9Imh0dHA6Ly93d3cucGFweXJ1c3VtbC5vcmcvIj48aW1nIGFsaWduPSJyaWdodCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvUGFweXJ1c180OHg0OC5naWYiIHZhbGlnbj0idG9wIiBzdHlsZT0icGFkZGluZy1sZWZ0OiAxMHB4OyIgYWx0PSJQYXB5cnVzIiAvPjwvYT4KCQkJICAgCQoJCTxociBjbGFzcz0iY2xlYXJlciIgLz4KCgkJPGRpdiBpZD0iY29udGFpbmVyPgoJCQk8cCBhbGlnbj0ianVzdGlmeSI+CgkJCQk8dGFibGUgYm9yZGVyPSIzIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyMCI+CgkJCQkJPHRyPjx0ZCBhbGlnbj0ianVzdGlmeSIgYmdjb2xvcj0iI2IwYzhmNCI+CgkJCQkJCVRoaXMgdXNlciBndWlkZSBleHBsYWlucyBob3cgdG8gY29uZmlndXJlIGFuZCBsYXVuY2ggdGhlIDxhIGhyZWY9ImluZGV4LnBocCI+TWVhc3VyaW5nIFVNTCBtb2RlbHM8L2E+IEFUTCBzZXJ2aWNlIGluIFBhcHlydXMuCgkJCQkJPC90ZD48L3RyPgoJCQkJPC90YWJsZT4KCQkJPC9wPgoKCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJRmlyc3Qgc3RlcCBpcyB0byBjcmVhdGUgYSBuZXcgdHJhbnNmb3JtYXRpb24gY29uZmlndXJhdGlvbiwgdXNpbmcgdGhlIDxiPlJ1biBBczwvYj4gYnV0dG9uLgoJCQk8L3A+CgkJCTxwIGFsaWduPSJjZW50ZXIiPgoJCQkJPGltZyBzcmM9ImltZy9ydW4uUE5HIiAvPgoJCQk8L3A+CgkJCTxwIGFsaWduPSJjZW50ZXIiPgoJCQkJPGltZyBzcmM9ImltZy9jb25maWd1cmF0aW9uTWFuYWdlci5QTkciIC8+CgkJCTwvcD4KCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJVGhhbmtzIHRvIHRoZSBwb3AtdXAgbWVudSBhdmFpbGFibGUgb24gUGFweXJ1cyB0cmFuc2Zvcm1hdGlvbiwgeW91IGNhbiBjcmVhdGUgYSBuZXcgdHJhbnNmb3JtYXRpb24gY29uZmlndXJhdGlvbi4gVGhpcyB0cmFuc2Zvcm1hdGlvbiBjb25maWd1cmF0aW9uIHdpbGwgY29udGFpbiBhbGwgCgkJCQluZWNlc3NhcnkgcGFyYW1ldGVycyBmb3IgeW91ciB0cmFuc2Zvcm1hdGlvbi4KCQkJPC9wPgoJCQk8cCBhbGlnbj0iY2VudGVyIj4KCQkJCTxpbWcgc3JjPSJpbWcvbmV3Q29uZmlndXJhdGlvbi5QTkciIC8+CgkJCTwvcD4KCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJVGhhbmtzIHRvIHRoZSA8Yj5Ccm93c2UuLi48L2I+IGJ1dHRvbiBpbiB0aGUgTW9kdWxlIGdyb3VwLCB0aGUgdHJhbnNmb3JtYXRpb24gbW9kdWxlIGNhbiBiZSBzZWxlY3RlZCBhZ2FpbnN0IGFsbCB0cmFuc2Zvcm1hdGlvbiBtb2R1bGVzIGF2YWlsYWJsZSBmb3IgUGFweXJ1cy4gSW4gdGhpcyB1c2UgY2FzZSwgCgkJCQlwbGVhc2Ugc2VsZWN0IHRoZSA8Yj5VTUwgTWVhc3VyZXM8L2I+IG1vZHVsZS4KCQkJPC9wPgoJCQk8cCBhbGlnbj0iY2VudGVyIj4KCQkJCTxpbWcgc3JjPSJpbWcvbW9kdWxlU2VsZWN0aW9uLlBORyIgLz4KCQkJPC9wPgoJCQk8cCBhbGlnbj0ianVzdGlmeSI+CgkJCQlUaGUgbmV4dCBzdGVwIGlzIHRvIGNob29zZSB0aGUgdW1sIGZpbGUgb24gd2hpY2ggdGhlIHRyYW5zZm9ybWF0aW9uIHdpbGwgcnVuLiBUaGUgZm9sbG93aW5nIHdpbmRvdyBmaWx0ZXJzIHRoZSBwcm9wb3NlZCBmaWxlcyB1c2luZyB0aGVpciBleHRlbnNpb25zOyB5b3UgY2FuIG9ubHkgc2VsZWN0IAoJCQkJdW1sIGZpbGVzLgoJCQk8L3A+CgkJCTxwIGFsaWduPSJjZW50ZXIiPgoJCQkJPGltZyBzcmM9ImltZy9zb3VyY2VNb2RlbFNlbGVjdGlvbi5QTkciIC8+CgkJCTwvcD4KCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJVGhlIG5leHQgc3RlcCBpcyB0aGUgc2VsZWN0aW9uIG9mIHRoZSB0YXJnZXQgZm9sZGVyLiBJdCBpcyBub3QgcG9zc2libGUgdG8gc2VsZWN0IGEgcHJvamVjdCB5ZXQuIEluIGZhY3QsIFBhcHlydXMgdHJhbnNmb3JtYXRpb25zIG11c3QgYmUgcnVuIGludG8gYSBmb2xkZXIgKHllbGxvdyBmb2xkZXIgCgkJCQlpY29ucykuIFRoaXMgc2hvdWxkIGJlIGZpeGVkIGluIG5leHQgdmVyc2lvbnMgb2YgUGFweXJ1cyB0b29sLiBUaGUgc2VsZWN0ZWQgZm9sZGVyIHdpbGwgY29udGFpbiB0aGUgcmVzdWx0cyBvZiB0aGUgdHJhbnNmb3JtYXRpb24uCgkJCTwvcD4KCQkJPHAgYWxpZ249ImNlbnRlciI+CgkJCQk8aW1nIHNyYz0iaW1nL3RhcmdldEZvbGRlclNlbGVjdGlvbi5QTkciIC8+CgkJCTwvcD4KCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJVGhlIGZvbGxvd2luZyBzbmFwc2hvdCBnaXZlcyBhbiBleGFtcGxlIG9mIHdoYXQgeW91IHNob3VsZCBoYXZlIGp1c3QgYmVmb3JlIGxhdW5jaGluZyB0aGUgdHJhbnNmb3JtYXRpb24uIFRoZSB0cmFuc2Zvcm1hdGlvbiBpcyBsYXVuY2hlZCB1c2luZyB0aGUgPGI+UnVuPC9iPiBidXR0b24uCgkJCTwvcD4KCQkJPHAgYWxpZ249ImNlbnRlciI+CgkJCQk8aW1nIHNyYz0iaW1nL2NvbXBsZXRlQ29uZmlndXJhdGlvbi5QTkciIC8+CgkJCTwvcD4KCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJVGhpcyB0cmFuc2Zvcm1hdGlvbiBvdXRwdXRzIDMgZmlsZXM6IDEgaHRtbCBwYWdlIHdpdGggYSB0YWJsZSBjb250YWluaW5nIHJlc3VsdHMsIGFuZCAyIFNWRyBmaWxlcy4gVGhlc2UgZmlsZXMgYXJlIGNvbnRhaW5lZCBpbiB0aGUgZm9sZGVyIGdpdmVuIGluIHRoZSBjb25maWd1cmF0aW9uIHdpbmRvdy4KCQkJPC9wPgoJCQk8cCBhbGlnbj0ianVzdGlmeSI+CgkJCQk8dWw+CgkJCQkJPGxpPgoJCQkJCQk8Yj5UYWJ1bGFyIEhUTUw8L2I+PGJyIC8+CgkJCQkJCTxkaXYgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9ImltZy90YWJ1bGFySFRNTC5QTkciIC8+PC9kaXY+CgkJCQkJCTxiciAvPjxiciAvPgoJCQkJCTwvbGk+CgkJCQkJPGxpPgoJCQkJCQk8Yj5TVkcgQmFyIENoYXJ0PC9iPjxiciAvPgoJCQkJCQk8ZGl2IGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSJpbWcvYmFyQ2hhcnQuUE5HIiAvPjwvZGl2PgoJCQkJCQk8YnIgLz48YnIgLz4KCQkJCQk8L2xpPgoJCQkJCTxsaT4KCQkJCQkJPGI+U1ZHIFBpZSBDaGFydDwvYj48YnIgLz4KCQkJCQkJPGRpdiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJpbWcvcGllQ2hhcnQuUE5HIj48aW1nIHNyYz0iaW1nL3BpZUNoYXJ0X3NtYWxsLlBORyIgLz48L2E+PC9kaXY+CgkJCQkJCTxiciAvPjxiciAvPgoJCQkJCTwvbGk+CgkJCQk8L3VsPgoJCQk8L3A+CgkJCQoJCQk8aDQgU1RZTEU9ImZvbnQtc2l6ZTogMTBwdDsgcGFkZGluZzogMDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0OTQ1N0M7IGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBsZWZ0OyBiYWNrZ3JvdW5kLXJlcGVhdDsgcmVwZWF0LXg7Ij4KCQkJCTxhIG5hbWU9ImFja25vd2xlZGdlbWVudCI+PC9hPkFja25vd2xlZGdlbWVudAoJCQk8L2g0PgoKCQkJPHRhYmxlIHdpZHRoPSIxMDAlIj4KCQkJCTxDT0xHUk9VUD4KCQkJCQk8Q09MIHdpZHRoPSIyJSI+CgkJCQkJPENPTCB3aWR0aD0iOTglIj4KCQkJCTwvQ09MR1JPVVA+CgkJCQk8dHI+CgkJCQkJPHRkPjwvdGQ+CgkJCQkJPHRkPgoJCQkJCQlUaGUgcHJlc2VudCB3b3JrIGlzIGJlaW5nIHN1cHBvcnRlZCBieSB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy51c2luZS1sb2dpY2llbGxlLm9yZyI+VXNpbmUgTG9naWNpZWxsZSBwcm9qZWN0IG9mIHRoZSBTeXN0ZW1AdGljIFBhcmlzIFJlZ2lvbiBDbHVzdGVyPC9hPi4KCQkJCQk8L3RkPgoJCQkJPC90cj4KCQkJPC90YWJsZT4KCQkJCgkJPC9kaXY+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJyaWdodGNvbHVtbiI+CgkJPGRpdiBjbGFzcz0ic2lkZWl0ZW0iPgoJCQk8aDY+R2VuZXJhbCBJbmZvcm1hdGlvbjwvaDY+CgkJCTx1bD4KCQkJCTxsaSBzdHlsZT0ibGlzdC1zdHlsZTpub25lIj5NYXkgMjAwNzwvbGk+CgkJCQk8bGkgc3R5bGU9Imxpc3Qtc3R5bGU6bm9uZSI+QnkgPGEgaHJlZj0iaHR0cDovL3d3dy5zY2llbmNlcy51bml2LW5hbnRlcy5mci9saW5hL2F0bC9jb250cmliL2FsbGlsYWlyZSI+RnJlZGR5IEFsbGlsYWlyZTwvYT4gKElOUklBKSwgUultaSBTY2huZWtlbmJ1cmdlciAoQ0VBIExJU1QpPC9saT4KCQkJCTxsaSBzdHlsZT0ibGlzdC1zdHlsZTpub25lIj48YnIgLz5QbGVhc2UsIGFzayB5b3VyIHF1ZXN0aW9ucyBvbiB0aGUgPGEgaHJlZj0ibmV3czovL25ld3MuZWNsaXBzZS5vcmcvZWNsaXBzZS5tb2RlbGluZy5tMm0iPk0yTSBuZXdzZ3JvdXA8L2E+PC9saT4KCQkJPC91bD4KCQk8L2Rpdj4KCTwvZGl2PgoJCkVPSFRNTDsKCgoJIyBHZW5lcmF0ZSB0aGUgd2ViIHBhZ2UKCSRBcHAtPmdlbmVyYXRlUGFnZSgkdGhlbWUsICRNZW51LCAkTmF2LCAkcGFnZUF1dGhvciwgJHBhZ2VLZXl3b3JkcywgJHBhZ2VUaXRsZSwgJGh0bWwpOwo/Pg==