LyoKICogV2luZUZpbGUKICogUG9saXNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDAgTWFydGluIEZ1Y2hzCiAqIENvcHlyaWdodCAyMDAyIFN0ZXZlbiBFZHdhcmRzCiAqIENvcHlyaWdodCAyMDAyIEFsZXhhbmRyZSBKdWxsaWFyZAogKiBDb3B5cmlnaHQgMjAwNCBQaW90ciBDYWJhbgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX1BPTElTSCwgU1VCTEFOR19ERUZBVUxUCgovKiBNZW51ICovCgpJRE1fV0lORUZJTEUgTUVOVSBGSVhFRCBJTVBVUkUKewogICAgUE9QVVAgIiZQbGlrIiAgewogICAgICAgIE1FTlVJVEVNICImT3R383J6XHRFbnRlciIsICAgICAgICAgICAgICBJRF9BQ1RJVkFURQogICAgICAgIE1FTlVJVEVNICImUHJ6ZW5pZZwuLi5cdEY3IiwgICAgICAgICAgICBJRF9GSUxFX01PVkUKICAgICAgICBNRU5VSVRFTSAiJktvcGl1ai4uLlx0RjgiLCAgICAgICAgICAgICAgSURfRklMRV9DT1BZCiAgICAgICAgTUVOVUlURU0gIlcgcyZjaG93a3UuLi5cdEY5IiwgICAgICAgICAgIDExOAogICAgICAgIE1FTlVJVEVNICImVXN18Vx0RGVsIiwgICAgICAgICAgICAgICAgICBJRF9GSUxFX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImWm1pZfEgbmF6d+ouLi4iLCAgICAgICAgICAgICAxMDkKICAgICAgICBNRU5VSVRFTSAiV7NhnGMmaXdvnGNpLi4uXHRBbHQrRW50ZXIiLCAgIElEX0VESVRfUFJPUEVSVElFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJLbyZtcHJlc2phLi4uIiwgICAgICAgICAgICAgICAxMTkKICAgICAgICBNRU5VSVRFTSAiRCZla29tcHJlc2phLi4uIiwgICAgICAgICAgICAgMTIwCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlUmcnVjaG9tLi4uIiwgICAgICAgICAgICAgICAgIElEX0VYRUNVVEUKICAgICAgICBNRU5VSVRFTSAiJkRydWt1ai4uLiIsICAgICAgICAgICAgICAgICAgMTAyCiAgICAgICAgTUVOVUlURU0gIlNrb2phcnouLi4iLCAgICAgICAgICAgICAgICAgIDEwMwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJVJnR383J6IGZvbGRlci4uLiIsICAgICAgICAgICAxMTEKICAgICAgICBNRU5VSVRFTSAiJlN6dWthai4uLiIsICAgICAgICAgICAgICAgICAgMTA0CiAgICAgICAgTUVOVUlURU0gIlomYXpuYWN6IHBsaWtpLi4uIiwgICAgICAgICAgIDExNgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIiZXeWqcY2llXHRBbHQrWCIsICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZWxzZQogICAgICAgIE1FTlVJVEVNICImV3lqnGNpZSIsICAgICAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKI2VuZGlmCiAgICB9CgogICAgUE9QVVAgIiZEeXNrIiAgewogICAgICAgIE1FTlVJVEVNICImS29waXVqIGR1c2suLi4iLCAgICAgICAgICAgICAyMDEKICAgICAgICBNRU5VSVRFTSAiJkV0eWtpZXRhIGR5c2t1Li4uIiwgICAgICAgICAgMjAyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZGb3JtYXR1aiBkeXNrLi4uIiwgICAgICAgICAgIElEX0ZPUk1BVF9ESVNLCiNpZmRlZiBfV0lOOTUKICAgICAgICBNRU5VSVRFTSAiJlN0d/NyeiBkeXNrIHN5c3RlbW93eS4uLiIsIC0xICAgIC8qVE9ETyovCiNlbmRpZgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUG9ks7ljeiBEeXNrIFNpZWNpb3d5IiwgICAgICBJRF9DT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSAiJk9ks7ljeiBEeXNrIFNpZWNpb3d5IiwgICAgICAgSURfRElTQ09OTkVDVF9ORVRXT1JLX0RSSVZFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlVkb3N06nBuaWogamFrby4uLiIsICAgICAgICAgIDI1NAogICAgICAgIE1FTlVJVEVNICImTmllIHVkb3N06nBuaWFqLi4uIiwgICAgICAgICAyNTUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiV3li83IgJmR5c2t1Li4uIiwgICAgICAgICAgICAgMjUxCiAgICB9CgogICAgUE9QVVAgIiZLYXRhbG9naSIgIHsKICAgICAgICBNRU5VSVRFTSAiJk5hc3TqcG55IHBvemlvbVx0KyIsICAgICAgICAgMzAxCiAgICAgICAgTUVOVUlURU0gIiZSb3p3afEgZHJ6ZXdvXHQqIiwgICAgICAgICAgIDMwMgogICAgICAgIE1FTlVJVEVNICJSb3p3afEgJndzenlzdGtvXHRTdHJnKyoiLCAgICAzMDMKICAgICAgICBNRU5VSVRFTSAiJlp3afEgZHJ6ZXdvXHQtIiwgICAgICAgICAgICAgMzA0CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlphem5hY3ogJnBvZGthdGFsb2dpIiwgICAgICAgIDUwNQogICAgfQoKICAgIFBPUFVQICImV2lkb2siICB7CiAgICAgICAgTUVOVUlURU0gIiZEcnpld28gaSBrYXRhbG9naSIsICAgICAgICAgIDQxMwogICAgICAgIE1FTlVJVEVNICJEJnJ6ZXdvIiwgICAgICAgICAgICAgICAgICAgICA0MTEKICAgICAgICBNRU5VSVRFTSAiJkthdGFsb2dpIiwgICAgICAgICAgICAgICAgICAgNDEyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZQb7O5Y3oiLCAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk5hendhIiwgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19OQU1FCiAgICAgICAgTUVOVUlURU0gIiZXc3p5c3RraWUgYXRyeWJ1dHkgcGxpa3UiLCAgIElEX1ZJRVdfQUxMX0FUVFJJQlVURVMsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiV3licmFuZSAmYXRyeWJ1dHkgcGxpa3UuLi4iLCAgSURfVklFV19TRUxFQ1RFRF9BVFRSSUJVVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlAmb3NvcnR1aiBhbGZhYmV0eWN6bmllIiwgICAgIDQwNAogICAgICAgIE1FTlVJVEVNICJQb3NvcnR1aiBwbyAmdHlwaWUiLCAgICAgICAgICA0MDUKICAgICAgICBNRU5VSVRFTSAiUG9zb3J0dWogcG8gd2llJmxrb5xjaSIsICAgICAgNDA2CiAgICAgICAgTUVOVUlURU0gIlBvJnNvcnR1aiBwbyBkYWNpZSIsICAgICAgICAgICAgNDA3CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkZpbHRydWogd2lkb2sgJi4uLiIsICAgICAgICAgICAgICBJRF9WSUVXX0ZJTFRFUgogICAgfQoKICAgIFBPUFVQICImT3BjamUiICB7CiAgICAgICAgTUVOVUlURU0gIiZQb3R3aWVyZHplbmllLi4uIiwgICAgICAgICAgIDUwMQogICAgICAgIE1FTlVJVEVNICImQ3pjaW9ua2EuLi4iLCAgICAgICAgICAgICAgICBJRF9TRUxFQ1RfRk9OVAogICAgICAgIE1FTlVJVEVNICImVXN0YXdpZW5pYSBwYXNrYSBuYXJ66mR6aS4uLiIsIDUxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQYXNlayAmbmFyeupkemkiLCAgICAgICAgICAgICBJRF9WSUVXX1RPT0xfQkFSLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIlBhc2VrICZkeXNr83ciLCAgICAgICAgICAgICAgIElEX1ZJRVdfRFJJVkVfQkFSLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIlBhc2VrICZzdGF0dXN1IiwgICAgICAgICAgICAgIElEX1ZJRVdfU1RBVFVTQkFSLCBDSEVDS0VECiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiUGWzbnkgJmVrcmFuXHRDdHJsK1NoaWZ0K1MiLCAgSURfVklFV19GVUxMU0NSRUVOCiNlbmRpZgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImWm1pbmltYWxpenVqIHByenkgc3RhcmNpZSIsICA1MDQKICAgICAgICBNRU5VSVRFTSAiWiZhcGlzeiB1c3Rhd2llbmlhIHByemVkIHpha2/xY3plbmllbSIsNTExCiAgICB9CgoKICAgIFBPUFVQICImQmV6cGllY3pl8XN0d28iICB7CiAgICAgICAgTUVOVUlURU0gIiZEb3N06nAuLi4iLCAgICAgICAgICAgICAgICAgIDYwNQogICAgICAgIE1FTlVJVEVNICImTG9nb3dhbmllLi4uIiwgICAgICAgICAgICAgICA2MDYKICAgICAgICBNRU5VSVRFTSAiJlezYZxjaWNpZWwuLi4iLCAgICAgICAgICAgICAgNjA3CiAgICB9CgogICAgUE9QVVAgIiZPa25vIiAgewogICAgICAgIE1FTlVJVEVNICImTm93ZSBva25vIiwgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dfTkVXCiAgICAgICAgTUVOVUlURU0gIiZLYXNrYWR1arljb1x0Q3RybCtGNSIsICAgICAgIElEX1dJTkRPV19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gIiZUeXR1syBwaW9ub3dvIiwgICAgICAgICAgICAgIElEX1dJTkRPV19USUxFX0hPUloKICAgICAgICBNRU5VSVRFTSAiVHl0dbMgJnBvemlvbW9cdEN0cmwrRjQiLCAgICAgSURfV0lORE9XX1RJTEVfVkVSVAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIlJvem1pZZzmIGF1dG9tYXR5Y3puaWUiLCAgICAgIElEX1dJTkRPV19BVVRPU09SVAojZW5kaWYKICAgICAgICBNRU5VSVRFTSAiUm96bWllnOYgJnN5bWJvbGUiLCAgICAgICAgICAgSURfV0lORE9XX0FSUkFOR0UKICAgICAgICBNRU5VSVRFTSAiJk9knHdpZb9cdEY1IiwgICAgICAgICAgICAgICBJRF9SRUZSRVNICiAgICB9CgogICAgUE9QVVAgIiY/IiAgewogICAgICAgIE1FTlVJVEVNICImVGVtYXR1IHBvbW9jeVx0RjEiLCAgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIiZTenVrYWouLi4iLCAgICAgICAgICAgICAgICAgIElEX0hFTFAKICAgICAgICBNRU5VSVRFTSAiJlW/eXdhbmllIHBvbW9jeSIsICAgICAgICAgICAgSURfSEVMUF9VU0lORwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImV2luZWZpbGUuLi4iLCAgICAgICAgICAgICAgICBJRF9BQk9VVAogICAgfQp9CgoKSUREX0VYRUNVVEUgRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVXJ1Y2hvbSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBDT05UUk9MICAgICAgICAgIiIsIDEwMSwgIlN0YXRpYyIsIFNTX1NJTVBMRXxTU19OT1BSRUZJWCwgMywgNiwgMTYyLCAxMAogICAgQ09OVFJPTCAgICAgICAgICImUG9sZWNlbmllOiIsIC0xLCAiU3RhdGljIiwgU1NfTEVGVE5PV09SRFdSQVB8V1NfR1JPVVAsIDMsIDE4LCA2MCwgMTAKICAgIEVESVRURVhUICAgICAgICAyMDEsIDMsIDI5LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTAogICAgQ09OVFJPTCAgICAgICAgICJKYWtvICZzeW1ib2wiLCAyMTQsICJCdXR0b24iLCBCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUCwzLCA0NSwgNzEsIDEyCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIiwgMSwgMTU4LCA2LCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiQW51bHVqIiwgMiwgMTU4LCAyMywgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZQb21vYyIsIDI1NCwgMTU4LCA0MywgNDcsIDE0Cn0KCklERF9TRUxFQ1RfREVTVElOQVRJT04gRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiV3li83IgY2VsdSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBDT05UUk9MICAgICAgICAgIiIsIDEwMSwgIlN0YXRpYyIsIFNTX1NJTVBMRXxTU19OT1BSRUZJWCwgMywgNiwgMTYyLCAxMAogICAgQ09OVFJPTCAgICAgICAgICImjGNpZb9rYToiLCAtMSwgIlN0YXRpYyIsIFNTX0xFRlROT1dPUkRXUkFQfFdTX0dST1VQLCAzLCAxOCwgNjAsIDEwCiAgICBFRElUVEVYVCAgICAgICAgMjAxLCAzLCAyOSwgMTM0LCAxMiwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbnVsdWoiLCAyLCAxNTgsIDIzLCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiJlByemVnbLlkYWoiLCAyNTQsIDE1OCwgNDMsIDQ3LCAxNAp9CgpJRERfRElBTE9HX1ZJRVdfVFlQRSBESUFMT0cgRElTQ0FSREFCTEUgMTUsIDEzLCAxNjEsIDk3ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIldlZLN1ZyB0eXB1IHBsaWt1IgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICImTmF6d2E6IiwtMSw3LDgsMjIsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfVklFV19QQVRURVJOLDMxLDcsNjMsMTIsRVNfQVVUT0hTQ1JPTEwKICAgIEdST1VQQk9YICAgICAgICAiV3mcd2lldGwgcGxpa2kgdHlwdSIsLTEsNywyMyw4Nyw1NgogICAgQ09OVFJPTCAgICAgICAgICImS2F0YWxvZ2kiLElEQ19WSUVXX1RZUEVfRElSRUNUT1JJRVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMywzMiw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImUHJvZ3JhbXkiLElEQ19WSUVXX1RZUEVfUFJPR1JBTVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw0Myw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICJEb2t1Jm1lbnR5IixJRENfVklFV19UWVBFX0RPQ1VNRU5UUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDU0LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZJbm5lIHBsaWtpIixJRENfVklFV19UWVBFX09USEVSUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDY1LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIlBva2G/IHBsaWtpIHVrcnl0ZSBpICZzeXN0ZW1vd2UiLElEQ19WSUVXX1RZUEVfSElEREVOLAogICAgICAgICAgICAgICAgICAgICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw4MSwxMjYsOQogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxMDQsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbnVsdWoiLElEQ0FOQ0VMLDEwNCwyNCw1MCwxNApFTkQKCklERF9ESUFMT0dfUFJPUEVSVElFUyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0OCwgMjE1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlezYZxjaXdvnGNpOiAlcyIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTkxLDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQW51bHVqIixJRENBTkNFTCwxOTEsMjksNTAsMTQKICAgIExURVhUICAgICAgICAgICAiJk5hendhIHBsaWt1OiIsLTEsNyw3LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfRklMRU5BTUUsNzEsNywxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZQZbNuYSCcY2llv2thOiIsLTEsNywxOCw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1BBVEgsNzEsMTgsMTIwLDksIEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJk9zdGF0bmlvIG1vZHlmaWtvd2FueToiLC0xLDcsMjksNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9MQVNUQ0hBTkdFLDcxLDI5LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJldlcnNqYToiLC0xLDcsNDAsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9WRVJTSU9OLDcxLDQwLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiUHJhd2EgYSZ1dG9yc2tpZToiLC0xLDcsNTEsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9DT1BZUklHSFQsNzEsNTEsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJXaWUmbGtvnOY6IiwtMSw3LDYyLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfU0laRSw3MSw2MiwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIkF0cnlidXR5IiwtMSw3LDc5LDE1OCw0NgogICAgQ09OVFJPTCAgICAgICAgICJUeWxrbyBkbyAmb2Rjenl0dSIsSURDX0NIRUNLX1JFQURPTkxZLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImVWtyeXR5IixJRENfQ0hFQ0tfSElEREVOLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImQXJjaGl3YWxueSIsSURDX0NIRUNLX0FSQ0hJVkUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNywxMDEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImU3lzdGVtb3d5IixJRENfQ0hFQ0tfU1lTVEVNLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsMTAxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiUyZrb21wcmVzb3dhbnkiLElEQ19DSEVDS19DT01QUkVTU0VELCJCdXR0b24iLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDExMSw2OCw5CiAgICBHUk9VUEJPWCAgICAgICAgIldlJnJzamEiLC0xLDcsMTI5LDIzNCw3OQogICAgTElTVEJPWCAgICAgICAgIElEQ19MSVNUX1BST1BfVkVSU0lPTl9UWVBFUywxMywxMzksMTA3LDYzLExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgRURJVFRFWFQgICAgICAgIElEQ19MSVNUX1BST1BfVkVSU0lPTl9WQUxVRVMsMTIzLDEzOSwxMTEsNjMsRVNfTVVMVElMSU5FIHwgRVNfUkVBRE9OTFkgfCBXU19WU0NST0xMCkVORAoKU1RSSU5HVEFCTEUKewogICAgSURTX0ZPTlRfU0VMX0RMR19OQU1FICAgIldwcm93YWR6YW5pZSB1c3Rhd2ll8SBjemNpb25raSIKICAgIElEU19GT05UX1NFTF9FUlJPUiAgICAgICJCs7lkIHByenkgd3liaWVyYW5pdSBjemNpb25raSIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX1dJTkVGSUxFICAgICAgICAgICAgIldpbmVmaWxlIgogICAgSURTX0VSUk9SICAgICAgICAgICAgICAgIkKzuWQiCiAgICBJRFNfUk9PVF9GUyAgICAgICAgICAgICAicm9vdCBmcyIKICAgIElEU19VTklYRlMgICAgICAgICAgICAgICJ1bml4ZnMiCiAgICBJRFNfREVTS1RPUCAgICAgICAgICAgICAiUHVscGl0IgogICAgSURTX1NIRUxMICAgICAgICAgICAgICAgIlB1bHBpdCIgICAgICAgLyogdLN1bWFjemVuaWUgbmllIGRvc7Nvd25lLCBhbGUgY2h5YmEgbGVwaWVqIHBhc3VqZSAqLwogICAgSURTX1RJVExFRk1UICAgICAgICAgICAgIiVzIC0gJXMiCiAgICBJRFNfTk9fSU1QTCAgICAgICAgICAgICAiSmVzemN6ZSBuaWUgemFpbXBsZW1lbnRvd2FuZSIKICAgIElEU19XSU5FX0ZJTEUgICAgICAgICAgICJXaW5lIEZpbGUiCn0KClNUUklOR1RBQkxFCnsKICAgIElEU19DT0xfTkFNRSAgICAgICAgICAgICJOYXp3YSIKICAgIElEU19DT0xfU0laRSAgICAgICAgICAgICJXaWVsa2+c5iIKICAgIElEU19DT0xfQ0RBVEUgICAgICAgICAgICJDRGF0ZSIKICAgIElEU19DT0xfQURBVEUgICAgICAgICAgICJBRGF0ZSIKICAgIElEU19DT0xfTURBVEUgICAgICAgICAgICJNRGF0ZSIKICAgIElEU19DT0xfSURYICAgICAgICAgICAgICJJbmRla3MvaW5vZGUiCiAgICBJRFNfQ09MX0xJTktTICAgICAgICAgICAiRG93abl6YW5pYSIKICAgIElEU19DT0xfQVRUUiAgICAgICAgICAgICJBdHJ5YnV0eSIKICAgIElEU19DT0xfU0VDICAgICAgICAgICAgICJQcmF3YSBkb3N06nB1IgoKICAgIElEU19GUkVFX1NQQUNFX0ZNVCAgICAgICIlcyB6ICVzIHdvbG5lIgp9Cg==