PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgkQXBwLT5nZXRQcm9qZWN0Q29tbW9uKCkpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnCgoJIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkjCgkjIHRlbXBsYXRlLnBocAoJIwoJIyBBdXRob3I6IAkJRnJlZGR5IEFsbGlsYWlyZQoJIyBEYXRlOgkJCTIwMDUtMTItMDcKCSMKCSMgRGVzY3JpcHRpb246IFR5cGUgeW91ciBwYWdlIGNvbW1lbnRzIGhlcmUgLSB0aGVzZSBhcmUgbm90IHNlbnQgdG8gdGhlIGJyb3dzZXIKCSMKCSMKCSMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkKCSMKCSMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuIAoJJHBhZ2VUaXRsZSAJCT0gIkFUTCBVc2UgQ2FzZSAtIFNvZnR3YXJlIFF1YWxpdHkgQ29udHJvbCBUb29scyBJbnRlcm9wZXJhYmlsaXR5IChCdWd6aWxsYSwgTWFudGlzLCBFeGNlbCkiOwoJJHBhZ2VLZXl3b3Jkcwk9ICJUb29sIEludGVyb3BlcmFiaWxpdHksIFNvZnR3YXJlIFF1YWxpdHkgQ29udHJvbCwgRXhjZWwsIEJ1Z3ppbGxhLCBNYW50aXMsIEJ1Zy1UcmFja2luZyI7CgkkcGFnZUF1dGhvcgkJPSAiRnJlZGR5IEFsbGlsYWlyZSI7CgkKCSMgRW5kOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzCgkjCgkJCgkjIFBhc3RlIHlvdXIgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIEVPSFRNTCBtYXJrZXJzIQkKCSRodG1sID0gPDw8RU9IVE1MCgoJPCEtLSBNYWluIHBhcnQgLS0+Cgk8ZGl2IGlkPSJtaWRjb2x1bW4iPgoJCTxoMT4kcGFnZVRpdGxlPC9oMT4KCgkJPGltZyBhbGlnbj0icmlnaHQiIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2F0bExvZ29TbWFsbC5wbmciIHZhbGlnbj0idG9wIiBzdHlsZT0icGFkZGluZy1sZWZ0OiAxMHB4OyIgYWx0PSJBVEwgTG9nbyIgLz4KCQk8YmxvY2txdW90ZT4KCQkJPHVsPgoJCQkJPGxpPjxhIGhyZWY9IiNrZXl3b3JkcyI+PGI+S2V5d29yZHM8L2I+PC9hPjwvbGk+CgkJCQk8bGk+PGEgaHJlZj0iI292ZXJ2aWV3Ij48Yj5PdmVydmlldzwvYj48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSIjcmVsYXRlZFVzZUNhc2VzIj48Yj5SZWxhdGVkIFVzZSBDYXNlczwvYj48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSIjcmVmZXJlbmNlcyI+PGI+UmVmZXJlbmNlczwvYj48L2E+PC9saT4KCQkJCTxsaT48YSBocmVmPSIjZG93bmxvYWQiPjxiPkRvd25sb2FkPC9iPjwvYT48L2xpPgoJCQkJPGxpPjxhIGhyZWY9IiNhY2tub3dsZWRnZW1lbnQiPjxiPkFja25vd2xlZGdlbWVudDwvYj48L2E+PC9saT4KCQkJPC91bD4KCQk8L2Jsb2NrcXVvdGU+CiAgICAJCgkJPGhyIGNsYXNzPSJjbGVhcmVyIiAvPgoKCQk8ZGl2IGlkPSJjb250YWluZXI+CgkJCTxwIGFsaWduPSJqdXN0aWZ5Ij4KCQkJPC9wPgoKCQkJPGg0IFNUWUxFPSJmb250LXNpemU6IDEwcHQ7IHBhZGRpbmc6IDA7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNDk0NTdDOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdDsgYmFja2dyb3VuZC1yZXBlYXQ7IHJlcGVhdC14OyI+PGEgbmFtZT0ia2V5d29yZHMiPjwvYT5LZXl3b3JkczwvaDQ+CgkJCTx0YWJsZSB3aWR0aD0iMTAwJSI+CgkJCQk8Q09MR1JPVVA+CgkJCQkJPENPTCB3aWR0aD0iMiUiIC8+CgkJCQkJPENPTCB3aWR0aD0iOTglIiAvPgoJCQkJPC9DT0xHUk9VUD4KCQkJCTx0cj4KCQkJCQk8dGQ+PC90ZD4KCQkJCQk8dGQ+CgkJCQkJCTxwIGFsaWduPSJqdXN0aWZ5Ij4KCQkJCQkJCVRvb2wgSW50ZXJvcGVyYWJpbGl0eSwKCQkJCQkJCVNvZnR3YXJlIFF1YWxpdHkgQ29udHJvbCwKCQkJCQkJCUJ1Zy1UcmFja2luZywKCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly9vZmZpY2UubWljcm9zb2Z0LmNvbS9leGNlbCI+RXhjZWw8L2E+LAoJCQkJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5idWd6aWxsYS5vcmcvIj5CdWd6aWxsYTwvYT4sCgkJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lm1hbnRpc2J0Lm9yZy8iPk1hbnRpczwvYT4KCQkJCQkJPC9wPgoJCQkJCTwvdGQ+CgkJCQk8L3RyPgoJCQk8L3RhYmxlPgoJCQoJCQk8aDQgU1RZTEU9ImZvbnQtc2l6ZTogMTBwdDsgcGFkZGluZzogMDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0OTQ1N0M7IGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBsZWZ0OyBiYWNrZ3JvdW5kLXJlcGVhdDsgcmVwZWF0LXg7Ij48YSBuYW1lPSJvdmVydmlldyI+PC9hPk92ZXJ2aWV3PC9oND4KCgkJCTx0YWJsZSB3aWR0aD0iMTAwJSI+CgkJCQk8Q09MR1JPVVA+CgkJCQkJPENPTCB3aWR0aD0iMiUiIC8+CgkJCQkJPENPTCB3aWR0aD0iOTglIiAvPgoJCQkJPC9DT0xHUk9VUD4KCQkJCTx0cj4KCQkJCQk8dGQ+PC90ZD4KCQkJCQk8dGQ+CgkJCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJCQkJUHJvYmxlbXMgb2YgdG9vbHMgaW50ZXJvcGVyYWJpbGl0eSBjYW4gYmUgZm91bmQgaW4gdmFyaW91cyBkb21haW5zLiBTb2Z0d2FyZSBxdWFsaXR5IGNvbnRyb2wgaXMgb25lIG9mIHRoZXNlLgoJCQkJCQkJVGhpcyB1c2UgY2FzZSBwcmVzZW50cyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBicmlkZ2VzIGJldHdlZW4gZGlmZmVyZW50IGJ1ZyB0cmFja2luZyB0b29scyBsaWtlIEJ1Z3ppbGxhLCBhbmQgTWFudGlzLgoJCQkJCQkJV2UgYWxzbyBjb25zaWRlciB0aGF0IGJ1ZyB0cmFja2luZyBpbmZvcm1hdGlvbiBtYXkgYmUgaGFuZGxlZCBpbiBhIGdlbmVyaWMgdG9vbCBsaWtlIEV4Y2VsLgoJCQkJCQk8L3A+CgkJCQkJCTxwIGFsaWduPSJqdXN0aWZ5Ij4KCQkJCQkJCVdlIHRha2UgYW4gZXhhbXBsZSBvZiAiYnVnLXRyYWNraW5nIiBpbiB0aGUgY2FzZSBvZiBhIHNvZnR3YXJlIHByb2R1Y3QgZGV2ZWxvcG1lbnQuCgkJCQkJCQlBc3N1bWUgdGhhdCB0aHJlZSB0ZWFtcyBhcmUgY3VycmVudGx5IHdvcmtpbmcgb24gdGhlIHNhbWUgcHJvZHVjdCBhdCB0aGUgc2FtZSB0aW1lIGJ1dCBvbiBkaWZmZXJlbnQgbW9kdWxlcyBvZiB0aGlzIHByb2R1Y3QuCgkJCQkJCQlUZWFtcyBtYXkgYmUgZ2VvZ3JhcGhpY2FsbHkgZGlzdHJpYnV0ZWQsIG1heSBoYXZlIGRpZmZlcmVudCBsZXZlbHMgb2YgbWF0dXJpdHkgb2YgdGhlIHVzZWQgZGV2ZWxvcG1lbnQgcHJvY2VzcywgbWF5IGhhdmUgZGlmZmVyZW50IGV4cGVyaWVuY2UgZm9yIHRoZSB0ZWFtIG1lbWJlcnMsIAoJCQkJCQkJYW5kIG1heSBjb25zZXF1ZW50bHkgdXNlIGRpZmZlcmVudCB0b29scy4gVGhlIGdsb2JhbCBzaXR1YXRpb24gbWF5IGJlIGRlc2NyaWJlZCBhcyBmb2xsb3dzOgoJCQkJCQkJPHVsPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJVGVhbSBBIGlzIGRldmVsb3BpbmcgdGhlIGZpcnN0IG1vZHVsZSBieSB1c2luZyBhbiBFeGNlbCB3b3JrYm9vayB3aXRoIGEgc3BlY2lmaWMgZm9ybWF0IHRvIHRyYWNrIG9yIHRyYWNlIGJ1Z3M7PGJyIC8+PGJyIC8+CgkJCQkJCQkJCTxkaXYgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaW1nL0V4Y2VsU2FtcGxlRmlsZS5wbmciPjxpbWcgc3JjPSJpbWcvRXhjZWxTYW1wbGVGaWxlLnBuZyIgaGVpZ2h0PSI1MDAiIC8+PC9hPjwvZGl2PgoJCQkJCQkJCQk8aHIgLz4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJVGVhbSBCIGlzIHdvcmtpbmcgb24gdGhlIHNlY29uZCBtb2R1bGUgYW5kIHVzZXMgQnVnemlsbGEgd2hpY2ggaXMgYSBmcmVlIGJ1Zy10cmFja2luZyBzeXN0ZW07PGJyIC8+PGJyIC8+CgkJCQkJCQkJCTxkaXYgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaW1nL0J1Z3ppbGxhU2FtcGxlRmlsZS5wbmciPjxpbWcgc3JjPSJpbWcvQnVnemlsbGFTYW1wbGVGaWxlLnBuZyIgaGVpZ2h0PSI1MDAiIC8+PC9hPjwvZGl2PgoJCQkJCQkJCQk8aHIgLz4KCQkJCQkJCQk8L2xpPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJVGVhbSBDIGlzIGRldmVsb3BpbmcgdGhlIHRoaXJkIG1vZHVsZSBhbmQgdXNlcyBNYW50aXMgQnVnIFRyYWNrZXIgd2hpY2ggaXMgYW5vdGhlciBmcmVlIGJ1ZyB0cmFja2luZyBzeXN0ZW07PGJyIC8+PGJyIC8+CgkJCQkJCQkJCTxkaXYgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaW1nL01hbnRpc1NhbXBsZUZpbGUucG5nIj48aW1nIHNyYz0iaW1nL01hbnRpc1NhbXBsZUZpbGUucG5nIiBoZWlnaHQ9IjUwMCIgLz48L2E+PC9kaXY+CgkJCQkJCQkJCTxociAvPgoJCQkJCQkJCTwvbGk+CgkJCQkJCQk8L3VsPgoJCQkJCQkJQSBmb3VydGggdGVhbSAodGhhdCB3ZSBuYW1lIFRlYW0gRCkgbXVzdCBpbnRlZ3JhdGUgdGhlIHZhcmlvdXMgbW9kdWxlcyBkZXZlbG9wZWQgYnkgdGhlc2UgdGhyZWUgdGVhbXMgaW50byBhIGNvbXBsZXRlIHNvZnR3YXJlIHNvbHV0aW9uLiBJdCBhbHNvIGhhcyB0byBkZWFsIHdpdGggYWxsCgkJCQkJCQl0aGUgYnVncyB0aGF0IGhhdmUgYmVlbiBkZXRlY3RlZCBidXQgbm90IHlldCByZXNvbHZlZCBmb3IgZWFjaCBtb2R1bGUuCgkJCQkJCTwvcD4KCQkJCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJCQkJVGhlIHByb2JsZW0gaXMgdGhhdCBlYWNoIHRlYW0gaGFzIHVzZWQgYSBkaWZmZXJlbnQgdG9vbCBmb3Iga2VlcGluZyB0cmFjayBvZiBidWdzLiBTbyBpbiB0aGF0IGNhc2UsIGhvdyB0byBzdWNjZWVkIGluIGNlbnRyYWxpemluZyBidWctdHJhY2tpbmcsIGkuZS4gaG93IHRvIGJlIGFibGUgdG8KCQkJCQkJCWludGVyb3BlcmF0ZSBmcm9tIGEgdG9vbCB0byBhbm90aGVyIHdpdGhvdXQgbG9zaW5nIGNyaXRpY2FsIGluZm9ybWF0aW9uIGFib3V0IGRldGVjdGVkIGJ1Z3M/IEZ1cnRoZXJtb3JlIHRoZSBsZXZlbCBvZiBtYXR1cml0eSBvZiBlYWNoIHRlYW0gbWF5IGR5bmFtaWNhbGx5IGV2b2x2ZSwgZWFjaAoJCQkJCQkJb25lIGxlYXJuaW5nIGZyb20gdGhlIGdsb2JhbCBwcm9qZWN0LiBBIGdpdmVuIHRlYW0gbWF5IHRodXMgdXBncmFkZSBhdCBzb21lIHBvaW50IGluIHRpbWUgaXRzIHByYWN0aWNlcyB0byB0aG9zZSB1c2VkIGJ5IGFub3RoZXIgb25lLgoJCQkJCQk8L3A+CgkJCQkJCTxwIGFsaWduPSJqdXN0aWZ5Ij4KCQkJCQkJCVRoZSBnZW5lcmFsIG92ZXJ2aWV3IG9mIG91ciBhcHByb2FjaCBpcyBwcmVzZW50ZWQgaW4gdGhlIGZvbGxvd2luZyBmaWd1cmUuCgkJCQkJCTwvcD4KCQkJCQkJPHAgYWxpZ249ImNlbnRlciI+CgkJCSAgCQkJCTxpbWcgc3JjPSJpbWcvbW9kZWxFbmdpbmVlcmluZ0FwcHJvYWNoU2NoZW1hLnBuZyIgLz4KCQkJCQkgIAkJPGJyIC8+PGJyIC8+CgkJCQkJCQk8Yj5PdmVydmlldyBvZiBvdXIgbW9kZWwgZW5naW5lZXJpbmcgYXBwcm9hY2ggdG8gaW50ZXJvcGVyYWJpbGl0eTwvYj4KCQkJCQkJPC9wPgoJCQkJCQk8cCBhbGlnbj0ianVzdGlmeSI+CgkJCQkJCQlJbiB0aGlzIGFwcHJvYWNoLCBlYWNoIGRpZmZlcmVudCAiYnVnLXRyYWNraW5nIiB0b29sIGlzIGRlc2NyaWJlZCBieSBhIG1ldGFtb2RlbC4KCQkJCQkJCUVhY2ggdG9vbCdzIG1ldGFtb2RlbCBpcyBsaW5rZWQgdG8gb3RoZXJzIGJ5IHRoZSAibG9naWNhbCIgcGl2b3Q6IHRyYW5zZm9ybWF0aW9ucyBiYXNlZCBvbiB0aGVzZSBtZXRhbW9kZWxzIHRvIHRoZSBwaXZvdCBhbmQgZnJvbSB0aGUgcGl2b3QgdG8gdGhlIG1ldGFtb2RlbHMgYXJlIGltcGxlbWVudGVkLgoJCQkJCQkJVGhpcyBwaXZvdCBpcyBhbHNvIGEgbWV0YW1vZGVsLiBJdCBhYnN0cmFjdHMgYSBjZXJ0YWluIG51bWJlciBvZiBnZW5lcmFsIGNvbmNlcHRzIGFib3V0ICJidWctdHJhY2tpbmciLgoJCQkJCQk8L3A+CgkJCQkJCTxwIGFsaWduPSJqdXN0aWZ5Ij4KCQkJCQkJCU1pY3Jvc29mdCBFeGNlbCwgQnVnemlsbGEsIGFuZCBNYW50aXMgKGFuZCBhIGxvdCBvZiB0b29scyBpbiBnZW5lcmFsKSBkbyBub3QgbmF0aXZlbHkgdXNlIFhNSSAodGhlIE9NRyBzdGFuZGFyZCBmb3Igc2VyaWFsaXppbmcgYW5kIGV4Y2hhbmdpbmcgbW9kZWxzIGFuZCBtZXRhbW9kZWxzKS4KCQkJCQkJCUluc3RlYWQgdGhleSB1c2UgYSBnZW5lcmFsIFhNTCBmb3JtYXQgdG8gaW1wb3J0L2V4cG9ydCBkYXRhLgoJCQkJCQkJSXQgaXMgdGh1cyBuZWNlc3NhcnkgdG8gZGVmaW5lIGFuIFhNTCBtZXRhbW9kZWwgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBpbmplY3QgdGhlIGNvbnRlbnQgb2YgWE1MIGZpbGVzIGludG8gbW9kZWxzIGFuZCB0byBleHRyYWN0IHRoZSBjb250ZW50IG9mIHRoZXNlIAoJCQkJCQkJbW9kZWxzIGludG8gb3RoZXIgWE1MIGZpbGVzLgoJCQkJCQk8L3A+CgkJCQkJCTxwIGFsaWduPSJqdXN0aWZ5Ij4KCQkJCQkJCVdlIHVzZSBBVEwgdG8gaW1wbGVtZW50IGJyaWRnZXMgYmV0d2VlbiB0aGUgZGlmZmVyZW50IHRvb2xzIHdoaWNoIGFyZSBNaWNyb3NvZnQgRXhjZWwsIEJ1Z3ppbGxhIGFuZCBNYW50aXMuIFNldmVyYWwgYnJpZGdlcyBhcmUgcG9zc2libGUgYW5kIGludGVyZXN0aW5nIAoJCQkJCQkJdG8gaW1wbGVtZW50LiBXZSBoYXZlIGV4cGVyaW1lbnRlZCB3aXRoICJFeGNlbC10by1CdWd6aWxsYSIgYW5kICJFeGNlbC10by1NYW50aXMiIGJyaWRnZXMgZm9yIHRoaXMgdXNlIGNhc2UuIFRoZXNlIGJyaWRnZXMgYXJlIGltcGxlbWVudGVkIGFzIGNoYWlucyBvZiBtb2RlbCAKCQkJCQkJCXRyYW5zZm9ybWF0aW9ucy4gVGhlIGZvbGxvd2luZyBmaWd1cmUgcHJlc2VudHMgYm90aCBicmlkZ2VzLgoJCQkJCQk8L3A+CgkJCQkJCTxwIGFsaWduPSJjZW50ZXIiPgoJCQkgIAkJCQk8aW1nIHNyYz0iaW1nL0V4Y2VsMkJ1Z3ppbGxhQW5kbWFudGlzT3ZlcnZpZXcucG5nIiAvPgoJCQkJCSAgCQk8YnIgLz48YnIgLz4KCQkJCQkJCTxiPiJFeGNlbC10by1CdWd6aWxsYSIgYW5kICJFeGNlbC10by1NYW50aXMiIEJyaWRnZXM8L2I+CgkJCQkJCTwvcD4KCQkJCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJCQkJSW4gZmFjdCB3ZSBkbyBub3QgaW1wbGVtZW50IGRpcmVjdCBicmlkZ2VzIGJldHdlZW4gdGhlc2UgdG9vbHMuIFdlIHVzZSB0aGUgbG9naWNhbCBtZXRhbW9kZWwgPGI+U29mdHdhcmVRdWFsaXR5Q29udHJvbDwvYj4gYXMgYSBwaXZvdCBhbmQgdGhlcmVmb3JlIAoJCQkJCQkJZXZlcnkgbW9kZWwgdXNlZCBpbiBvbmUgb2YgdGhlIHRvb2xzIGlzIHRyYW5zZm9ybWVkIHRvIGFuIGludGVybWVkaWFyeSBtb2RlbCBjb25mb3JtaW5nIHRvIHRoZSBsb2dpY2FsIHBpdm90LgoJCQkJCQkJV2UgY2FuIHNlZSB0aGF0IGFuIEV4Y2VsIGZpbGUgaW4gWE1MIGlzIHRoZSBlbnRyeSBwb2ludCBvZiB0aGUgdHdvIGJyaWRnZXMuIFRoaXMgZmlsZSBoYXMgdG8gYmUgaW5qZWN0ZWQgaW50byBhbiBYTUwgbW9kZWwgYmVmb3JlIGJlaW5nIHRyYW5zZm9ybWVkIGludG8gYW4gRXhjZWwgCgkJCQkJCQkoU3ByZWFkc2hlZXRNTCkgbW9kZWwgYW5kIGEgU29mdHdhcmVRdWFsaXR5Q29udHJvbCBtb2RlbC4gVGhlbiwgdGhpcyBTb2Z0d2FyZS1RdWFsaXR5Q29udHJvbCBtb2RlbCBjYW4gYmUgdHJhbnNmb3JtZWQgaW50byBCdWd6aWxsYSBhbmQgTWFudGlzIG1vZGVscy4gRmluYWxseSwgdGhlc2UgdHdvIAoJCQkJCQkJbW9kZWxzIGhhdmUgdG8gYmUgdHJhbnNmb3JtZWQgaW50byBYTUwgbW9kZWxzIGluIG9yZGVyIHRvIGJlIGV4dHJhY3RlZCBpbnRvIHdlbGwtZm9ybWVkIFhNTCBkb2N1bWVudHMuIFRoZXNlIGZpbGVzIGFyZSB0aGUgZXhpdCBwb2ludHMgb2YgdGhlIHR3byBicmlkZ2VzLgoJCQkJCQk8L3A+CgkJCQkJPC90ZD4KCQkJCTwvdHI+CgkJCTwvdGFibGU+CgoJCQk8aDQgU1RZTEU9ImZvbnQtc2l6ZTogMTBwdDsgcGFkZGluZzogMDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0OTQ1N0M7IGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBsZWZ0OyBiYWNrZ3JvdW5kLXJlcGVhdDsgcmVwZWF0LXg7Ij4KCQkJCTxhIG5hbWU9InJlbGF0ZWRVc2VDYXNlcyI+PC9hPlJlbGF0ZWQgVXNlIENhc2VzCgkJCTwvaDQ+CgkJCTx0YWJsZT4KCQkJCTxDT0xHUk9VUD4KCQkJCQk8Q09MIHdpZHRoPSIyJSIgLz4KCQkJCQk8Q09MIHdpZHRoPSI5OCUiIC8+CgkJCQk8L0NPTEdST1VQPgoJCQkJPHRyPgoJCQkJCTx0ZD48L3RkPgoJCQkJCTx0ZD4KCQkJCQkJPHAgYWxpZ249Imp1c3RpZnkiPgoJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2dtdC9tb2Rpc2NvL3VzZUNhc2VzL0J1Z3ppbGxhTWV0cmljcy8iPk1vRGlzY28gVXNlIENhc2UgLSBCdWd6aWxsYSBNZXRyaWNzPC9hPgoJCQkJCQk8L3A+CgkJCQkJPC90ZD4KCQkJCTwvdHI+CgkJCTwvdGFibGU+CgoJCQk8aDQgU1RZTEU9ImZvbnQtc2l6ZTogMTBwdDsgcGFkZGluZzogMDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0OTQ1N0M7IGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBsZWZ0OyBiYWNrZ3JvdW5kLXJlcGVhdDsgcmVwZWF0LXg7Ij4KCQkJCTxhIG5hbWU9InJlZmVyZW5jZXMiPjwvYT5SZWZlcmVuY2VzCgkJCTwvaDQ+CgoJCQk8dGFibGUgd2lkdGg9IjEwMCUiPgoJCQkJPHRyIHZhbGlnbj0idG9wIj4KCQkJCQk8dGQ+CgkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuc2NpZW5jZXMudW5pdi1uYW50ZXMuZnIvbGluYS9hdGwvYmlibGlvZ3JhcGh5L1dpU01FMDVfMSI+CgkJCQkJCQlbMV0KCQkJCQkJPC9hPgoJCQkJCTwvdGQ+CgkJCQkJPHRkPgoJCQkJCQlCZXppdmluLCBKLCBCcnVuZWxpZXJlLCBILCBKb3VhdWx0LCBKLCBhbmQgS3VydGV2LCBJOgoJCQkJCQk8ZW0+IE1vZGVsIEVuZ2luZWVyaW5nIFN1cHBvcnQgZm9yIFRvb2wgSW50ZXJvcGVyYWJpbGl0eTwvZW0+LgoJCQkJCQlJbjogUHJvY2VlZGluZ3Mgb2YgdGhlIDR0aCBXb3Jrc2hvcCBpbiBTb2Z0d2FyZSBNb2RlbCBFbmdpbmVlcmluZyAoV2lTTUUgMjAwNSksIE1vbnRlZ28gQmF5LCBKYW1haWNhLgoJCQkJCTwvdGQ+CgkJCQk8L3RyPgoJCQk8L3RhYmxlPgoJCQkKCQkJPGg0IFNUWUxFPSJmb250LXNpemU6IDEwcHQ7IHBhZGRpbmc6IDA7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNDk0NTdDOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgbGVmdDsgYmFja2dyb3VuZC1yZXBlYXQ7IHJlcGVhdC14OyI+CgkJCQk8YSBuYW1lPSJkb3dubG9hZCI+RG93bmxvYWQ8L2E+CgkJCTwvaDQ+CgoJCQk8dGFibGUgd2lkdGg9IjEwMCUiPgoJCQkJPENPTEdST1VQPgoJCQkJCTxDT0wgd2lkdGg9IjI1JSI+CgkJCQkJPENPTCB3aWR0aD0iNzUlIj4KCQkJCTwvQ09MR1JPVVA+CgkJCQk8dHI+CgkJCQkJPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9InNjZW5hcmlvLnBocCI+PGgzPkNvbXBsZXRlIHNjZW5hcmlvPC9oMz48L2E+PC90ZD4KCQkJCQk8dGQ+U2NlbmFyaW8gYXZhaWxhYmxlIGluIHRoZSBBVEwgdHJhbnNmb3JtYXRpb24gem9vICh3aXRoIHNvdXJjZSBmaWxlcykuPC90ZD4KCQkJCTwvdHI+CgkJCQk8dHI+CgkJCQkJPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Im1ldGFtb2RlbHMucGhwIj48aDM+TWV0YW1vZGVsczwvaDM+PC9hPjwvdGQ+CgkJCQkJPHRkPkFsbCB0aGUgcHJvdmlkZWQgbWV0YW1vZGVscyBhcmUgZXhwcmVzc2VkIGluIHRoZSBFY29yZSBmb3JtYXQgYW5kIGFsc28gaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL2luZGV4LnBocC9LTTMiPktNMzwvYT4gdGV4dHVhbCBmb3JtYXQuPC90ZD4KCQkJCTwvdHI+CgkJCTwvdGFibGU+CgkJCQoJCQk8aDQgU1RZTEU9ImZvbnQtc2l6ZTogMTBwdDsgcGFkZGluZzogMDsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM0OTQ1N0M7IGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBsZWZ0OyBiYWNrZ3JvdW5kLXJlcGVhdDsgcmVwZWF0LXg7Ij4KCQkJCTxhIG5hbWU9ImFja25vd2xlZGdlbWVudCI+PC9hPkFja25vd2xlZGdlbWVudAoJCQk8L2g0PgoKCQkJPHRhYmxlIHdpZHRoPSIxMDAlIj4KCQkJCTxDT0xHUk9VUD4KCQkJCQk8Q09MIHdpZHRoPSIyJSI+CgkJCQkJPENPTCB3aWR0aD0iOTglIj4KCQkJCTwvQ09MR1JPVVA+CgkJCQk8dHI+CgkJCQkJPHRkPjwvdGQ+CgkJCQkJPHRkPgoJCQkJCQlUaGUgcHJlc2VudCB3b3JrIGlzIGJlaW5nIHN1cHBvcnRlZCBieSB0aGUgPGEgaHJlZj0iaHR0cDovL29wZW5lbWJlZGQuaW5yaWEuZnIvaG9tZV9odG1sLWVuP3NldF9sYW5ndWFnZT1lbiZjbD1lbiI+T3BlbkVtYmVERCBwcm9qZWN0PC9hPiwKCQkJCQkJYW5kIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnVzaW5lLWxvZ2ljaWVsbGUub3JnIj5Vc2luZSBMb2dpY2llbGxlIHByb2plY3Qgb2YgdGhlIFN5c3RlbUB0aWMgUGFyaXMgUmVnaW9uIENsdXN0ZXI8L2E+LgoJCQkJCTwvdGQ+CgkJCQk8L3RyPgoJCQk8L3RhYmxlPgoJCQkKCQk8L2Rpdj4KCTwvZGl2PgoJCgk8ZGl2IGlkPSJyaWdodGNvbHVtbiI+CgkJPGRpdiBjbGFzcz0ic2lkZWl0ZW0iPgoJCQk8aDY+R2VuZXJhbCBJbmZvcm1hdGlvbjwvaDY+CgkJCTx1bD4KCQkJCTxsaSBzdHlsZT0ibGlzdC1zdHlsZTpub25lIj5GZWJydWFyeSAyMDA3PC9saT4KCQkJCTxsaSBzdHlsZT0ibGlzdC1zdHlsZTpub25lIj5CeSA8YSBocmVmPSJodHRwOi8vd3d3LnNjaWVuY2VzLnVuaXYtbmFudGVzLmZyL2xpbmEvYXRsL2NvbnRyaWIvYWxsaWxhaXJlIj5GcmVkZHkgQWxsaWxhaXJlPC9hPiwgPGEgaHJlZj0iaHR0cDovL3d3dy5zY2llbmNlcy51bml2LW5hbnRlcy5mci9saW5hL2F0bC9jb250cmliL2pvdWF1bHQiPkZy6WTpcmljIEpvdWF1bHQ8L2E+IChJTlJJQSk8L2xpPgoJCQkJPGxpIHN0eWxlPSJsaXN0LXN0eWxlOm5vbmUiPjxiciAvPlBsZWFzZSwgYXNrIHlvdXIgcXVlc3Rpb25zIG9uIHRoZSA8YSBocmVmPSJuZXdzOi8vbmV3cy5lY2xpcHNlLm9yZy9lY2xpcHNlLm1vZGVsaW5nLm0ybSI+TTJNIG5ld3Nncm91cDwvYT48L2xpPgoJCQk8L3VsPgoJCTwvZGl2PgoJPC9kaXY+CgkKCQpFT0hUTUw7CgoKCSMgR2VuZXJhdGUgdGhlIHdlYiBwYWdlCgkkQXBwLT5nZW5lcmF0ZVBhZ2UoJHRoZW1lLCAkTWVudSwgJE5hdiwgJHBhZ2VBdXRob3IsICRwYWdlS2V5d29yZHMsICRwYWdlVGl0bGUsICRodG1sKTsKPz4=