LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAxOTk2IFVscmljaCBTY2htaWQKICogQ29weXJpZ2h0IDIwMDIgU3lsdmFpbiBQZXRyZW9sbGUKICogQ29weXJpZ2h0IDIwMDQgSGVubmluZyBHZXJoYXJkdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgovKiBNZW51ICovCgpNQUlOX01FTlUgTUVOVSBMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ERUZBVUxUCnsKIFBPUFVQICImRGF0ZWkiIHsKICAgTUVOVUlURU0gIiZOZXUuLi4iLCAgICAgICAgICAgICAgUE1fTkVXCiAgIE1FTlVJVEVNICLWJmZmbmVuXHRFaW5nYWJldGFzdGUiLCAgICAgICAgICAgICBQTV9PUEVOCiAgIE1FTlVJVEVNICImVmVyc2NoaWViZW4uLi5cdEY3IiwgICAgICAgICAgICAgUE1fTU9WRSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZLb3BpZXJlbi4uLlx0RjgiLCAgICAgICAgICAgICBQTV9DT1BZLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiJkz2c2NoZW5cdEVudGYiLCAgICAgICAgICAgUE1fREVMRVRFCiAgIE1FTlVJVEVNICImRWlnZW5zY2hhZnRlbi4uLlx0QWx0K0VpbmdhYmV0YXN0ZSIsICAgICAgIFBNX0FUVFJJQlVURVMKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICImQXVzZvxocmVuLi4uIiwgICAgICAgICAgUE1fRVhFQ1VURQogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIiZQcm9ncmFtbS1NYW5hZ2VyIGJlZW5kZW4uLi4iLCAgICAgICAgICAgICBQTV9FWElUCiB9CiBQT1BVUCAiJk9wdGlvbmVuIiB7CiAgIE1FTlVJVEVNICImQXV0b21hdGlzY2ggYW5vcmRuZW4iLCAgUE1fQVVUT19BUlJBTkdFCiAgIE1FTlVJVEVNICImU3ltYm9sIG5hY2ggUHJvZ3JhbW1zdGFydCIsICAgIFBNX01JTl9PTl9SVU4KICAgTUVOVUlURU0gIiZFaW5zdGVsbHVuZ2VuIGJlaW0gQmVlbmRlbiBzcGVpY2hlcm4iLCBQTV9TQVZFX1NFVFRJTkdTCiB9CiBQT1BVUCAiJkZlbnN0ZXIiIHsKICAgTUVOVUlURU0gItxiZXImbGFwcGVuZFx0VW1zY2hhbHQrRjUiLCAgICAgICBQTV9PVkVSTEFQCiAgIE1FTlVJVEVNICImTmViZW5laW5hbmRlclx0VW1zY2hhbHQrRjQiLCAgUE1fU0lERV9CWV9TSURFCiAgIE1FTlVJVEVNICImU3ltYm9sZSBhbm9yZG5lbiIsICAgICAgIFBNX0FSUkFOR0UKIH0KIApQT1BVUCAiJkhpbGZlIiB7CiAgIE1FTlVJVEVNICImSW5oYWx0IiwgICAgICAgICBQTV9DT05URU5UUwogICBNRU5VSVRFTSAiJlN1Y2hlbi4uLiIsICAgICAgICAgICBQTV9TRUFSQ0gKICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgIE1FTlVJVEVNICJIaWxmZSAmYmVudXR6ZW4iLCAgICAgUE1fSEVMUE9OSEVMUAogICBNRU5VSVRFTSAiJkxlcm5wcm9ncmFtbSIsICAgICAgICAgUE1fVFVUT1JJQUwKICAgTUVOVUlURU0gU0VQQVJBVE9SCgogICBQT1BVUCAiJkluZm8uLi4iIHsKICAgICBNRU5VSVRFTSAiJkxpemVueiIsICAgICAgICBQTV9MSUNFTlNFCiAgICAgTUVOVUlURU0gIiZLRUlORSBHQVJBTlRJRSIsICAgIFBNX05PX1dBUlJBTlRZCiAgICAgTUVOVUlURU0gItwmYmVyIFdJTkUiLCAgICAgUE1fQUJPVVRfV0lORQogICB9CiB9Cn0KCi8qIERpYWxvZyBgTmV3JyAqLwoKRElBTE9HX05FVyBESUFMT0cgMCwgMCwgMTcwLCA2NQpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiTmV1ZXMgUHJvZ3JhbW1vYmpla3QiCnsKUkFESU9CVVRUT04gICAiIiwgICAgICAgICAgICAgICAgIFBNX05FV19HUk9VUCwgICAgMTAsIDE1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIlByb2dyYW1tJmdydXBwZSIsICAgUE1fTkVXX0dST1VQLCAgICAyMCwgMTgsICA4MCwgOApSQURJT0JVVFRPTiAgICIiLCAgICAgICAgICAgICAgICAgUE1fTkVXX1BST0dSQU0sICAxMCwgMzUsICAxMCwgMTUKTFRFWFQgICAgICAgICAiJlByb2dyYW1tIiwgUE1fTkVXX1BST0dSQU0sICAyMCwgMzgsICA4MCwgOApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgIElET0ssICAgICAgICAgICAxMDUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFiYnJlY2hlbiIsICAgICAgSURDQU5DRUwsICAgICAgIDEwNSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhpbGZlIiwgICAgICAgIFBNX0hFTFAsICAgICAgICAxMDUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgTW92ZScgKi8KCkRJQUxPR19NT1ZFIERJQUxPRyAwLCAwLCAyNTAsIDY1CkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX0RFRkFVTFQKU1RZTEUgRFNfTU9EQUxGUkFNRQpDQVBUSU9OICJQcm9ncmFtbSB2ZXJzY2hpZWJlbiIKewpMVEVYVCAgICAgICAgICJWZXJzY2hpZWJlIFByb2dyYW1tOiIsICAgIElESUdOT1JFLCAgICAgICAgICAgIDUsICA1LCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fUFJPR1JBTSwgICAgICAgICA5NSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiVm9uIFByb2dyYW1tZ3J1cHBlOiIsIElESUdOT1JFLCAgICAgICAgICAgIDUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fRlJPTV9HUk9VUCwgICAgICA5NSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJmluIEdydXBwZToiLCAgIFBNX1RPX0dST1VQX1RYVCwgICAgIDUsIDI4LCAxNDAsIDE1CkNPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fVE9fR1JPVVAsICAgICAgICAgNSwgMzgsIDE0MCwgNTAsIFdTX1RBQlNUT1AgfCBDQlNfRFJPUERPV05MSVNUCkRFRlBVU0hCVVRUT04gIk9LIiwgICAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAxODUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFiYnJlY2hlbiIsICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIaWxmZSIsICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBDb3B5JyAqLwoKRElBTE9HX0NPUFkgRElBTE9HIDAsIDAsIDI1MCwgNjUKTEFOR1VBR0UgTEFOR19HRVJNQU4sIFNVQkxBTkdfREVGQVVMVApTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIlByb2dyYW1tIGtvcGllcmVuIgp7CkxURVhUICAgICAgICAgIktvcGllcmUgUHJvZ3JhbW06IiwgICAgSURJR05PUkUsICAgICAgICAgICAgNSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9QUk9HUkFNLCAgICAgICAgIDk1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICJWb24gUHJvZ3JhbW1ncnVwcGU6IiwgSURJR05PUkUsICAgICAgICAgICAgNSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9GUk9NX0dST1VQLCAgICAgIDk1LCAxMywgIDkwLCAxNQpMVEVYVCAgICAgICAgICImaW4gR3J1cHBlOiIsICAgUE1fVE9fR1JPVVBfVFhULCAgICAgNSwgMjgsIDE0MCwgMTUKQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9UT19HUk9VUCwgICAgICAgICA1LCAzOCwgMTQwLCA1MCwgV1NfVEFCU1RPUCB8IENCU19EUk9QRE9XTkxJU1QKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgICAgSURPSywgICAgICAgICAgICAgIDE4NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQWJicmVjaGVuIiwgICAgICAgICAgSURDQU5DRUwsICAgICAgICAgIDE4NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhpbGZlIiwgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgMTg1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYEdyb3VwIGF0dHJpYnV0ZXMnICovCgpESUFMT0dfR1JPVVAgRElBTE9HIDAsIDAsIDIzMCwgNjUKTEFOR1VBR0UgTEFOR19HRVJNQU4sIFNVQkxBTkdfREVGQVVMVApTVFlMRSBEU19NT0RBTEZSQU1FCkNBUFRJT04gIlByb2dyYW1tZ3J1cHBlbmVpZ2Vuc2NoYWZ0ZW4iCnsKTFRFWFQgICAgICImQmVzY2hyZWlidW5nOiIsIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTgsICA1MCwgOApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9ERVNDUklQVElPTiwgICAgICAgNjAsIDE4LCAgOTAsIDEyLCBXU19UQUJTVE9QCkxURVhUICAgICAiJkdydXBwZW5kYXRlaToiLCAgICAgICAgUE1fRklMRV9UWFQsICAgICAgICAgIDA1LCAzOCwgIDUwLCA4CkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0ZJTEUsICAgICAgICAgICAgICA2MCwgMzgsICA5MCwgMTIsIFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE1NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQWJicmVjaGVuIiwgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAgIDE1NSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhpbGZlIiwgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgICAgMTU1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYFByb2dyYW0gYXR0cmlidXRlcycgKi8KCkRJQUxPR19QUk9HUkFNIERJQUxPRyAwLCAwLCAyNTAsIDEwNQpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiUHJvZ3JhbW1laWdlbnNjaGFmdGVuIgp7CkxURVhUICAgICAgICAgIiZCZXNjaHJlaWJ1bmc6IiwgIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTAsICA2MCwgOApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fREVTQ1JJUFRJT04sICAgICAgIDgwLCAxMCwgIDkwLCAxMiwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImQmVmZWhscyZ6ZWlsZToiLCBQTV9DT01NQU5EX0xJTkVfVFhULCAgMDUsIDI1LCAgNjAsIDgKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkRfTElORSwgICAgICA4MCwgMjUsICA5MCwgMTIsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJkFyYmVpdHN2ZXJ6ZWljaG5pczoiLCAgICBQTV9ESVJFQ1RPUllfVFhULCAgICAgMDUsIDQwLCAgNjAsIDgKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RJUkVDVE9SWSwgICAgICAgICA4MCwgNDAsICA5MCwgMTIsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJlRhc3RlbmtvbWJpbmF0aW9uOiIsICAgICAgUE1fSE9UX0tFWV9UWFQsICAgICAgIDA1LCA1NSwgIDYwLCA4CkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9IT1RfS0VZLCAgICAgICAgICAgODAsIDU1LCAgOTAsIDEyLCBXU19UQUJTVE9QCklDT04gICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9JQ09OLCAgICAgICAgICAgICAgMjAsIDcwCkNIRUNLQk9YICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAgICAgICAgICAgODAsIDc1LCAgMTAsIDEwLCBXU19UQUJTVE9QCkxURVhUICAgICAgICAgIkFscyBTeSZtYm9sIiwgICAgICAgSURJR05PUkUsICAgICAgICAgICAgIDk1LCA3NSwgIDc1LCAxMApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE4NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQWJicmVjaGVuIiwgICAgICAgICAgICAgICBJRENBTkNFTCwgICAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZEdXJjaHN1Y2hlbi4uLiIsICAgICAgICAgICAgICAgUE1fQlJPV1NFLCAgICAgICAgICAgMTg1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbmRlcmVzICZTeW1ib2wuLi4iLCBQTV9PVEhFUl9TWU1CT0wsICAgICAxODUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIaWxmZSIsICAgICAgICAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxODUsIDg1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgU3ltYm9sJyAqLwoKRElBTE9HX1NZTUJPTCBESUFMT0cgMCwgMCwgMjAwLCA4NQpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiU3ltYm9sIGF1c3fkaGxlbiIKewpMVEVYVCAgICAgIkRhdGVpJm5hbWU6IiwgICAgUE1fSUNPTl9GSUxFX1RYVCwgICAgNSwgMTUsICA0MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgUE1fSUNPTl9GSUxFLCAgICAgICA0NSwgMTUsICA4NSwgMTIsIFdTX1RBQlNUT1AKTFRFWFQgICAgICImQWt0dWVsbGVzIFN5bWJvbDoiLCBQTV9TWU1CT0xfTElTVF9UWFQsICA1LCAzMCwgMTI1LCAxMApDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0xfTElTVCwgICAgICA1LCA0MCwgMTI1LCA1MCwKICAgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19PV05FUkRSQVdGSVhFRCB8IFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgIElET0ssICAgICAgICAgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFiYnJlY2hlbiIsICAgICBJRENBTkNFTCwgICAgICAgICAgMTM1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImRHVyY2hzdWNoZW4uLi4iLCAgICBQTV9CUk9XU0UsICAgICAgICAgMTM1LCA0NSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImSGlsZmUiLCAgICAgICBQTV9IRUxQLCAgICAgICAgICAgMTM1LCA2NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBEaWFsb2cgYEV4ZWN1dGUnICovCgpESUFMT0dfRVhFQ1VURSBESUFMT0cgMCwgMCwgMjAwLCA4NQpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ERUZBVUxUClNUWUxFIERTX01PREFMRlJBTUUKQ0FQVElPTiAiUHJvZ3JhbW0gYXVzZvxocmVuIgp7CkxURVhUICAgICAiJkJlZmVobHN6ZWlsZToiLCBJRElHTk9SRSwgICAwNSwgMTUsIDEyMCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fQ09NTUFORCwgMDUsIDI1LCAxMjAsIDEyLCBXU19UQUJTVE9QCkNIRUNLQk9YICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTCwgIDA1LCA0NSwgIDEwLCAxMCwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICJBbHMgU3kmbWJvbCIsICAgSURJR05PUkUsICAgMjAsIDQ1LCAxMjAsIDEwCkRFRlBVU0hCVVRUT04gIk9LIiwgICAgICAgICAgICAgICBJRE9LLCAgICAgIDEzNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQWJicmVjaGVuIiwgICAgICAgICAgIElEQ0FOQ0VMLCAgMTM1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImRHVyY2hzdWNoZW4uLi4iLCAgICAgICAgICBQTV9CUk9XU0UsIDEzNSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhpbGZlIiwgICAgICAgICAgICAgUE1fSEVMUCwgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIFN0cmluZ3MgKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFIExBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX0RFRkFVTFQKewpJRFNfUFJPR1JBTV9NQU5BR0VSLAkJIlByb2dyYW1tLU1hbmFnZXIiCklEU19FUlJPUiwJCQkiRkVITEVSIgpJRFNfV0FSTklORywJCQkiQUNIVFVORyIKSURTX0lORk8sCQkJIkluZm9ybWF0aW9uIgpJRFNfREVMRVRFLAkJCSJM9nNjaGVuIgpJRFNfREVMRVRFX0dST1VQX3MsCQkiTPZzY2hlIFByb2dyYW1tZ3J1cHBlIGAlcycgPyIKSURTX0RFTEVURV9QUk9HUkFNX3MsCQkiTPZzY2hlIFByb2dyYW1tIGAlcycgPyIKSURTX05PVF9JTVBMRU1FTlRFRCwJCSJOaWNodCBpbXBsZW1lbnRpZXJ0IgpJRFNfRklMRV9SRUFEX0VSUk9SX3MsCQkiRmVobGVyIGJlaW0gTGVzZW4gdm9uYCVzJy4iCklEU19GSUxFX1dSSVRFX0VSUk9SX3MsCQkiRmVobGVyIGJlaW0gU2NocmVpYmVuIHZvbmAlcycuIgpJRFNfR1JQRklMRV9SRUFEX0VSUk9SX3MsCSJEaWUgUHJvZ3JhbW1ncnVwcGVuZGF0ZWkgYCVzJyBrYW5uIG5pY2h0IGdl9mZmbmV0IHdlcmRlbi5cblwgU29sbCB3ZWl0ZXJoaW4gdmVyc3VjaHQgd2VyZGVuLCBkaWVzZSBEYXRlaSB6dSBsYWRlbiA/IgpJRFNfT1VUX09GX01FTU9SWSwJCSJadSB3ZW5pZyBIYXVwdHNwZWljaGVyLiIKSURTX1dJTkhFTFBfRVJST1IsCQkiS2VpbmUgSGlsZmUgdmVyZvxnYmFyLiIKSURTX1VOS05PV05fRkVBVFVSRV9zLAkJIlVuYmVrYW5udGUgRWlnZW5zY2hhZnQgaW4gJXMiCklEU19GSUxFX05PVF9PVkVSV1JJVFRFTl9zLAkiRGF0ZWkgYCVzJyBleGlzdGllcnQuIFNpZSB3aXJkIG5pY2h0IPxiZXJzY2hyaWViZW4uIgpJRFNfU0FWRV9HUk9VUF9BU19zLAkJIkRpZSBQcm9ncmFtbWdydXBwZSB3aXJkIGFscyBgJXMnIGdlc2ljaGVydCwgdW0gZGFzINxiZXJzY2hyZWliZW4gZGVyIE9yaWdpbmFsZGF0ZWkgenUgdmVyaGluZGVybi4iCklEU19OT19IT1RfS0VZLAkJCSJLZWluZSIKSURTX0FMTF9GSUxFUywJCQkiQWxsZSBEYXRlaWVuICgqLiopIgpJRFNfUFJPR1JBTVMsCQkJIlByb2dyYW1tZSIKSURTX0xJQlJBUklFU19ETEwsCQkiQmlibGlvdGhla2VuICgqLmRsbCkiCklEU19TWU1CT0xfRklMRVMsCQkiU3ltYm9sZGF0ZWllbiIKSURTX1NZTUJPTFNfSUNPLAkJIlN5bWJvbGUgKCouaWNvKSIKfQo=