LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAyMDA0LCAyMDA4IEpvc+kgTWFudWVsIEZlcnJlciBPcnRpegogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX1NQQU5JU0gsIFNVQkxBTkdfTkVVVFJBTAoKLyogTWVudSAqLwoKTUFJTl9NRU5VIE1FTlUKewogUE9QVVAgIiZBcmNoaXZvIiB7CiAgIE1FTlVJVEVNICImTnVldm8uLi4iLAkJCVBNX05FVwogICBNRU5VSVRFTSAiQSZicmlyXHRFbnRlciIsCQkJUE1fT1BFTgogICBNRU5VSVRFTSAiJk1vdmVyLi4uXHRGNyIsCQkJUE1fTU9WRSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZDb3BpYXIuLi5cdEY4IiwJCQlQTV9DT1BZLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiJkVsaW1pbmFyXHRTdXByIiwJCQlQTV9ERUxFVEUKICAgTUVOVUlURU0gIiZBdHJpYnV0b3MuLi5cdEFsdCtFbnRlciIsCQlQTV9BVFRSSUJVVEVTCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiJkVqZWN1dGFyLi4uIiwJCQlQTV9FWEVDVVRFCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiJlNhbGlyIGRlIFdpbmRvd3MuLi4iLAkJUE1fRVhJVAogfQogUE9QVVAgIiZPcGNpb25lcyIgewogICBNRU5VSVRFTSAiJk9yZGVuYXIgYXV0b23hdGljYW1lbnRlIiwJCVBNX0FVVE9fQVJSQU5HRQogICBNRU5VSVRFTSAiJk1pbmltaXphciBhbCBsYW56YXJzZSIsCQlQTV9NSU5fT05fUlVOCiAgIE1FTlVJVEVNICImR3VhcmRhciBjb25maWd1cmFjafNuIGFsIHNhbGlyIiwJUE1fU0FWRV9TRVRUSU5HUwogfQogUE9QVVAgIiZWZW50YW5hcyIgewogICBNRU5VSVRFTSAiJkNhc2NhZGFcdFNoaWZ0K0Y1IiwJCVBNX09WRVJMQVAKICAgTUVOVUlURU0gIiZNb3NhaWNvXHRTaGlmdCtGNCIsCQlQTV9TSURFX0JZX1NJREUKICAgTUVOVUlURU0gIiZPcmRlbmFyIGljb25vcyIsCQkJUE1fQVJSQU5HRQogfQogClBPUFVQICJBJnl1ZGEiIHsKICAgTUVOVUlURU0gIiZDb250ZW5pZG8iLAkJCVBNX0NPTlRFTlRTCiAgIE1FTlVJVEVNICImQnVzY2FyLi4uIiwJCQlQTV9TRUFSQ0gKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImQXl1ZGEgc29icmUgbGEgYXl1ZGEiLAkJUE1fSEVMUE9OSEVMUAogICBNRU5VSVRFTSAiJlR1dG9yaWFsIiwJCQlQTV9UVVRPUklBTAogICBNRU5VSVRFTSBTRVBBUkFUT1IKCiAgIFBPUFVQICImSW5mby4uLiIgewogICAgIE1FTlVJVEVNICImTGljZW5jaWEiLAkJCVBNX0xJQ0VOU0UKICAgICBNRU5VSVRFTSAiJlNJTiBHQVJBTlTNQSIsCQkJUE1fTk9fV0FSUkFOVFkKICAgICBNRU5VSVRFTSAiJkFjZXJjYSBkZSBXSU5FIiwJCVBNX0FCT1VUX1dJTkUKICAgfQogfQp9CgovKiBEaWFsb2cgYE5ldycgKi8KCkRJQUxPR19ORVcgRElBTE9HIDAsIDAsIDE3MCwgNjUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTnVldm8iCnsKUkFESU9CVVRUT04gICAiIiwgICAgICAgICAgICAgICAgIFBNX05FV19HUk9VUCwgICAgMTAsIDE1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIiZHcnVwbyBkZSBwcm9ncmFtYSIsICAgLTEsICAgIDIwLCAxOCwgIDgwLCAxNQpSQURJT0JVVFRPTiAgICIiLCAgICAgICAgICAgICAgICAgUE1fTkVXX1BST0dSQU0sICAxMCwgMzUsICAxMCwgMTUKTFRFWFQgICAgICAgICAiJlByb2dyYW1hIiwgLTEsICAyMCwgMzgsICA4MCwgMTUKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICAgIElET0ssICAgICAgICAgICAxMDUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICBJRENBTkNFTCwgICAgICAgMTA1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBJnl1ZGEiLCAgICAgICAgUE1fSEVMUCwgICAgICAgIDEwNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBNb3ZlJyAqLwoKRElBTE9HX01PVkUgRElBTE9HIDAsIDAsIDI1MCwgNjUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTW92ZXIgcHJvZ3JhbWEiCnsKTFRFWFQgICAgICAgICAiTW92ZXIgcHJvZ3JhbWE6IiwgIC0xLCAgICAgICAgICAgNSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgICA5NSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJkRlbCBncnVwbzoiLCAgICAgIC0xLCAgICAgICAgICAgNSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgICA5NSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJkFsIGdydXBvOiIsICAgICAgIFBNX1RPX0dST1VQX1RYVCwgICAgNSwgMjgsIDE0MCwgMTUKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgNSwgMzgsIDE0MCwgNTAsIFdTX1RBQlNUT1AgfCBDQlNfRFJPUERPV05MSVNUCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICAgICBJRENBTkNFTCwgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkEmeXVkYSIsICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAxODUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgQ29weScgKi8KCkRJQUxPR19DT1BZIERJQUxPRyAwLCAwLCAyNTAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNvcGlhciBwcm9ncmFtYSIKewpMVEVYVCAgICAgICAgICJDb3BpYXIgcHJvZ3JhbWE6IiwgIC0xLCAgICAgICAgICA1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgIFBNX1BST0dSQU0sICAgICAgIDk1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICImRGVsIGdydXBvOiIsICAgICAgIC0xLCAgICAgICAgICA1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICIiLCAgICAgICAgICAgICAgICAgIFBNX0ZST01fR1JPVVAsICAgIDk1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICImQWwgZ3J1cG86IiwgICAgICAgIFBNX1RPX0dST1VQX1RYVCwgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICA1LCAzOCwgMTQwLCA1MCwgV1NfVEFCU1RPUCB8IENCU19EUk9QRE9XTkxJU1QKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICAgICBJRE9LLCAgICAgICAgICAgIDE4NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgICAgICBJRENBTkNFTCwgICAgICAgIDE4NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQSZ5dWRhIiwgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBHcm91cCBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX0dST1VQIERJQUxPRyAwLCAwLCAyMzAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkF0cmlidXRvcyBkZWwgZ3J1cG8gZGUgcHJvZ3JhbWEiCnsKTFRFWFQgICAgICAgICAiJkRlc2NyaXBjafNuOiIsICBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDE4LCA1MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICBQTV9ERVNDUklQVElPTiwgICAgICAgNjAsIDE4LCA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgIiZBcmNoaXZvIGRlIGdydXBvOiIsICBQTV9GSUxFX1RYVCwgICAgICAgICAgMDUsIDM4LCA1MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICBQTV9GSUxFLCAgICAgICAgICAgICAgNjAsIDM4LCA5MCwgMTUsIFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxNTUsICA1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxNTUsIDI1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQSZ5dWRhIiwgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxNTUsIDQ1LCA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBQcm9ncmFtIGF0dHJpYnV0ZXMnICovCgpESUFMT0dfUFJPR1JBTSBESUFMT0cgMCwgMCwgMjUwLCAxMDUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQXRyaWJ1dG9zIGRlbCBwcm9ncmFtYSIKewpMVEVYVCAgICAgICAgICImRGVzY3JpcGNp8246IiwgIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTAsIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA4MCwgMTAsIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICImTO1uZWEgZGUgY29tYW5kb3M6IiwgIFBNX0NPTU1BTkRfTElORV9UWFQsICAwNSwgMjUsIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkRfTElORSwgICAgICA4MCwgMjUsIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAiRGlyZWN0b3JpbyBkZSAmdHJhYmFqbzoiLFBNX0RJUkVDVE9SWV9UWFQsICAgICAwNSwgNDAsIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RJUkVDVE9SWSwgICAgICAgICA4MCwgNDAsIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAiJkNvbWJpbmFjafNuIGRlIHRlY2xhczoiLFBNX0hPVF9LRVlfVFhULCAgICAgICAwNSwgNTUsIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgIFBNX0hPVF9LRVksICAgICAgICAgICA4MCwgNTUsIDkwLCAxNSwgV1NfVEFCU1RPUApJQ09OICAgICAgICAgICIiLCAgICAgICAgICAgICAgIFBNX0lDT04sICAgICAgICAgICAgICAyMCwgNzAKQ0hFQ0tCT1ggICAgICAiIiwgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAgICAgICAgICAgODAsIDc1LCAxMCwgMTAsIFdTX1RBQlNUT1AKTFRFWFQgIiZNaW5pbWl6YXIgYWwgbGFuemFyc2UiLCAtMSwgICAgICAgICAgICAgOTUsIDc1LCA3NSwgMTAKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxODUsICA1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxODUsIDI1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkV4cGxvcmFyLi4uIiwgICBQTV9CUk9XU0UsICAgICAgICAgICAxODUsIDQ1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAiQ2FtYmlhciAmaWNvbm8uLi4iLCBQTV9PVEhFUl9TWU1CT0wsICAgICAxODUsIDY1LCA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQSZ5dWRhIiwgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxODUsIDg1LCA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBTeW1ib2wnICovCgpESUFMT0dfU1lNQk9MIERJQUxPRyAwLCAwLCAyMDAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNhbWJpYXIgaWNvbm8iCnsKTFRFWFQgICAgICImTm9tYnJlIGRlIGFyY2hpdm86IiwgUE1fSUNPTl9GSUxFX1RYVCwgICAgNSwgMTUsICA0MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSUNPTl9GSUxFLCAgICAgICA0NSwgMTUsICA4NSwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJkljb25vIGFjdHVhbDoiLCAgUE1fU1lNQk9MX0xJU1RfVFhULCAgNSwgMzAsIDEyNSwgMTAKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MX0xJU1QsICAgICAgNSwgNDAsIDEyNSwgNTAsCiAgIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBXU19UQUJTVE9QCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgIElET0ssICAgICAgICAgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZFeHBsb3Jhci4uLiIsICAgIFBNX0JST1dTRSwgICAgICAgICAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkEmeXVkYSIsICAgICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgRXhlY3V0ZScgKi8KCkRJQUxPR19FWEVDVVRFIERJQUxPRyAwLCAwLCAyMDAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVqZWN1dGFyIHByb2dyYW1hIgp7CkxURVhUICAgICAgICAgIkztbmVhIGRlICZjb21hbmRvczoiLCAgICAgLTEsICAgMDUsIDE1LCAxMjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fQ09NTUFORCwgMDUsIDI1LCAxMjAsIDE1LCBXU19UQUJTVE9QCkNIRUNLQk9YICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MLCAgMDUsIDQ1LCAgMTAsIDEwLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZNaW5pbWl6YXIgYWwgbGFuemFyc2UiLCAgLTEsICAgMjAsIDQ1LCAxMjAsIDEwCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgICAgICAgICAgSURPSywgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICAgICAgICAgICAgSURDQU5DRUwsICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZFeHBsb3Jhci4uLiIsICAgICAgICAgICAgUE1fQlJPV1NFLCAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkEmeXVkYSIsICAgICAgICAgICAgICAgICAgUE1fSEVMUCwgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIFN0cmluZ3MgKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKSURTX1BST0dSQU1fTUFOQUdFUiwJCSJHZXN0b3IgZGUgcHJvZ3JhbWFzIgpJRFNfRVJST1IsCQkJIkVSUk9SIgpJRFNfV0FSTklORywJCQkiQURWRVJURU5DQSIKSURTX0lORk8sCQkJIkluZm9ybWFjafNuIgpJRFNfREVMRVRFLAkJCSJFbGltaW5hciIKSURTX0RFTEVURV9HUk9VUF9zLAkJIr9FbGltaW5hciBncnVwbyBgJXMnPyIKSURTX0RFTEVURV9QUk9HUkFNX3MsCQkiv0VsaW1pbmFyIHByb2dyYW1hIGAlcyc/IgpJRFNfTk9UX0lNUExFTUVOVEVELAkJIk5vIGltcGxlbWVudGFkbyIKSURTX0ZJTEVfUkVBRF9FUlJPUl9zLAkJIkVycm9yIGxleWVuZG8gYCVzJy4iCklEU19GSUxFX1dSSVRFX0VSUk9SX3MsCQkiRXJyb3IgZXNjcmliaWVuZG8gYCVzJy4iCklEU19HUlBGSUxFX1JFQURfRVJST1JfcywJIlwKRWwgYXJjaGl2byBkZSBncnVwbyBgJXMnIG5vIHNlIHB1ZWRlIGFicmlyLlxuXAq/RGViZSB2b2x2ZXIgYSBpbnRlbnRhcnNlIG3hcyBhZGVsYW50ZT8iCklEU19PVVRfT0ZfTUVNT1JZLAkJIlNpbiBtZW1vcmlhLiIKSURTX1dJTkhFTFBfRVJST1IsCQkiQXl1ZGEgbm8gZGlzcG9uaWJsZS4iCklEU19VTktOT1dOX0ZFQVRVUkVfcywJCSJDYXJhY3Rlcu1zdGljYSBkZXNjb25vY2lkYSBlbiAlcyIKSURTX0ZJTEVfTk9UX09WRVJXUklUVEVOX3MsCSJFbCBhcmNoaXZvIGAlcycgZXhpc3RlLiBObyBzZSBoYSBzb2JyZWVzY3JpdG8uIgpJRFNfU0FWRV9HUk9VUF9BU19zLAkJIkd1YXJkZSBlbCBncnVwbyBjb21vIGAlcycgcGFyYSBwcmV2ZW5pciBsYSBzb2JyZWVzY3JpdHVyYSBkZSBsb3MgYXJjaGl2b3Mgb3JpZ2luYWxlcy4iCklEU19OT19IT1RfS0VZLAkJCSJOaW5ndW5hIgpJRFNfQUxMX0ZJTEVTLAkJCSJUb2RvcyBsb3MgYXJjaGl2b3MgKCouKikiCklEU19QUk9HUkFNUywJCQkiUHJvZ3JhbWFzIgpJRFNfTElCUkFSSUVTX0RMTCwJCSJMaWJyYXLtYXMgKCouZGxsKSIKSURTX1NZTUJPTF9GSUxFUywJCSJBcmNoaXZvcyBkZSBpY29ub3MiCklEU19TWU1CT0xTX0lDTywJCSJJY29ub3MgKCouaWNvKSIKfQoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICJMSUNFTkNJQSIKSURTX0xJQ0VOU0UsCiJUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIFwKbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciBcCnZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXApUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgXApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBcCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblwKWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgXApGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBIgoKSURTX1dBUlJBTlRZX0NBUFRJT04sICAgICAgICAgICAiU0lOIEdBUkFOVM1BIgpJRFNfV0FSUkFOVFksCiJUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgXApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBcCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4iCn0K