LyoKICogUmVnZWRpdCByZXNvdXJjZXMKICoKICogQ29weXJpZ2h0IDIwMDMsMjAwNCBKb3PpIE1hbnVlbCBGZXJyZXIgT3J0aXoKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19TUEFOSVNILCBTVUJMQU5HX05FVVRSQUwKCi8qCiAqIE1lbnUKICovCgpJRENfUkVHRURJVCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJkFyY2hpdm8iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImU2FsaXIiLCAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICJBJnl1ZGEiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQWNlcmNhIGRlLi4uIiwgICAgICAgICAgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUkVHRURJVF9NRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImUmVnaXN0cm8iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImSW1wb3J0YXIgYXJjaGl2byBkZSByZWdpc3Ryby4uLiIsIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICImRXhwb3J0YXIgYXJjaGl2byBkZSByZWdpc3Ryby4uLiIsIElEX1JFR0lTVFJZX0VYUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQ29uZWN0YXIgcmVnaXN0cm8gZGUgcmVkLi4uIiwgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZEZXNjb25lY3RhciByZWdpc3RybyBkZSByZWQuLi4iLCBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiSW0mcHJpbWlyXHRDdHJsK1AiLCAgICAgICAgICAgSURfUkVHSVNUUllfUFJJTlQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJTJmFsaXIiLCAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICImRWRpdGFyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJk1vZGlmaWNhciIsICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBQT1BVUCAiJk51ZXZvIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImQ2xhdmUiLCAgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICJWYWxvciBkZSBjJmFkZW5hIiwgICAgICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiVmFsb3IgJmJpbmFyaW8iLCAgICAgICAgICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIlZhbG9yICZEV09SRCIsICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVsaW1pbmFyXHREZWwiLCAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiJlJlbm9tYnJhclx0RjIiLCAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkNvcGlhciB2YWxvciBkZSBsYSBjbGF2ZSIsICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQnVzY2FyXHRDdHJsK0YiLCAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJCdXNjYXIgJnNpZ3VpZW50ZVx0RjMiLCAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZWZXIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQmFycmEgZGUgZXN0YWRvIiwgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU2VwYXJhciIsICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZBY3R1YWxpemFyXHRGNSIsICAgICAgICAgICAgIElEX1ZJRVdfUkVGUkVTSAogICAgRU5ECiAgICBQT1BVUCAiJkZhdm9yaXRvcyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZB8WFkaXIgYSBGYXZvcml0b3MiLCAgICAgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICImRWxpbWluYXIgRmF2b3JpdG8iLCAgICAgICAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUKICAgIEVORAogICAgUE9QVVAgIkEmeXVkYSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZUZW1hcyBkZSBheXVkYVx0RjEiLCAgICAgICAgIElEX0hFTFBfSEVMUFRPUElDUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQWNlcmNhIGRlbCBFZGl0b3IgZGUgcmVnaXN0cm8iLCBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUE9QVVBfTUVOVVMgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogIFBPUFVQICIiCiAgQkVHSU4KCU1FTlVJVEVNICImTW9kaWZpY2FyIiAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQoJTUVOVUlURU0gIk1vZGlmaWNhciBkYXRvcyBiaW5hcmlvcyIsICAgIElEX0VESVRfTU9ESUZZX0JJTgoJTUVOVUlURU0gU0VQQVJBVE9SCglNRU5VSVRFTSAiJkVsaW1pbmFyXHREZWwiLCAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKCU1FTlVJVEVNICImUmVub21icmFyIiwgICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogIEVORAogIFBPUFVQICIiCiAgQkVHSU4KCVBPUFVQICImTnVldm8iCglCRUdJTgoJCU1FTlVJVEVNICImQ2xhdmUiLCAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCgkJTUVOVUlURU0gU0VQQVJBVE9SCgkJTUVOVUlURU0gIlZhbG9yIGRlICZjYWRlbmEiLCAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQoJCU1FTlVJVEVNICJWYWxvciAmYmluYXJpbyIsICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKCQlNRU5VSVRFTSAiVmFsb3IgJkRXT1JEIiwgICAgICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUKCUVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRWxpbWluYXJcdERlbCIsICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImUmVub21icmFyXHRGMiIsICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQ29waWFyIHZhbG9yIGRlIGxhIGNsYXZlIiwgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCdXNjYXJcdEN0cmwrRiIsICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgRU5ECkVORAoKLyoKICogRGlhbG9nCiAqLwoKSUREX0FCT1VUQk9YIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMzAsIDc1ClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJBY2VyY2EgZGUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIElDT04gICAgICAgICAgICBJRElfUkVHRURJVCxJRElfUkVHRURJVCwxNCw5LDE2LDE2CiAgICBMVEVYVCAgICAgICAgICAgIlJlYWN0T1MgcmVnZWRpdCBWZXJzafNuIDEuMCIsSURDX1NUQVRJQyw0OSwxMCwxMTksOCwKICAgICAgICAgICAgICAgICAgICBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDIgRXF1aXBvIFJlYWN0T1MiLElEQ19TVEFUSUMsNDksMjAsMTE5LDgKICAgIERFRlBVU0hCVVRUT04gICAiQWNlcHRhciIsSURPSywxOTUsNiwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRWRpdGFyIGNhZGVuYSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJOb21icmUgZGVsIHZhbG9yOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIkRhdG9zIGRlbCB2YWxvcjoiLElEQ19TVEFUSUMsNSwzMCwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiQWNlcHRhciIsSURPSywxNDAsNjAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAiQ2FuY2VsYXIiLElEQ0FOQ0VMLDE3NSw2MCwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX0RXT1JEIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRWRpdGFyIGNhZGVuYSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJOb21icmUgZGVsIHZhbG9yOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIkRhdG9zIGRlbCB2YWxvcjoiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCw5MCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJCYXNlIiwgSURDX0RXT1JEX0JBU0UsIDEyMCwgMzAsIDg1LCAzNywgQlNfR1JPVVBCT1gKICAgIEFVVE9SQURJT0JVVFRPTiAiSGV4YWRlY2ltYWwiLCBJRENfRFdPUkRfSEVYLCAxMzAsIDQwLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIEFVVE9SQURJT0JVVFRPTiAiRGVjaW1hbCIsIElEQ19EV09SRF9ERUMsIDEzMCwgNTIsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgREVGUFVTSEJVVFRPTiAgICJBY2VwdGFyIixJRE9LLDE0MCw4MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICJDYW5jZWxhciIsSURDQU5DRUwsMTc1LDgwLDMwLDExLFdTX0dST1VQCkVORAoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19MSVNUX0NPTFVNTl9OQU1FICAgICJOb21icmUiCiAgICBJRFNfTElTVF9DT0xVTU5fVFlQRSAgICAiVGlwbyIKICAgIElEU19MSVNUX0NPTFVNTl9EQVRBICAgICJEYXRvcyIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIkVkaXRvciBkZWwgcmVnaXN0cm8iCiAgICBJRENfUkVHRURJVCAgICAgICAgICAgICAiUkVHRURJVCIKICAgIElEQ19SRUdFRElUX0ZSQU1FICAgICAgICJSRUdFRElUX0ZSQU1FIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9NRU5VICAgICAgICAiQ29udGllbmUgY29tYW5kb3MgcGFyYSB0cmFiYWphciBjb24gZWwgcmVnaXN0cm8gY29tcGxldG8iCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAiQ29udGllbmUgY29tYW5kb3MgcGFyYSBlZGl0YXIgdmFsb3JlcyBvIGNsYXZlcyIKICAgIElEX1ZJRVdfTUVOVSAgICAgICAgICAgICJDb250aWVuZSBjb21hbmRvcyBwYXJhIHBlcnNvbmFsaXphciBsYSB2ZW50YW5hIGRlIHJlZ2lzdHJvIgogICAgSURfRkFWT1JJVEVTX01FTlUgICAgICAgIkNvbnRpZW5lIGNvbWFuZG9zIHBhcmEgYWNjZWRlciBhIGNsYXZlcyB1c2FkYXMgZnJlY3VlbnRlbWVudGUiCiAgICBJRF9IRUxQX01FTlUgICAgICAgICAgICAiQ29udGllbmUgY29tYW5kb3MgcGFyYSBtb3N0cmFyIGF5dWRhIGUgaW5mb3JtYWNp824gc29icmUgZWwgZWRpdG9yIGRlIHJlZ2lzdHJvIgogICAgSURfRURJVF9ORVdfTUVOVSAgICAgICAgIkNvbnRpZW5lIGNvbWFuZG9zIHBhcmEgY3JlYXIgbnVldmFzIGNsYXZlcyBvIHZhbG9yZXMiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VESVRfTU9ESUZZICAgICAgICAgICJNb2RpZmljYSBsb3MgZGF0b3MgZGVsIHZhbG9yIgogICAgSURfRURJVF9ORVdfS0VZICAgICAgICAgIkHxYWRlIHVuYSBudWV2YSBjbGF2ZSIKICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFICJB8WFkZSB1biBudWV2byB2YWxvciBkZSBjYWRlbmEiCiAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRSAiQfFhZGUgdW4gbnVldm8gdmFsb3IgYmluYXJpbyIKICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUgICJB8WFkZSB1biBudWV2byB2YWxvciBkZSBkb2JsZSBwYWxhYnJhIgogICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFICJJbXBvcnRhIHVuIGFyY2hpdm8gZGUgdGV4dG8gYWwgcmVnaXN0cm8iCiAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBvcnRhIHRvZG8gbyBwYXJ0ZSBkZWwgcmVnaXN0cm8gYSB1biBhcmNoaXZvIGRlIHRleHRvIgogICAgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNlIGNvbmVjdGEgYWwgcmVnaXN0cm8gZGUgdW4gb3JkZW5hZG9yIHJlbW90byIKICAgIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZSBkZXNjb25lY3RhIGRlbCByZWdpc3RybyBkZSB1biBvcmRlbmFkb3IgcmVtb3RvIgogICAgSURfUkVHSVNUUllfUFJJTlQgICAgICAgIkltcHJpbWUgdG9kbyBvIHBhcnRlIGRlbCByZWdpc3RybyIKLyogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIk9wZW5zIHJlZ2lzdHJ5IGVkaXRvciBoZWxwIiAqLwogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIk11ZXN0cmEgaW5mb3JtYWNp824gZGVsIHByb2dyYW1hLCBu+m1lcm8gZGUgdmVyc2nzbiB5IGRlcmVjaG9zIGRlIGF1dG9yIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiU2FsZSBkZWwgZWRpdG9yIGRlIHJlZ2lzdHJvIgogICAgSURfRkFWT1JJVEVTX0FERFRPRkFWT1JJVEVTICJB8WFkZSBjbGF2ZXMgYSBsYSBsaXN0YSBkZSBmYXZvcml0b3MiCiAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUgIkVsaW1pbmEgY2xhdmVzIGRlIGxhIGxpc3RhIGRlIGZhdm9yaXRvcyIKICAgIElEX1ZJRVdfU1RBVFVTQkFSICAgICAgICJNdWVzdHJhIHUgb2N1bHRhIGxhIGJhcnJhIGRlIGVzdGFkbyIKICAgIElEX1ZJRVdfU1BMSVQgICAgICAgICAgICJDYW1iaWEgbGEgcG9zaWNp824gZGVsIHNlcGFyYWRvciBlbnRyZSBkb3MgcGFuZWxlcyIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICJBY3R1YWxpemEgbGEgdmVudGFuYSIKICAgIElEX0VESVRfREVMRVRFICAgICAgICAgICJFbGltaW5hIGxhIHNlbGVjY2nzbiIKICAgIElEX0VESVRfUkVOQU1FICAgICAgICAgICJSZW5vbWJyYSBsYSBzZWxlY2Np824iCiAgICBJRF9FRElUX0NPUFlLRVlOQU1FICAgICAiQ29waWEgZWwgbm9tYnJlIGRlIGxhIGNsYXZlIHNlbGVjY2lvbmFkYSBhbCBwb3J0YXBhcGVsZXMiCiAgICBJRF9FRElUX0ZJTkQgICAgICAgICAgICAiQnVzY2EgdW5hIGNhZGVuYSBkZSB0ZXh0byBlbiB1bmEgY2xhdmUsIHZhbG9yIG8gZGF0b3MiCiAgICBJRF9FRElUX0ZJTkRORVhUICAgICAgICAiQnVzY2EgbGEgc2lndWllbnRlIG9jdXJyZW5jaWEgZGVsIHRleHRvIGVzcGVjaWZpY2FkbyBlbiBsYSBi+nNxdWVkYSBhbnRlcmlvciIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0VSUk9SICAgICAgICAgICAgICAgIkVycm9yIgogICAgSURTX0JBRF9LRVkgICAgICAgICAgICAgIk5vIHNlIHB1ZWRlIGNvbnN1bHRhciBsYSBjbGF2ZSAnJXMnIgogICAgSURTX0JBRF9WQUxVRSAgICAgICAgICAgIk5vIHNlIHB1ZWRlIGNvbnN1bHRhciBlbCB2YWxvciAnJXMnIgogICAgSURTX1VOU1VQUE9SVEVEX1RZUEUgICAgIk5vIHNlIHB1ZWRlbiBlZGl0YXIgY2xhdmVzIGRlIGVzdGUgdGlwbyAoJWxkKSIKICAgIElEU19UT09fQklHX1ZBTFVFICAgICAgICJFbCB2YWxvciBlcyBkZW1hc2lhZG8gZ3JhbmRlICglbGQpIgogICAgSURTX0RFTEVURV9CT1hfVElUTEUgICAgIkNvbmZpcm1hciBlbGltaW5hY2nzbiBkZSB2YWxvciIKICAgIElEU19ERUxFVEVfQk9YX1RFWFQgICAgICK/U2VndXJvIHF1ZSBkZXNlYSBlbGltaW5hciBlbCB2YWxvciAnJXMnPyIKICAgIElEU19ORVdLRVkgICAgICAgICAgICAgICJOdWV2YSBjbGF2ZSAjJWQiCiAgICBJRFNfTkVXVkFMVUUgICAgICAgICAgICAiTnVldm8gdmFsb3IgIyVkIgpFTkQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qCiAqIFRFWFRJTkNMVURFCiAqLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRQpCRUdJTgogICAgInJlc291cmNlLmhcMCIKRU5ECgoKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KCi8qCiAqU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKICpCRUdJTgogKiAgICBJRF9IRUxQX0hFTFBUT1BJQ1MgICAgICAiT3BlbnMgUmVnaXN0cnkgRWRpdG9yIEhlbHAuIgogKiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiRGlzcGxheXMgcHJvZ3JhbSBpbmZvcm1hdGlvbiwgdmVyc2lvbiBudW1iZXIsIGFuZCBjb3B5cmlnaHQuIgogKkVORAogKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K