LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA0IEhlbm5pbmcgR2VyaGFyZHQKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19HRVJNQU4sIFNVQkxBTkdfTkVVVFJBTAoKTUVOVV8wMDEgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJTUVOVUlURU0gIiZHcm/fZSBTeW1ib2xlIiwJRkNJRE1fU0hWSUVXX0JJR0lDT04KCU1FTlVJVEVNICImS2xlaW5lIFN5bWJvbGUiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCglNRU5VSVRFTSAiJkxpc3RlIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJTUVOVUlURU0gIiZEZXRhaWxzIiwJCUZDSURNX1NIVklFV19SRVBPUlRWSUVXCkVORAoKLyoKIHNoZWxsdmlldyBiYWNrZ3JvdW5kIG1lbnUKKi8KTUVOVV8wMDIgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJUE9QVVAgIiIKCUJFR0lOCgkgIFBPUFVQICImQW5zaWNodCIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJkdyb99lIFN5bWJvbGUiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJICAgIE1FTlVJVEVNICImS2xlaW5lIFN5bWJvbGUiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCgkgICAgTUVOVUlURU0gIiZMaXN0ZSIsCQlGQ0lETV9TSFZJRVdfTElTVFZJRVcKCSAgICBNRU5VSVRFTSAiJkRldGFpbHMiLAlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIFBPUFVQICJTeW1ib2xlIGFub3JkbmVuIgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICJOYWNoICZOYW1lIiwJMHgzMAkvKiBjb2x1bW4gMCAqLwoJICAgIE1FTlVJVEVNICJOYWNoICZUeXAiLAkweDMyCS8qIGNvbHVtbiAyICovCgkgICAgTUVOVUlURU0gIk5hY2ggJkdy9t9lIiwJMHgzMQkvKiAuLi4gKi8KCSAgICBNRU5VSVRFTSAiTmFjaCAmRGF0dW0iLAkweDMzCgkgICAgTUVOVUlURU0gU0VQQVJBVE9SCgkgICAgTUVOVUlURU0gIiZBdXRvbWF0aXNjaCBhbm9yZG5lbiIsCUZDSURNX1NIVklFV19BVVRPQVJSQU5HRQoJICBFTkQKCSAgTUVOVUlURU0gIkljb25zIGFub3JkbmVuIiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJBa3R1YWxpc2llcmVuIiwJCUZDSURNX1NIVklFV19SRUZSRVNICgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiRWluZvxnZW4iLAkJRkNJRE1fU0hWSUVXX0lOU0VSVAoJICBNRU5VSVRFTSAiRWluZvxnZW4gYWxzIFZlcmtu/HBmdW5nIiwJRkNJRE1fU0hWSUVXX0lOU0VSVExJTksKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIFBPUFVQICJOZXUiCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIk5ldWVzIFZlciZ6ZWljaG5pcyIsCUZDSURNX1NIVklFV19ORVdGT0xERVIKCSAgICBNRU5VSVRFTSAiTmV1ZSBWZXIma278cGZ1bmciLAlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImRWlnZW5zY2hhZnRlbiIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgovKgogc2hlbGx2aWV3IGl0ZW0gbWVudQoqLwpNRU5VX1NIVl9GSUxFIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBNRU5VSVRFTSAiQXVzJnfkaGxlbiIJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNICJFJnJrdW5kZW4iLAkJRkNJRE1fU0hWSUVXX0VYUExPUkUKCSAgTUVOVUlURU0gIibWZmZuZW4iCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZBdXNzY2huZWlkZW4iLAkJRkNJRE1fU0hWSUVXX0NVVAoJICBNRU5VSVRFTSAiJktvcGllcmVuIiwJCUZDSURNX1NIVklFV19DT1BZCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiJlZlcmtu/HBmdW5nIGVyemV1Z2VuIiwJRkNJRE1fU0hWSUVXX0NSRUFURUxJTksKCSAgTUVOVUlURU0gIiZM9nNjaGVuIiwJCUZDSURNX1NIVklFV19ERUxFVEUKCSAgTUVOVUlURU0gIiZVbWJlbmVubmVuIiwJCUZDSURNX1NIVklFV19SRU5BTUUKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImRWlnZW5zY2hhZnRlbiIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgpNRU5VX0NQQU5FTCBNRU5VCkJFR0lOCiAgICBQT1BVUCAiJkZpbGUiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJFJnhpdCIsIElETV9DUEFORUxfRVhJVAogICAgRU5ECgogICAgUE9QVVAgIiZWaWV3IgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkdyb99lIFN5bWJvbGUiLCBGQ0lETV9TSFZJRVdfQklHSUNPTgogICAgICAgIE1FTlVJVEVNICImS2xlaW5lIFN5bWJvbGUiLCBGQ0lETV9TSFZJRVdfU01BTExJQ09OCiAgICAgICAgTUVOVUlURU0gIiZMaXN0ZSIsIEZDSURNX1NIVklFV19MSVNUVklFVwogICAgICAgIE1FTlVJVEVNICImRGV0YWlscyIsIEZDSURNX1NIVklFV19SRVBPUlRWSUVXCiAgICBFTkQKCiAgICBQT1BVUCAiJkhlbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQWJvdXQgQ29udHJvbCBQYW5lbC4uLiIsIElETV9DUEFORUxfQUJPVVQKICAgIEVORApFTkQKClNIQlJTRk9SRk9MREVSX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDE4OCwgMTkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIlZlcnplaWNobmlzIGF1c3fkaGxlbiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIDEsIDgwLCAxNzYsIDUwLCAxMiwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQWJicmVjaGVuIiwgMiwgMTM0LCAxNzYsIDUwLCAxMiwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAiIiwgSUREX1RJVExFLCA0LCA0LCAxODAsIDEyCiBMVEVYVCAiIiwgSUREX1NUQVRVUywgNCwgMjUsIDE4MCwgMTIKIENPTlRST0wgIiIsIElERF9UUkVFVklFVywgIlN5c1RyZWVWaWV3MzIiLAogCVRWU19IQVNCVVRUT05TIHwgVFZTX0hBU0xJTkVTIHwgVFZTX0xJTkVTQVRST09UIHwKCVdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCgk0LCA0MCwgMTgwLCAxMjAKfQoKU0hORVdCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMjE4LCAxOTYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgV1NfU0laRUJPWCB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIlZlcnplaWNobmlzIGF1c3fkaGxlbiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAiIiwgSUREX1RJVExFLCAxMCwgOCwgMTk4LCAyNAogTFRFWFQgIiIsIElERF9TVEFUVVMsIDEwLCAyNSwgMTk4LCAxMgogTFRFWFQgIlZlcnplaWNobmlzOiIsIElERF9GT0xERVIsIDEwLCAxNTYsIDQwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCiAgICAgICAgVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAogICAgICAgIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCiAgICAgICAgMTIsIDM4LCAxOTQsIDEwNQogRURJVFRFWFQgSUREX0ZPTERFUlRFWFQsIDQ2LCAxNTAsIDE2MCwgMTQsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJk5ldWVzIFZlcnplaWNobmlzIGVyc3RlbGxlbiIsIElERF9NQUtFTkVXRk9MREVSLCAxMiwgMTc0LCA5NSwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxMTIsIDE3NCwgNDUsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBYmJyZWNoZW4iLCBJRENBTkNFTCwgMTYxLCAxNzQsIDQ1LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KClNIRUxMX1lFU1RPQUxMX01TR0JPWCBESUFMT0cgMjAwLCAxMDAsIDI4MCwgOTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk1lbGR1bmciCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgREVGUFVTSEJVVFRPTiAiJkphIiwgSURZRVMsIDM0LCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIkphIHp1ICZhbGxlbiIsIElERF9ZRVNUT0FMTCwgOTIsIDY5LCA2NSwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiJk5laW4iLCBJRE5PLCAxNjIsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiQWJicmVjaGVuIiwgSURDQU5DRUwsIDIyMCwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBJQ09OICIiLCBJRERfSUNPTiwgMTAsIDEwLCAxNiwgMTYKICAgIExURVhUICIiLCBJRERfTUVTU0FHRSwgNDAsIDEwLCAyMzgsIDUyLCAwCn0KClNIRUxMX0FCT1VUX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDIxMCwgMTUyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJJbmZvcm1hdGlvbmVuIPxiZXIgJXMiCkZPTlQgMTAsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTUzLCAxMzMsIDUwLCAxMiwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkxpemVuei4uLiIsIElEQ19BQk9VVF9MSUNFTlNFLCAxNTMsIDExMywgNTAsIDEyLCBXU19UQUJTVE9QCiBMSVNUQk9YIElEQ19BQk9VVF9MSVNUQk9YLCA4LCA2NSwgMTM3LCA4MiwgTEJTX05PVElGWSB8IFdTX1ZTQ1JPTEwgfCBXU19CT1JERVIKIElDT04gIiIsIHN0YzEsIDEwLCAxMCwgMzAsIDMwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMSwgNDAsIDEwLCAxMzcsIDEwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMiwgNDAsIDIyLCAxMzcsIDEwCiBMVEVYVCAiV2luZSBWZXJzaW9uICVzIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMywgNDAsIDM0LCAxNzAsIDEwCiBMVEVYVCAiV2luZSB3dXJkZSBm/HIgU2llIGdla2VsdGVydCB2b246IiwgSURDX0FCT1VUX1dJTkVfVEVYVCwgOCwgNTUsIDEzNywgMTAKfQoKU0hFTExfUlVOX0RMRyBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyMjcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogSUNPTiAiIiwgMTIyOTcsIDcsIDExLCAxOCwgMjAsIFdTX1ZJU0lCTEUKIExURVhUICJHZWJlbiBzaWUgZGVuIE5hbWVuIGVpbmVzIFByb2dyYW1tZXMsIGVpbmVzIE9yZG5lcnMsIGVpbmVzIERva3VtZW50ZXMgb2RlciBlaW5lciBJbnRlcm5ldC1SZXNzb3VyY2UgZWluLCBkaWUgZ2X2ZmZuZXQgd2VyZGVuIHNvbGwiLCAxMjI4OSwgMzYsIDExLCAxODIsIDE4CiBMVEVYVCAi1iZmZm5lbjoiLCAxMjMwNSwgNywgMzksIDI0LCAxMAogQ09OVFJPTCAiIiwgMTIyOTgsICJDT01CT0JPWCIsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IFdTX1ZTQ1JPTEwgfCBXU19WSVNJQkxFIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19EUk9QRE9XTiwgMzYsIDM3LCAxODMsIDEwMAogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCA2MiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQWJicmVjaGVuIiwgSURDQU5DRUwsIDExNiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkR1cmNoc3VjaGVuLi4uIiwgMTIyODgsIDE3MCwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAp9CgpTVFJJTkdUQUJMRQp7CiAgICAgICAgLyogY29sdW1ucyBpbiB0aGUgc2hlbGx2aWV3ICovCglJRFNfU0hWX0NPTFVNTjEJCSJEYXRlaSIKCUlEU19TSFZfQ09MVU1OMgkJIkdy9t9lIgoJSURTX1NIVl9DT0xVTU4zCQkiVHlwIgoJSURTX1NIVl9DT0xVTU40CQkiR2XkbmRlcnQiCglJRFNfU0hWX0NPTFVNTjUJCSJBdHRyaWJ1dGUiCglJRFNfU0hWX0NPTFVNTjYJCSJHZXNhbXRncvbfZSIKCUlEU19TSFZfQ09MVU1ONwkJIkZyZWllciBTcGVpY2hlciIKCUlEU19TSFZfQ09MVU1OOAkJIk5hbWUiCglJRFNfU0hWX0NPTFVNTjkJCSJLb21tZW50YXIiCglJRFNfU0hWX0NPTFVNTjEwCSJCZXNpdHplciIKCUlEU19TSFZfQ09MVU1OMTEJIkdydXBwZSIKCUlEU19TSFZfQ09MVU1OX0RFTEZST00JIlVyc3BydW5nIgoJSURTX1NIVl9DT0xVTU5fREVMREFURQkiR2Vs9nNjaHQgYW0iCgogICAgICAgIC8qIHNwZWNpYWwgZm9sZGVycyAqLwoJSURTX0RFU0tUT1AJCSJEZXNrdG9wIgoJSURTX01ZQ09NUFVURVIJCSJBcmJlaXRzcGxhdHoiCglJRFNfUkVDWUNMRUJJTl9GT0xERVJfTkFNRSAgICAgICJQYXBpZXJrb3JiIgoJSURTX0NPTlRST0xQQU5FTAkiQ29udHJvbCBQYW5lbCIKCiAgICAgICAgLyogY29udGV4dCBtZW51cyAqLwoJSURTX1ZJRVdfTEFSR0UJCSImR3Jv32UgU3ltYm9sZSIKCUlEU19WSUVXX1NNQUxMCQkiJktsZWluZSBTeW1ib2xlIgoJSURTX1ZJRVdfTElTVAkJIiZMaXN0ZSIKCUlEU19WSUVXX0RFVEFJTFMJIiZEZXRhaWxzIgoJSURTX1NFTEVDVAkJIkF1c3fkaGxlbiIKCUlEU19PUEVOCQki1mZmbmVuIgoKCUlEU19DUkVBVEVGT0xERVJfREVOSUVEICJFcyBrb25udGUga2VpbiBuZXVlcyBWZXJ6ZWljaG5pcyBlcnN0ZWxsdCB3ZXJkZW46IFp1Z3JpZmYgdmVyd2VpZ2VydC4iCglJRFNfQ1JFQVRFRk9MREVSX0NBUFRJT04gIkVzIHRyYXQgZWluIEZlaGxlciBiZWltIEVyc3RlbGxlbiBlaW5lcyBuZXVlbiBWZXJ6ZWljaG5pc3NlcyBhdWYiCglJRFNfREVMRVRFSVRFTV9DQVBUSU9OICJCZXN05HRpZ3VuZzogT2JqZWt0IGz2c2NoZW4iCglJRFNfREVMRVRFRk9MREVSX0NBUFRJT04gIkJlc3TkdGlndW5nOiBWZXJ6ZWljaG5pcyBs9nNjaGVuIgoJSURTX0RFTEVURUlURU1fVEVYVCAiU2luZCBTaWUgc2ljaCBzaWNoZXIsIGRhc3MgU2llICclMScgbPZzY2hlbiBt9mNodGVuPyIKCUlEU19ERUxFVEVNVUxUSVBMRV9URVhUICJTaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgZGllc2UgJTEgT2JqZWt0ZSBs9nNjaGVuIG32Y2h0ZW4/IgoJSURTX0RFTEVURVNFTEVDVEVEX1RFWFQgIlNpbmQgU2llIHNpY2ggc2ljaGVyLCBkYXNzIFNpZSBkaWUgYXVzZ2V35GhsdGVuIE9iamVrdGUgbPZzY2hlbiBt9mNodGVuPyIKCUlEU19UUkFTSElURU1fVEVYVCAiU2luZCBTaWUgc2ljaCBzaWNoZXIsIGRhc3MgU2llICclMScgaW4gZGVuIFBhcGllcmtvcmIgdmVyc2NoaWViZW4gbfZjaHRlbj8iCglJRFNfVFJBU0hGT0xERVJfVEVYVCAiU2luZCBTaWUgc2ljaCBzaWNoZXIsIGRhc3MgU2llICclMScgdW5kIHNlaW5lbiBJbmhhbHQgaW4gZGVuIFBhcGllcmtvcmIgdmVyc2NoaWViZW4gbfZjaHRlbj8iCglJRFNfVFJBU0hNVUxUSVBMRV9URVhUICJTaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgZGllc2UgJTEgRGF0ZWllbiBpbiBkZW4gUGFwaWVya29yYiB2ZXJzY2hpZWJlbiBt9mNodGVuPyIKCUlEU19DQU5UVFJBU0hfVEVYVCAiRGFzIE9iamVrdCAnJTEnIGthbm4gbmljaHQgaW4gZGVuIFBhcGllcmtvcmIgdmVyc2Nob2JlbiB3ZXJkZW4uXG5cbiBN9mNodGVuIFNpZSBlcyBzdGF0dGRlc3NlbiBs9nNjaGVuPyIKCUlEU19PVkVSV1JJVEVGSUxFX1RFWFQgIkRlciBPcmRuZXIgZW50aORsdCBiZXJlaXRzIGVpbmUgRGF0ZWkgbmFtZW5zICclMScuXG5cbiBXb2xsZW4gU2llIGRpZSBEYXRlaSBlcnNldHplbj8iCglJRFNfT1ZFUldSSVRFRklMRV9DQVBUSU9OICJCZXN05HRpZ3VuZzogRGF0ZWkg/GJlcnNjaHJlaWJlbiIKCUlEU19PVkVSV1JJVEVGT0xERVJfVEVYVCAiSW0gVmVyemVpY2huaXMgYmVmaW5kZXQgc2ljaCBiZXJlaXRzIGVpbiBPcmRuZXIgbmFtZW5zICclMScuXG5cbiJcCgkiV2VubiBkaWUgRGF0ZWllbiBpbSBaaWVsb3JkbmVyIGRpZSBnbGVpY2hlbiBOYW1lbiBoYWJlbiwgd2llIGRpZSBpbSBhdXNnZXfkaGx0ZW4gT3JkbmVyLCB3ZXJkZW4gc2llIGVyc2V0enQuXG5cblwKCU32Y2h0ZW4gc2llIHRyb3R6ZGVtIGZvcnRmYWhyZW4/IgoKICAgICAgICAvKiBtZXNzYWdlIGJveCBzdHJpbmdzICovCiAgICAgICAgSURTX1JFU1RBUlRfVElUTEUgICAgICAgIk5ldXN0YXJ0ZW4iCiAgICAgICAgSURTX1JFU1RBUlRfUFJPTVBUICAgICAgIk32Y2h0ZW4gU2llLCBkYXNzIGVpbiBzaW11bGllcnRlciBXaW5kb3dzIE5ldXN0YXJ0IGR1cmNoZ2Vm/GhydCB3aXJkPyIKICAgICAgICBJRFNfU0hVVERPV05fVElUTEUgICAgICAiQmVlbmRlbiIKICAgICAgICBJRFNfU0hVVERPV05fUFJPTVBUICAgICAiTfZjaHRlbiBTaWUgZGllIGFrdHVlbGxlIFdpbmUgU2l0enVuZyBiZWVuZGVuPyIKCiAgICAgICAgLyogc2hlbGwgZm9sZGVyIHBhdGggZGVmYXVsdCB2YWx1ZXMgKi8KCUlEU19QUk9HUkFNUwkJIlN0YXJ0bWVu/FxcUHJvZ3JhbW1lIgoJSURTX1BFUlNPTkFMCQkiRWlnZW5lIERhdGVpZW4iCglJRFNfRkFWT1JJVEVTCQkiRmF2b3JpdGVuIgoJSURTX1NUQVJUVVAJCSJTdGFydG1lbvxcXFByb2dyYW1tZVxcQXV0b3N0YXJ0IgoJSURTX1JFQ0VOVAkJIlJlY2VudCIKCUlEU19TRU5EVE8JCSJTZW5kVG8iCglJRFNfU1RBUlRNRU5VCQkiU3RhcnRtZW78IgoJSURTX01ZTVVTSUMJCSJFaWdlbmUgTXVzaWsiCglJRFNfTVlWSURFTwkJIkVpZ2VuZSBWaWRlb3MiCglJRFNfREVTS1RPUERJUkVDVE9SWQkiRGVza3RvcCIKCUlEU19ORVRIT09ECQkiTmV0endlcmt1bWdlYnVuZyIKCUlEU19URU1QTEFURVMJCSJWb3JsYWdlbiIKCUlEU19BUFBEQVRBCQkiQW53ZW5kdW5nc2RhdGVuIgoJSURTX1BSSU5USE9PRAkJIkRydWNrdW1nZWJ1bmciCglJRFNfTE9DQUxfQVBQREFUQQkiTG9rYWxlIEVpbnN0ZWxsdW5nZW5cXEFud2VuZHVuZ3NkYXRlbiIKCUlEU19JTlRFUk5FVF9DQUNIRQkiTG9rYWxlIEVpbnN0ZWxsdW5nZW5cXFRlbXBvcmFyeSBJbnRlcm5ldCBGaWxlcyIKCUlEU19DT09LSUVTCQkiQ29va2llcyIKCUlEU19ISVNUT1JZCQkiTG9rYWxlIEVpbnN0ZWxsdW5nZW5cXFZlcmxhdWYiCglJRFNfUFJPR1JBTV9GSUxFUwkiUHJvZ3JhbW1lIgoJSURTX01ZUElDVFVSRVMJCSJFaWdlbmUgQmlsZGVyIgoJSURTX1BST0dSQU1fRklMRVNfQ09NTU9OICJQcm9ncmFtbWVcXEdlbWVpbnNhbWUgRGF0ZWllbiIKCUlEU19DT01NT05fRE9DVU1FTlRTCSJEb2t1bWVudGUiCglJRFNfQURNSU5UT09MUwkJIlN0YXJ0bWVu/FxcUHJvZ3JhbW1lXFxWZXJ3YWx0dW5nIgoJSURTX0NPTU1PTl9NVVNJQwkiRG9rdW1lbnRlXFxFaWdlbmUgTXVzaWsiCglJRFNfQ09NTU9OX1BJQ1RVUkVTCSJEb2t1bWVudGVcXEVpZ2VuZSBCaWxkZXIiCglJRFNfQ09NTU9OX1ZJREVPCSJEb2t1bWVudGVcXEVpZ2VuZSBWaWRlb3MiCglJRFNfQ0RCVVJOX0FSRUEJCSJMb2thbGUgRWluc3RlbGx1bmdlblxcQW53ZW5kdW5nc2RhdGVuXFxNaWNyb3NvZnRcXENEIEJ1cm5pbmciCgoJSURTX05FV0ZPTERFUgkJIk5ldWVyIE9yZG5lciIKCglJRFNfQ1BBTkVMX1RJVExFCSJXaW5lIENvbnRyb2wgUGFuZWwiCglJRFNfQ1BBTkVMX05BTUUJCSJOYW1lIgoJSURTX0NQQU5FTF9ERVNDUklQVElPTgkiRGVzY3JpcHRpb24iCn0KClNUUklOR1RBQkxFCnsKSURTX0xJQ0VOU0VfQ0FQVElPTiwgICAgICAgICAgICAiV2luZSBMaWNlbnNlIgpJRFNfTElDRU5TRSwKIldpbmUgaXN0IGZyZWllIFNvZnR3YXJlOyBTaWUgZPxyZmVuIHNpZSB1bnRlciBkZW4gQmVkaW5ndW5nZW4gXApkZXIgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3ZWxjaGUgdm9uIGRlciBcCkZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiB2ZXL2ZmZlbnRsaWNodCB3dXJkZTsgd2VpdGVyIHZlcnRlaWxlbiBcCnVuZC9vZGVyIG1vZGlmaXppZXJlbiBnZW3k3yBWZXJzaW9uIDIuMSBkZXIgTGl6ZW56LCBvZGVyIFwKKG5hY2ggaWhyZW4gRXJtZXNzZW4pIGplZGVyIHNw5HRlcmVuIFZlcnNpb24uXG5cblwKV2luZSB3aXJkIG1pdCBkZXIgSG9mZm51bmcgdmVydGVpbHQgZGFzIGVzIHNpY2ggYWxzIG78dHpsaWNoIGVyd2Vpc3QuIFwKV2luZSBrb21tdCBhYmVyIE9ITkUgSkVHTElDSEUgR0FSQU5USUUgZGFoZXI7IHNvZ2FyIG9obmUgZWluZXIgXAphbmdlZGV1dGV0ZW4gR2FyYW50aWUgZGVyIE1BUktUR8ROR0lHS0VJVCBvZGVyIGRlciBFSUdOVU5HIEbcUiBFSU5FTiBcCkJFU1RJTU1URU4gTlVUWkVOLiBTZWhlbiBTaWUgc2ljaCBkaWUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIFwKYW4gZvxyIG1laHIgRGV0YWlscy5cblxuXApTaWUgc29sbHRlbiBtaXQgZGllc2VyIEJpYmxpb3RoZWsgYXVjaCBlaW5lIEtvcGllIGRlciBcCkdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBlcmhhbHRlbiBoYWJlbjsgd2VubiBuaWNodCBzY2hyZWliZW4gXApTaWUgZGVyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgXApJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLiIKfQo=