LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAyMDA0IEpvc+kgTWFudWVsIEZlcnJlciBPcnRpegogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgovKiBNZW51ICovCgpMQU5HVUFHRSBMQU5HX1NQQU5JU0gsIFNVQkxBTkdfREVGQVVMVApNQUlOX01FTlUgTUVOVQp7CiBQT1BVUCAiJkFyY2hpdm8iIHsKICAgTUVOVUlURU0gIiZOdWV2by4uLiIsCQkJUE1fTkVXCiAgIE1FTlVJVEVNICJBJmJyaXJcdEVudGVyIiwJCQlQTV9PUEVOCiAgIE1FTlVJVEVNICImTW92ZXIuLi5cdEY3IiwJCQlQTV9NT1ZFLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiJkNvcGlhci4uLlx0RjgiLAkJCVBNX0NPUFksICAgICAgR1JBWUVECiAgIE1FTlVJVEVNICImRWxpbWluYXJcdEVudGYiLAkJCVBNX0RFTEVURQogICBNRU5VSVRFTSAiJkF0cmlidXRvcy4uLlx0QWx0K0VudGVyIiwJCVBNX0FUVFJJQlVURVMKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImRWplY3V0YXIuLi4iLAkJCVBNX0VYRUNVVEUKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImU2FsaXIgZGUgV2luZG93cy4uLiIsCQlQTV9FWElUCiB9CiBQT1BVUCAiJk9wY2lvbmVzIiB7CiAgIE1FTlVJVEVNICImT3JkZW5hciBhdXRvbeF0aWNhbWVudGUiLAkJUE1fQVVUT19BUlJBTkdFCiAgIE1FTlVJVEVNICImTWluaW1pemFyIGFsIGxhbnphcnNlIiwJCVBNX01JTl9PTl9SVU4KICAgTUVOVUlURU0gIiZHdWFyZGFyIGNvbmZpZ3VyYWNp824gYWwgc2FsaXIiLAlQTV9TQVZFX1NFVFRJTkdTCiB9CiBQT1BVUCAiJlZlbnRhbmFzIiB7CiAgIE1FTlVJVEVNICImQ2FzY2FkYVx0U2hpZnQrRjUiLAkJUE1fT1ZFUkxBUAogICBNRU5VSVRFTSAiJk1vc2FpY29cdFNoaWZ0K0Y0IiwJCVBNX1NJREVfQllfU0lERQogICBNRU5VSVRFTSAiJk9yZGVuYXIgaWNvbm9zIiwJCQlQTV9BUlJBTkdFCiB9CiAKUE9QVVAgIkEmeXVkYSIgewogICBNRU5VSVRFTSAiJkNvbnRlbmlkbyIsCQkJUE1fQ09OVEVOVFMKICAgTUVOVUlURU0gIiZCdXNjYXIuLi4iLAkJCVBNX1NFQVJDSAogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIiZBeXVkYSBzb2JyZSBsYSBheXVkYSIsCQlQTV9IRUxQT05IRUxQCiAgIE1FTlVJVEVNICImVHV0b3JpYWwiLAkJCVBNX1RVVE9SSUFMCiAgIE1FTlVJVEVNIFNFUEFSQVRPUgoKICAgUE9QVVAgIiZJbmZvLi4uIiB7CiAgICAgTUVOVUlURU0gIiZMaWNlbmNpYSIsCQkJUE1fTElDRU5TRQogICAgIE1FTlVJVEVNICImU0lOIEdBUkFOVM1BIiwJCQlQTV9OT19XQVJSQU5UWQogICAgIE1FTlVJVEVNICImQWNlcmNhIGRlIFdJTkUiLAkJUE1fQUJPVVRfV0lORQogICB9CiB9Cn0KCi8qIERpYWxvZyBgTmV3JyAqLwoKRElBTE9HX05FVyBESUFMT0cgMCwgMCwgMTcwLCA2NQpTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIk51ZXZvIgp7ClJBRElPQlVUVE9OICAgIiIsICAgICAgICAgICAgICAgICBQTV9ORVdfR1JPVVAsICAgIDEwLCAxNSwgIDEwLCAxNQpMVEVYVCAgICAgICAgICImR3J1cG8gZGUgcHJvZ3JhbWEiLCAgIFBNX05FV19HUk9VUCwgICAgMjAsIDE4LCAgODAsIDE1ClJBRElPQlVUVE9OICAgIiIsICAgICAgICAgICAgICAgICBQTV9ORVdfUFJPR1JBTSwgIDEwLCAzNSwgIDEwLCAxNQpMVEVYVCAgICAgICAgICImUHJvZ3JhbWEiLCBQTV9ORVdfUFJPR1JBTSwgIDIwLCAzOCwgIDgwLCAxNQpERUZQVVNIQlVUVE9OICJBY2VwdGFyIiwgICAgICAgICAgSURPSywgICAgICAgICAgIDEwNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgIElEQ0FOQ0VMLCAgICAgICAxMDUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZBeXVkYSIsICAgICAgICBQTV9IRUxQLCAgICAgICAgMTA1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYE1vdmUnICovCgpESUFMT0dfTU9WRSBESUFMT0cgMCwgMCwgMjUwLCA2NQpTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIk1vdmVyIHByb2dyYW1hIgp7CkxURVhUICAgICAgICAgIk1vdmVyIHByb2dyYW1hOiIsICAgIElESUdOT1JFLCAgICAgICAgICAgIDUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fUFJPR1JBTSwgICAgICAgICA5NSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJkRlc2RlIGVsIGdydXBvOiIsIElESUdOT1JFLCAgICAgICAgICAgIDUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fRlJPTV9HUk9VUCwgICAgICA5NSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJkhhc3RhIGVsIGdydXBvOiIsICAgUE1fVE9fR1JPVVBfVFhULCAgICAgNSwgMjgsIDE0MCwgMTUKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9UT19HUk9VUCwgICAgICAgICA1LCAzOCwgMTQwLCA1MCwgV1NfVEFCU1RPUCB8IENCU19EUk9QRE9XTkxJU1QKREVGUFVTSEJVVFRPTiAiQWNlcHRhciIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJDYW5jZWxhciIsICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZBeXVkYSIsICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBDb3B5JyAqLwoKRElBTE9HX0NPUFkgRElBTE9HIDAsIDAsIDI1MCwgNjUKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICJDb3BhciBwcm9ncmFtYSIKewpMVEVYVCAgICAgICAgICJDb3BpYXIgcHJvZ3JhbWE6IiwgICAgSURJR05PUkUsICAgICAgICAgICAgNSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9QUk9HUkFNLCAgICAgICAgIDk1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICImRGVzZGUgZWwgZ3J1cG86IiwgSURJR05PUkUsICAgICAgICAgICAgNSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9GUk9NX0dST1VQLCAgICAgIDk1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICImSGFzdGEgZWwgZ3J1cG86IiwgICBQTV9UT19HUk9VUF9UWFQsICAgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgIDUsIDM4LCAxNDAsIDUwLCBXU19UQUJTVE9QIHwgQ0JTX0RST1BET1dOTElTVApERUZQVVNIQlVUVE9OICJBY2VwdGFyIiwgICAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICAgICAgSURDQU5DRUwsICAgICAgICAgIDE4NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkF5dWRhciIsICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBHcm91cCBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX0dST1VQIERJQUxPRyAwLCAwLCAyMzAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiQXRyaWJ1dG9zIGRlbCBncnVwbyBkZSBwcm9ncmFtYSIKewpMVEVYVCAgICAgIiZEZXNjcmlwY2nzbjoiLCBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDE4LCAgNTAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA2MCwgMTgsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICImQXJjaGl2byBkZSBncnVwbzoiLCAgICAgICAgUE1fRklMRV9UWFQsICAgICAgICAgIDA1LCAzOCwgIDUwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9GSUxFLCAgICAgICAgICAgICAgNjAsIDM4LCAgOTAsIDE1LCBXU19UQUJTVE9QCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE1NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQ2FuY2VsYXIiLCAgICAgICAgSURDQU5DRUwsICAgICAgICAgICAgMTU1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImQXl1ZGEiLCAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxNTUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgUHJvZ3JhbSBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX1BST0dSQU0gRElBTE9HIDAsIDAsIDI1MCwgMTA1ClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiQXRyaWJ1dG9zIGRlbCBwcm9ncmFtYSIKewpMVEVYVCAgICAgICAgICImRGVzY3JpcGNp8246IiwgIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTAsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA4MCwgMTAsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJkztbmVhIGRlIGNvbWFuZG9zOiIsIFBNX0NPTU1BTkRfTElORV9UWFQsICAwNSwgMjUsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkRfTElORSwgICAgICA4MCwgMjUsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJkRpcmVjdG9yaW8gZGUgdHJhYmFqbzoiLCAgICBQTV9ESVJFQ1RPUllfVFhULCAgICAgMDUsIDQwLCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9ESVJFQ1RPUlksICAgICAgICAgODAsIDQwLCAgOTAsIDE1LCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZDb21iaW5hY2nzbiBkZSB0ZWNsYXM6IiwgICAgICBQTV9IT1RfS0VZX1RYVCwgICAgICAgMDUsIDU1LCAgNjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9IT1RfS0VZLCAgICAgICAgICAgODAsIDU1LCAgOTAsIDE1LCBXU19UQUJTVE9QCklDT04gICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9JQ09OLCAgICAgICAgICAgICAgMjAsIDcwCkNIRUNLQk9YICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAgICAgICAgICAgODAsIDc1LCAgMTAsIDEwLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIiZNaW5pbWl6YXIgYWwgbGFuemFyc2UiLCAgICAgICBJRElHTk9SRSwgICAgICAgICAgICAgOTUsIDc1LCAgNzUsIDEwCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgICAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZFeHBsb3Jhci4uLiIsICAgICAgICAgICAgICAgUE1fQlJPV1NFLCAgICAgICAgICAgMTg1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJDYW1iaWFyICZpY29uby4uLiIsIFBNX09USEVSX1NZTUJPTCwgICAgIDE4NSwgNjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkF5dWRhIiwgICAgICAgICAgICAgICAgIFBNX0hFTFAsICAgICAgICAgICAgIDE4NSwgODUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBTeW1ib2wnICovCgpESUFMT0dfU1lNQk9MIERJQUxPRyAwLCAwLCAyMDAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiQ2FtYmlhciBpY29ubyIKewpMVEVYVCAgICAgIiZOb21icmUgZGUgYXJjaGl2bzoiLCAgICBQTV9JQ09OX0ZJTEVfVFhULCAgICA1LCAxNSwgIDQwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICBQTV9JQ09OX0ZJTEUsICAgICAgIDQ1LCAxNSwgIDg1LCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgIiZJY29ubyBhY3R1YWw6IiwgUE1fU1lNQk9MX0xJU1RfVFhULCAgNSwgMzAsIDEyNSwgMTAKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgUE1fU1lNQk9MX0xJU1QsICAgICAgNSwgNDAsIDEyNSwgNTAsCiAgIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBXU19UQUJTVE9QCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgIElET0ssICAgICAgICAgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkNhbmNlbGFyIiwgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxMzUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZFeHBsb3Jhci4uLiIsICAgIFBNX0JST1dTRSwgICAgICAgICAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZBeXVkYSIsICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgRXhlY3V0ZScgKi8KCkRJQUxPR19FWEVDVVRFIERJQUxPRyAwLCAwLCAyMDAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiRWplY3V0YXIgcHJvZ3JhbWEiCnsKTFRFWFQgICAgICJM7W5lYSBkZSAmY29tYW5kb3M6IiwgSURJR05PUkUsICAgMDUsIDE1LCAxMjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkQsIDA1LCAyNSwgMTIwLCAxNSwgV1NfVEFCU1RPUApDSEVDS0JPWCAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAwNSwgNDUsICAxMCwgMTAsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJk1pbmltaXphciBhbCBsYW56YXJzZSIsICAgSURJR05PUkUsICAgMjAsIDQ1LCAxMjAsIDEwCkRFRlBVU0hCVVRUT04gIkFjZXB0YXIiLCAgICAgICAgICAgICAgIElET0ssICAgICAgMTM1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJDYW5jZWxhciIsICAgICAgICAgICBJRENBTkNFTCwgIDEzNSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkV4cGxvcmFyLi4uIiwgICAgICAgICAgUE1fQlJPV1NFLCAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZBeXVkYSIsICAgICAgICAgICAgIFBNX0hFTFAsICAgMTM1LCA2NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBTdHJpbmdzICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CklEU19QUk9HUkFNX01BTkFHRVIsCQkiR2VzdG9yIGRlIHByb2dyYW1hcyIKSURTX0VSUk9SLAkJCSJFUlJPUiIKSURTX1dBUk5JTkcsCQkJIkFEVkVSVEVOQ0EiCklEU19JTkZPLAkJCSJJbmZvcm1hY2nzbiIKSURTX0RFTEVURSwJCQkiRWxpbWluYXIiCklEU19ERUxFVEVfR1JPVVBfcywJCSK/RWxpbWluYXIgZ3J1cG8gYCVzJz8iCklEU19ERUxFVEVfUFJPR1JBTV9zLAkJIr9FbGltaW5hciBwcm9ncmFtYSBgJXMnPyIKSURTX05PVF9JTVBMRU1FTlRFRCwJCSJObyBpbXBsZW1lbnRhZG8iCklEU19GSUxFX1JFQURfRVJST1JfcywJCSJFcnJvciBsZXllbmRvIGAlcycuIgpJRFNfRklMRV9XUklURV9FUlJPUl9zLAkJIkVycm9yIGVzY3JpYmllbmRvIGAlcycuIgpJRFNfR1JQRklMRV9SRUFEX0VSUk9SX3MsCSJcCkVsIGFyY2hpdm8gZGUgZ3J1cG8gYCVzJyBubyBzZSBwdWVkZSBhYnJpci5cblwKv0RlYmUgdm9sdmVyIGEgaW50ZW50YXJzZSBt4XMgYWRlbGFudGU/IgpJRFNfT1VUX09GX01FTU9SWSwJCSJTaW4gbWVtb3JpYS4iCklEU19XSU5IRUxQX0VSUk9SLAkJIkF5dWRhIG5vIGRpc3BvbmlibGUuIgpJRFNfVU5LTk9XTl9GRUFUVVJFX3MsCQkiQ2FyYWN0ZXLtc3RpY2EgZGVzY29ub2NpZGEgZW4gJXMiCklEU19GSUxFX05PVF9PVkVSV1JJVFRFTl9zLAkiRWwgYXJjaGl2byBgJXMnIGV4aXN0ZS4gTm8gc2UgaGEgc29icmVlc2NyaXRvLiIKSURTX1NBVkVfR1JPVVBfQVNfcywJCSJHdWFyZGUgZWwgZ3J1cG8gY29tbyBgJXMnIHBhcmEgcHJldmVuaXIgbGEgc29icmVlc2NyaXR1cmEgZGUgbG9zIGFyY2hpdm9zIG9yaWdpbmFsZXMuIgpJRFNfTk9fSE9UX0tFWSwJCQkiTmluZ3VuYSIKSURTX0FMTF9GSUxFUywJCQkiVG9kb3MgbG9zIGFyY2hpdm9zICgqLiopIgpJRFNfUFJPR1JBTVMsCQkJIlByb2dyYW1hcyIKSURTX0xJQlJBUklFU19ETEwsCQkiTGlicmFy7WFzICgqLmRsbCkiCklEU19TWU1CT0xfRklMRVMsCQkiQXJjaGl2b3MgZGUgaWNvbm9zIgpJRFNfU1lNQk9MU19JQ08sCQkiSWNvbm9zICgqLmljbykiCn0K