LyoKICogVHVya2lzaCByZXNvdXJjZXMgZm9yIHJlZ2VkaXQKICoKICogQ29weXJpZ2h0IDIwMDYgRmF0aWggQf79Y/0KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19UVVJLSVNILCBTVUJMQU5HX0RFRkFVTFQKCi8qCiAqIE1lbnUKICovCgpJRENfUkVHRURJVCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJkRvc3lhIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJsf9a/3+IiwgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJllhcmT9bSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZIYWtr/W5kYS4uLiIsICAgICAgICAgICAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9SRUdFRElUX01FTlUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZLYXn9dCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIkthef10IERvc3lhc/0gJkFsLi4uIiwgICAgICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICJLYXn9dCBEb3N5YXP9ICZLYXlkZXQuLi4iLCAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQSbwIEtheWT9bmEgQmHwbGFuLi4uIiwgICAgICAgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIkHwIEtheWT9IEJh8GxhbnT9c/1u/SBLb3Bhci4uLiIsIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlksIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJZYSZ6ZP1yXHRDdHJsK1AiLCAgICAgICAgICAgICBJRF9SRUdJU1RSWV9QUklOVCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibH/Wv9/iIsICAgICAgICAgICAgICAgICAgICAgIElEX1JFR0lTVFJZX0VYSVQKICAgIEVORAogICAgUE9QVVAgIiZE/HplbiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZEZfBp/nRpciIsICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIiZZZW5pIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImQW5haHRhciIsICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIiZEaXpnZSBEZfBlcmkiLCAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIibda2lsaSBEZfBlciIsICAgICAgICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIibHaWZ0IFP2emP8ayBEZfBlcmkiLCAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU2lsXHREZWwiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImWWVuaWRlbiBBZGxhbmT9clx0RjIiLCAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQW5haHRhciBBZP1u/SBLb3B5YWxhIiwgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCdWxcdEN0cmwrRiIsICAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZTb25yYWtpbmkgQnVsXHRGMyIsICAgICAgICAgIElEX0VESVRfRklORE5FWFQsIEdSQVlFRAogICAgRU5ECiAgICBQT1BVUCAiJkf2cvxu/G0iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJEdXJ1bSAmx3VidfB1IiwgICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBJnlyYeciLCAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImWWVuaWxlXHRGNSIsICAgICAgICAgICAgICAgICBJRF9WSUVXX1JFRlJFU0gKICAgIEVORAogICAgUE9QVVAgIiZT/WsgS3VsbGFu/WxhbmxhciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlP9ayBLdWxsYW79bGFubGFyYSBFa2xlIiwgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICJT/WsgS3VsbGFu/WxhbmxhcmRhbiBTaWwiLCAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUKICAgIEVORAogICAgUE9QVVAgIiZZYXJk/W0iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImWWFyZP1tIEtvbnVsYXL9XHRGMSIsICAgICAgICBJRF9IRUxQX0hFTFBUT1BJQ1MKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU2lzdGVtIEthef10IET8emVubGV5aWNpc2kgJkhha2v9bmRhIiwgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUE9QVVBfTUVOVVMgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogIFBPUFVQICIiCiAgQkVHSU4KCU1FTlVJVEVNICImRGXwaf50aXIiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQoJTUVOVUlURU0gIt1raWxpIFZlcml5aSBEZfBp/nRpciIsICAgICAgIElEX0VESVRfTU9ESUZZX0JJTgoJTUVOVUlURU0gU0VQQVJBVE9SCglNRU5VSVRFTSAiJlNpbFx0RGVsIiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKCU1FTlVJVEVNICImWWVuaWRlbiBBZGxhbmT9ciIsICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogIEVORAogIFBPUFVQICIiCiAgQkVHSU4KICAgICAgICBQT1BVUCAiJlllbmkiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZBbmFodGFyIiwgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIiZEaXpnZSBEZfBlcmkiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICIm3WtpbGkgRGXwZXIiLCAgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJsdpZnQgU/Z6Y/xrIERl8GVyaSIsICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU2lsXHREZWwiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImWWVuaWRlbiBBZGxhbmT9clx0RjIiLCAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQW5haHRhciBBZP1u/SBLb3B5YWxhIiwgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCdWxcdEN0cmwrRiIsICAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgRU5ECkVORAoKCi8qCiAqIERpYWxvZwogKi8KCklERF9BQk9VVEJPWCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjMwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiSGFra/1uZGEiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIElDT04gICAgICAgICAgICBJRElfUkVHRURJVCxJRElfUkVHRURJVCwxNCw5LDE2LDE2CiAgICBMVEVYVCAgICAgICAgICAgIlJlYWN0T1MgcmVnZWRpdCBT/HL8bSAxLjAiLElEQ19TVEFUSUMsNDksMTAsMTE5LDgsCiAgICAgICAgICAgICAgICAgICAgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiQ29weXJpZ2h0IChDKSAyMDAyIFJlYWN0T1MgRWtpYmkiLElEQ19TVEFUSUMsNDksMjAsMTE5LDgKICAgIERFRlBVU0hCVVRUT04gICAiVGFtYW0iLElET0ssMTk1LDYsMzAsMTEsV1NfR1JPVVAKRU5ECgpJRERfRklORCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA4NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQnVsIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIkJ1bDoiLElEQ19TVEFUSUMsNSw3LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNDAsNSwxMjUsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgTFRFWFQgICAgICAgICAgICJLb251bToiLElEQ19TVEFUSUMsNSwgMjIsIDExOSwgOAogICAgQ0hFQ0tCT1ggICAgICAgICJBbmFodGFybGFyIiwgSURDX0ZJTkRfS0VZUywgNSwgMzQsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgIkRl8GVyIGFkbGFy/SIsIElEQ19GSU5EX1ZBTFVFUywgNSwgNDYsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgQ0hFQ0tCT1ggICAgICAgICJEZfBlciBp52VyafBpIiwgSURDX0ZJTkRfQ09OVEVOVCwgNSwgNTgsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgQ0hFQ0tCT1ggICAgICAgICJZYWxu/XpjYSB0/G0gc/Z6Y/xrbGVyIiwgSURDX0ZJTkRfV0hPTEUsIDUsIDcwLCA5MCwgMTAsIFdTX1RBQlNUT1AgfCBCU19BVVRPQ0hFQ0tCT1gKICAgIERFRlBVU0hCVVRUT04gICAiQnVsIixJRE9LLDE3NSw1LDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkthcGF0IixJRENBTkNFTCwxNzUsMjIsMzAsMTEsIFdTX0dST1VQCkVORAoKSUREX0FEREZBVk9SSVRFIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDU1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJT/WsgS3VsbGFu/WxhbmxhcmEgRWtsZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJBZDoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJUYW1hbSIsSURPSywxNDAsNDAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAi3XB0YWwiLElEQ0FOQ0VMLDE3NSw0MCwzMCwxMSwgV1NfR1JPVVAKRU5ECgpJRERfREVMRkFWT1JJVEUgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgOTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlP9ayBLdWxsYW79bGFubGFyZGFuIFNpbCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJBZDoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX05BTUVfTElTVCw1LDE1LDIwMCw1MiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIixJRE9LLDE0MCw3MywzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLdcHRhbCIsSURDQU5DRUwsMTc1LDczLDMwLDExLCBXU19HUk9VUApFTkQKCklERF9FRElUX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRGl6Z2V5aSBE/HplbmxlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIkRl8GVyIGFk/ToiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiRGXwZXIgdmVyaXNpOiIsSURDX1NUQVRJQyw1LDMwLDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJUYW1hbSIsSURPSywxNDAsNjAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAi3XB0YWwiLElEQ0FOQ0VMLDE3NSw2MCwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX0RXT1JEIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAix2lmdCBEaXpnZXlpIET8emVubGUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiRGXwZXIgYWT9OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJEZfBlciB2ZXJpc2k6IixJRENfU1RBVElDLDUsMzAsOTAsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsOTAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiVGFiYW4iLCBJRENfRFdPUkRfQkFTRSwgMTIwLCAzMCwgODUsIDM3LCBCU19HUk9VUEJPWAogICAgQVVUT1JBRElPQlVUVE9OICJPbmFsdP1s/SIsIElEQ19EV09SRF9IRVgsIDEzMCwgNDAsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgQVVUT1JBRElPQlVUVE9OICJPbmx1IiwgSURDX0RXT1JEX0RFQywgMTMwLCA1MiwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIixJRE9LLDE0MCw4MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICLdcHRhbCIsSURDQU5DRUwsMTc1LDgwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfQklOQVJZIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi3WtpbGl5aSBE/HplbmxlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIkRl8GVyIGFk/ToiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiRGXwZXIgdmVyaXNpOiIsSURDX1NUQVRJQyw1LDMwLDkwLDgKICAgIENPTlRST0wgICAgICAgICAiIixJRENfVkFMVUVfREFUQSwiSGV4RWRpdCIsV1NfVEFCU1RPUCw0LDQwLDE2MCw0MAogICAgREVGUFVTSEJVVFRPTiAgICJUYW1hbSIsSURPSywxNDAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAi3XB0YWwiLElEQ0FOQ0VMLDE3NSw4MCwzMCwxMSxXU19HUk9VUApFTkQKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfTElTVF9DT0xVTU5fTkFNRSAgICAiQWQiCiAgICBJRFNfTElTVF9DT0xVTU5fVFlQRSAgICAiVPxyIgogICAgSURTX0xJU1RfQ09MVU1OX0RBVEEgICAgIlZlcmkiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BUFBfVElUTEUgICAgICAgICAgICJLYXn9dCBE3HplbmxleWljaSIKICAgIElEQ19SRUdFRElUICAgICAgICAgICAgICJSRUdFRElUIgogICAgSURDX1JFR0VESVRfRlJBTUUgICAgICAgIlJFR0VESVRfRlJBTUUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1JFR0lTVFJZX01FTlUgICAgICAgICJU/G0ga2F5/XRsYXJsYSDnYWz9/m1hayBp52luIGtvbXV0bGFy/SBp52VyaXIiCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAiRGXwZXJsZXJpIHZleWEgYW5haHRhcmxhcv0gZPx6ZW5sZW1layBp52luIGtvbXV0bGFy/SBp52VyaXIiCiAgICBJRF9WSUVXX01FTlUgICAgICAgICAgICAiS2F5/XQgcGVuY2VyZXNpbmkg9nplbGxl/nRpcm1layBp52luIGtvbXV0bGFy/SBp52VyaXIiCiAgICBJRF9GQVZPUklURVNfTUVOVSAgICAgICAiU/1rIGt1bGxhbv1sYW4gYW5haHRhcmxhcmEgZXJp/m1layBp52luIGtvbXV0bGFy/SBp52VyaXIiCiAgICBJRF9IRUxQX01FTlUgICAgICAgICAgICAiS2F5/XQgZPx6ZW5sZXlpY2kgaGFra/1uZGEgeWFyZP1tIHZlIGJpbGdpIGf2c3Rlcm1layBp52luIGtvbXV0bGFy/SBp52VyaXIiCiAgICBJRF9FRElUX05FV19NRU5VICAgICAgICAiWWVuaSBhbmFodGFybGFyIHZlIGRl8GVybGVyIPxyZXRtZWsgaedpbiBrb211dGxhcv0gaedlcmlyIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9FRElUX01PRElGWSAgICAgICAgICAiRGXwZXIgdmVyaXNpbmkgZGXwaf50aXJpciIKICAgIElEX0VESVRfTkVXX0tFWSAgICAgICAgICJZZW5pIGJpciBhbmFodGFyIGVrbGVyIgogICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUgIlllbmkgYmlyIGRpemUgZGXwZXJpIGVrbGVyIgogICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUgIlllbmkgYmlyIGlraWxpIGRl8GVyIGVrbGVyIgogICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRSAgIlllbmkgYmlyIOdpZnQgc/Z6Y/xrIGRl8GVyaSBla2xlciIKICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRSAiU2lzdGVtIGtheWT9bmEgYmlyIG1ldGluIGRvc3lhc/1u/SBha3Rhcv1yIgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2lzdGVtIGtheWT9bv1uIGJpciBr/XNt/W79IHZleWEgdPxt/G78IGJpciBtZXRpbiBkb3N5YXP9bmEgYWt0YXL9ciIKICAgIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVemFrIGJpciBiaWxnaXNheWFy/W4ga2F5ZP1uYSBiYfBsYW79ciIKICAgIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVemFrIGJpciBiaWxnaXNheWFy/W4ga2F5ZP1uYSBvbGFuIGJh8GxhbnT9ef0ga2VzZXIiCiAgICBJRF9SRUdJU1RSWV9QUklOVCAgICAgICAiU2lzdGVtIGtheWT9bv1uIGJpciBr/XNt/W79IHZleWEgdPxt/G78IHlhemT9cv1yIgovKiAgICBJRF9IRUxQX0hFTFBUT1BJQ1MgICAgICAiT3BlbnMgcmVnaXN0cnkgZWRpdG9yIGhlbHAiICovCiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiUHJvZ3JhbSBiaWxnaXNpbmksIHP8cvxtIG51bWFyYXP9bv0gdmUgdGVsaWYgaGFra/1u/SBn9nN0ZXJpciIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfRVhJVCAgICAgICAgIkthef10IGT8emVubGV5aWNpc2luZGVuIOf9a2FyIgogICAgSURfRkFWT1JJVEVTX0FERFRPRkFWT1JJVEVTICJT/Wsga3VsbGFu/WxhbmxhciBsaXN0ZXNpbmUgYW5haHRhcmxhcv0gZWtsZXIiCiAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUgIlP9ayBrdWxsYW79bGFubGFyIGxpc3Rlc2luZGVuIGFuYWh0YXJsYXL9IHNpbGVyIgogICAgSURfVklFV19TVEFUVVNCQVIgICAgICAgIkR1cnVtIOd1YnXwdW51IGf2c3RlcmlyIHZleWEgZ2l6bGVyIgogICAgSURfVklFV19TUExJVCAgICAgICAgICAgIt1raSBwYW5lbCBhcmFz/W5kYWtpIGF5cmFj/W4ga29udW11bnUgZGXwaf50aXJpciIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICJQZW5jZXJleWkgeWVuaWxlciIKICAgIElEX0VESVRfREVMRVRFICAgICAgICAgICJTZedpbWkgc2lsZXIiCiAgICBJRF9FRElUX1JFTkFNRSAgICAgICAgICAiU2XnaW1pIHllbmlkZW4gYWRsYW5k/XIiCiAgICBJRF9FRElUX0NPUFlLRVlOQU1FICAgICAiU2XnaWxpIGFuYWh0YXIgYWT9bv0gcGFub3lhIGtvcHlhbGFyIgogICAgSURfRURJVF9GSU5EICAgICAgICAgICAgIkJpciBhbmFodGFyLCBkZfBlciB2ZXlhIHZlcmkgaedlcmlzaW5kZWtpIG1ldGluIGRpemVzaW5pIGJ1bHVyIgogICAgSURfRURJVF9GSU5ETkVYVCAgICAgICAgItZuY2VraSBhcmFtYWRhIGJlbGlybGVuZW4gbWV0bmluIGJpciBzb25yYWtpIGX+bGX+bWVzaW5pIGJ1bHVyIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRVJST1IJCSAgICAiSGF0YSIKICAgIElEU19CQURfS0VZCQkgICAgIiclcycgYW5haHRhcv0gc29yZ3VsYW5hbWFk/SIKICAgIElEU19CQURfVkFMVUUgICAgICAgICAgICInJXMnIGRl8GVyaSBzb3JndWxhbmFtYWT9IgogICAgSURTX1VOU1VQUE9SVEVEX1RZUEUgICAgIkJ1IHT8ciAoJWxkKSBhbmFodGFybGFyIGRl8Gn+dGlyaWxlbWV6IgogICAgSURTX1RPT19CSUdfVkFMVUUgICAgICAgIkRl8GVyIOdvayBi/Hn8ayAoJWxkKSIKICAgIElEU19ERUxFVEVfQk9YX1RJVExFICAgICJEZfBlciBzaWxtZXlpIG9uYXlsYSIKICAgIElEU19ERUxFVEVfQk9YX1RFWFQgICAgICInJXMnIGRl8GVyaW5pIHNpbG1layBpc3RlZGnwaW5pemRlbiBlbWluIG1pc2luaXo/IgogICAgSURTX05FV0tFWSAgICAgICAgICAgICAgIlllbmkgQW5haHRhciAjJWQiCiAgICBJRFNfTkVXVkFMVUUgICAgICAgICAgICAiWWVuaSBEZfBlciAjJWQiCiAgICBJRFNfTk9URk9VTkQgICAgICAgICAgICAiQXJhbWEgZGl6ZXNpICclcycgYnVsdW5hbWFk/SIKRU5ECgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoKICogRGlhbG9nCiAqLwoKSUREX0RJQUxPRzEgRElBTE9HIERJU0NBUkRBQkxFICA1MCwgNTAsIDI2OCwgOTgKU1RZTEUgRFNfM0RMT09LIHwgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0NMSVBTSUJMSU5HUyB8CiAgICBXU19CT1JERVIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgpFTkQKCklERF9ESUFMT0cyIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMTg3LCA5NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLdbGV0af5pbSBLdXR1c3UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiVGFtYW0iLElET0ssMTMwLDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAi3XB0YWwiLElEQ0FOQ0VMLDEzMCwyNCw1MCwxNApFTkQKCgovKgogKiBURVhUSU5DTFVERQogKi8KCjEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUKQkVHSU4KICAgICJyZXNvdXJjZS5oXDAiCkVORAoKCgovKgogKiBTdHJpbmcgVGFibGUKICovCgovKgogKlNUUklOR1RBQkxFIERJU0NBUkRBQkxFCiAqQkVHSU4KICogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIk9wZW5zIFJlZ2lzdHJ5IEVkaXRvciBIZWxwLiIKICogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIkRpc3BsYXlzIHByb2dyYW0gaW5mb3JtYXRpb24sIHZlcnNpb24gbnVtYmVyLCBhbmQgY29weXJpZ2h0LiIKICpFTkQKICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCg==