LyoKICogV2luZUZpbGUKICogVHVya2lzaCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA2IEZhdGloIEH+/WP9CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJyZXNvdXJjZS5oIgoKTEFOR1VBR0UgTEFOR19UVVJLSVNILCBTVUJMQU5HX0RFRkFVTFQKCi8qIE1lbnUgKi8KCklETV9XSU5FRklMRSBNRU5VIEZJWEVEIElNUFVSRQp7CiAgICBQT1BVUCAiJkRvc3lhIiAgewogICAgICAgIE1FTlVJVEVNICImQedcdEVudGVyIiwgICAgICAgICAgICAgICAgICBJRF9BQ1RJVkFURQogICAgICAgIE1FTlVJVEVNICImVGH+/S4uLlx0RjciLCAgICAgICAgICAgICAgICBJRF9GSUxFX01PVkUKICAgICAgICBNRU5VSVRFTSAiSyZvcHlhbGEuLi5cdEY4IiwgICAgICAgICAgICAgSURfRklMRV9DT1BZCiAgICAgICAgTUVOVUlURU0gIiZQYW5vZGFuLi4uXHRGOSIsICAgICAgICAgICAgIDExOAogICAgICAgIE1FTlVJVEVNICImU2lsXHREZWwiLCAgICAgICAgICAgICAgICAgICBJRF9GSUxFX0RFTEVURQogICAgICAgIE1FTlVJVEVNICJZZSZuaWRlbiBBZGxhbmT9ci4uLiIsICAgICAgICAxMDkKICAgICAgICBNRU5VSVRFTSAiJtZ6ZWxsaWtsZXIuLi5cdEFsdCtFbnRlciIsICAgSURfRURJVF9QUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlMm/Wv9/nT9ci4uLiIsICAgICAgICAgICAgICAgIDExOQogICAgICAgIE1FTlVJVEVNICJHZW5pJv5sZXQuLi4iLCAgICAgICAgICAgICAgICAxMjAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJsdhbP3+dP1yLi4uIiwgICAgICAgICAgICAgICAgSURfRVhFQ1VURQogICAgICAgIE1FTlVJVEVNICJZYSZ6ZP1yLi4uIiwgICAgICAgICAgICAgICAgICAxMDIKICAgICAgICBNRU5VSVRFTSAi3Wxp/mtpbGVuZGlyLi4uIiwgICAgICAgICAgICAgMTAzCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZEaXppbiBPbHX+dHVyLi4uIiwgICAgICAgICAgIDExMQogICAgICAgIE1FTlVJVEVNICJBJnJhLi4uIiwgICAgICAgICAgICAgICAgICAgICAxMDQKICAgICAgICBNRU5VSVRFTSAiRCZvc3lhbGFy/SBTZecuLi4iLCAgICAgICAgICAgMTE2CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiJsf9a/3+XHRBbHQrWCIsICAgICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZWxzZQogICAgICAgIE1FTlVJVEVNICImx/1r/f4iLCAgICAgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbmRpZgogICAgfQoKICAgIFBPUFVQICImRGlzayIgIHsKICAgICAgICBNRU5VSVRFTSAiRGlzayBLJm9weWFsYS4uLiIsICAgICAgICAgICAgIDIwMQogICAgICAgIE1FTlVJVEVNICJEaXNrICZFdGlrZXRpLi4uIiwgICAgICAgICAgICAgMjAyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkRpc2sgQmkm52ltbGVuZGlyLi4uIiwgICAgICAgICBJRF9GT1JNQVRfRElTSwojaWZkZWYgX1dJTjk1CiAgICAgICAgTUVOVUlURU0gIiZTaXN0ZW0gRGlza2kgT2x1/nR1ci4uLiIsIC0xIC8qVE9ETyovCiNlbmRpZgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQfAgU/xy/GP8c/xuZSBCYfBsYW4iLCAgICAgICBJRF9DT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSAiQfAgU/xy/GP8c/xuZSBCYfBsYW50/Xn9ICZLZXMiLCAgIElEX0RJU0NPTk5FQ1RfTkVUV09SS19EUklWRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQYXlsYf4uLi4iLCAgICAgICAgICAgICAgICAgICAyNTQKICAgICAgICBNRU5VSVRFTSAiUGF5bGH+/W39IFMmaWwuLi4iLCAgICAgICAgICAgMjU1CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlMm/HL8Y/wgU2XnLi4uIiwgICAgICAgICAgICAgIDI1MQogICAgfQoKICAgIFBPUFVQICJEaSZ6aW5sZXIiICB7CiAgICAgICAgTUVOVUlURU0gIiZTb25yYWtpIFNldml5ZVx0KyIsICAgICAgICAgIDMwMQogICAgICAgIE1FTlVJVEVNICJB8GFj/SAmR2Vuaf5sZXRcdCoiLCAgICAgICAgICAzMDIKICAgICAgICBNRU5VSVRFTSAiJlT8bfxu/CBHZW5p/mxldFx0U3RyZysqIiwgICAgMzAzCiAgICAgICAgTUVOVUlURU0gIkHwYWP9IFQmb3BsYVx0LSIsICAgICAgICAgICAgIDMwNAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBJmx0IERhbGxhcv0g3f5hcmV0bGUiLCAgICAgICA1MDUKICAgIH0KCiAgICBQT1BVUCAiJkf2cvxu/G0iICB7CiAgICAgICAgTUVOVUlURU0gIkEm8GHnIHZlIERpemluIiwgICAgICAgICAgICAgIDQxMwogICAgICAgIE1FTlVJVEVNICJZYWxu/XpjYSAmQfBh5yIsICAgICAgICAgICAgICA0MTEKICAgICAgICBNRU5VSVRFTSAiWWFsbv16Y2EgJkRpemluIiwgICAgICAgICAgICAgNDEyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkF5JnJh5yIsICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkFkIiwgICAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19OQU1FCiAgICAgICAgTUVOVUlURU0gIiZU/G0gRG9zeWEgQXly/W50/Wxhcv0iLCAgICAgIElEX1ZJRVdfQUxMX0FUVFJJQlVURVMsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJlNl52lsbWn+IEF5cv1udP1sYXIuLi4iLCAgICAgSURfVklFV19TRUxFQ1RFRF9BVFRSSUJVVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZBZGEgR/ZyZSBT/XJhbGEiLCAgICAgICAgICAgIElEX1ZJRVdfU09SVF9OQU1FCiAgICAgICAgTUVOVUlURU0gIiZU/HJlIEf2cmUgU/1yYWxhIiwgICAgICAgICAgIElEX1ZJRVdfU09SVF9UWVBFCiAgICAgICAgTUVOVUlURU0gIiZCb3l1dGEgR/ZyZSBT/XJhbGEiLCAgICAgICAgIElEX1ZJRVdfU09SVF9TSVpFCiAgICAgICAgTUVOVUlURU0gIiZUYXJpaGUgR/ZyZSBT/XJhbGEiLCAgICAgICAgIElEX1ZJRVdfU09SVF9EQVRFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlP8emdl5yAmLi4uIiwgICAgICAgICAgICAgICAgIElEX1ZJRVdfRklMVEVSCiAgICB9CgogICAgUE9QVVAgIiZTZedlbmVrbGVyIiAgewogICAgICAgIE1FTlVJVEVNICImT25heWxhbWEuLi4iLCAgICAgICAgICAgICAgICA1MDEKICAgICAgICBNRU5VSVRFTSAiJllhev0gVGlwaS4uLiIsICAgICAgICAgICAgICAgSURfU0VMRUNUX0ZPTlQKICAgICAgICBNRU5VSVRFTSAiQXJh5yDHdWJ18HVudSAm1nplbGxl/nRpci4uLiIsICA1MTIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkFyYecgx3VidfB1IiwgICAgICAgICAgICAgICAgSURfVklFV19UT09MX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImU/xy/GP8IMd1YnXwdSIsICAgICAgICAgICAgICBJRF9WSUVXX0RSSVZFX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImRHVydW0gx3VidfB1IiwgICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUiwgQ0hFQ0tFRAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIiZUYW0gRWtyYW5cdEN0cmwrU2hpZnQrUyIsICAgIElEX1ZJRVdfRlVMTFNDUkVFTgojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQef9bP3+dGEgJmv85/xsdCIsICAgICAgICAgICAgNTA0CiAgICAgICAgTUVOVUlURU0gIibH/Wv9/nRhIGF5YXJsYXL9IGtheWRldCIsICAgIDUxMQogICAgfQoKCiAgICBQT1BVUCAiJkf8dmVubGlrIiAgewogICAgICAgIE1FTlVJVEVNICImRXJp/mltLi4uIiwgICAgICAgICAgICAgICAgICA2MDUKICAgICAgICBNRU5VSVRFTSAiJk90dXJ1bSBB521hLi4uIiwgICAgICAgICAgICAgNjA2CiAgICAgICAgTUVOVUlURU0gIiZTYWhpcC4uLiIsICAgICAgICAgICAgICAgICAgIDYwNwogICAgfQoKICAgIFBPUFVQICImUGVuY2VyZSIgIHsKICAgICAgICBNRU5VSVRFTSAiJlllbmkgUGVuY2VyZSIsICAgICAgICAgICAgICAgSURfV0lORE9XX05FVwogICAgICAgIE1FTlVJVEVNICJEaXpcdEN0cmwrRjUiLCAgICAgICAgICAgICAgICBJRF9XSU5ET1dfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNICImWWF0YXkgRPb+ZSIsICAgICAgICAgICAgICAgICBJRF9XSU5ET1dfVElMRV9IT1JaCiAgICAgICAgTUVOVUlURU0gIkRpJmtleSBE9v5lXHRDdHJsK0Y0IiwgICAgICAgIElEX1dJTkRPV19USUxFX1ZFUlQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICJPdG9tYXRpayBE/HplbmxlIiwgICAgICAgICAgICBJRF9XSU5ET1dfQVVUT1NPUlQKI2VuZGlmCiAgICAgICAgTUVOVUlURU0gIlNpbWdlbGVyaSBEJvx6ZW5sZSIsICAgICAgICAgIElEX1dJTkRPV19BUlJBTkdFCiAgICAgICAgTUVOVUlURU0gIlllJm5pbGVcdEY1IiwgICAgICAgICAgICAgICAgIElEX1JFRlJFU0gKICAgIH0KCiAgICBQT1BVUCAiJllhcmT9bSIgIHsKICAgICAgICBNRU5VSVRFTSAiJllhcmT9bSBLb251bGFy/Vx0RjEiLCAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICJZYXJk/W1kYSAmQXJhLi4uXHRGMSIsICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIllhcmT9bSAmS3VsbGFu/W39XHRGMSIsICAgICAgIElEX0hFTFBfVVNJTkcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiV2luZWZpbGUgaGFra/1uZGEgJmJpbGdpLi4uIiwgSURfQUJPVVQKICAgIH0KfQoKCklERF9FWEVDVVRFIERJQUxPRyBGSVhFRCBJTVBVUkUgMTUsIDEzLCAyMTAsIDYzClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsdhbP3+dP1yIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIiZLb211dDoiLCAtMSwgIlN0YXRpYyIsIFNTX0xFRlROT1dPUkRXUkFQfFdTX0dST1VQLCAzLCAxOCwgNjAsIDEwCiAgICBFRElUVEVYVCAgICAgICAgMjAxLCAzLCAyOSwgMTM0LCAxMiwgRVNfQVVUT0hTQ1JPTEwKICAgIENPTlRST0wgICAgICAgICAiJlNpbWdlIE9sYXJhayIsIDIxNCwgIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QLDMsIDQ1LCA3MSwgMTIKICAgIERFRlBVU0hCVVRUT04gICAiVGFtYW0iLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICLdcHRhbCIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICImWWFyZP1tIiwgMjU0LCAxNTgsIDQzLCA0NywgMTQKfQoKSUREX1NFTEVDVF9ERVNUSU5BVElPTiBESUFMT0cgRklYRUQgSU1QVVJFIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJIZWRlZmkgc2XnIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIiZZb2w6IiwgLTEsICJTdGF0aWMiLCBTU19MRUZUTk9XT1JEV1JBUHxXU19HUk9VUCwgMywgMTgsIDYwLCAxMAogICAgRURJVFRFWFQgICAgICAgIDIwMSwgMywgMjksIDEzNCwgMTIsIEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIiwgMSwgMTU4LCA2LCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAi3XB0YWwiLCAyLCAxNTgsIDIzLCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkf2emF0IiwgMjU0LCAxNTgsIDQzLCA0NywgMTQKfQoKSUREX0RJQUxPR19WSUVXX1RZUEUgRElBTE9HIERJU0NBUkRBQkxFIDE1LCAxMywgMTYxLCA5NwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEb3N5YSBU/HL8bmUgR/ZyZSIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiJkFkOiIsLTEsNyw4LDIyLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZJRVdfUEFUVEVSTiwzMSw3LDYzLDEyLEVTX0FVVE9IU0NST0xMCiAgICBHUk9VUEJPWCAgICAgICAgIkRvc3lhIFT8cvwiLC0xLDcsMjMsODcsNTYKICAgIENPTlRST0wgICAgICAgICAiJkRpemlubGVyIixJRENfVklFV19UWVBFX0RJUkVDVE9SSUVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsMzIsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJlByb2dyYW1sYXIiLElEQ19WSUVXX1RZUEVfUFJPR1JBTVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw0Myw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImQmVsZ2VsZXIiLElEQ19WSUVXX1RZUEVfRE9DVU1FTlRTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNTQsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJkRp8GVyIGRvc3lhbGFyIixJRENfVklFV19UWVBFX09USEVSUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDY1LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkdpemxpL1Npc3RlbSDWemVsbGlrbGkgRG9zeWFsYXL9ICZH9nN0ZXIiLElEQ19WSUVXX1RZUEVfSElEREVOLAogICAgICAgICAgICAgICAgICAgICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw4MSwxNDAsOQogICAgREVGUFVTSEJVVFRPTiAgICJUYW1hbSIsSURPSywxMDQsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICLdcHRhbCIsSURDQU5DRUwsMTA0LDI0LDUwLDE0CkVORAoKSUREX0RJQUxPR19QUk9QRVJUSUVTIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ4LCAyMTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiJXMg1nplbGxpa2xlcmkiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIixJRE9LLDE5MSw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIt1wdGFsIixJRENBTkNFTCwxOTEsMjksNTAsMTQKICAgIExURVhUICAgICAgICAgICAiJkRvc3lhIEFk/ToiLC0xLDcsNyw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0ZJTEVOQU1FLDcxLDcsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJUYW0gJllvbDoiLC0xLDcsMTgsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9QQVRILDcxLDE4LDEyMCw5LCBFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlNvbiBEZfBp/m1lOiIsLTEsNywyOSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0xBU1RDSEFOR0UsNzEsMjksMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJT/HL8bToiLC0xLDcsNDAsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9WRVJTSU9OLDcxLDQwLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJlRlbGlmIEhha2v9OiIsLTEsNyw1MSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0NPUFlSSUdIVCw3MSw1MSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkJveXV0OiIsLTEsNyw2Miw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1NJWkUsNzEsNjIsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICLWemVsbGlrbGVyIiwtMSw3LDc5LDE1OCw0NgogICAgQ09OVFJPTCAgICAgICAgICImU2FsdCBPa3VudXIiLElEQ19DSEVDS19SRUFET05MWSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDkxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJkdpemxpIixJRENfQ0hFQ0tfSElEREVOLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImQXL+aXYiLElEQ19DSEVDS19BUkNISVZFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTAxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJlNpc3RlbSIsSURDX0NIRUNLX1NZU1RFTSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDkyLDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIlMm/Wv9/v1rIixJRENfQ0hFQ0tfQ09NUFJFU1NFRCwiQnV0dG9uIiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNywxMTEsNjgsOQogICAgR1JPVVBCT1ggICAgICAgICJTJvxy/G0gQmlsZ2lzaSIsLTEsNywxMjksMjM0LDc5CiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1RZUEVTLDEzLDEzOSwxMDcsNjMsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBFRElUVEVYVCAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1ZBTFVFUywxMjMsMTM5LDExMSw2MyxFU19NVUxUSUxJTkUgfCBFU19SRUFET05MWSB8IFdTX1ZTQ1JPTEwKRU5ECgoKU1RSSU5HVEFCTEUKewogICAgSURTX0ZPTlRfU0VMX0RMR19OQU1FICAgIllhev0gdGlwaSBheWFybGFy/SB1eWd1bGFu/XlvciIKICAgIElEU19GT05UX1NFTF9FUlJPUiAgICAgICJZZW5pIHlhev0gdGlwaSBzZedlcmtlbiBoYXRhLiIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX1dJTkVGSUxFICAgICAgICAgICAgIldpbmVmaWxlIgogICAgSURTX0VSUk9SICAgICAgICAgICAgICAgIkhhdGEiCiAgICBJRFNfUk9PVF9GUyAgICAgICAgICAgICAia/ZrIGRzIgogICAgSURTX1VOSVhGUyAgICAgICAgICAgICAgInVuaXhmcyIKICAgIElEU19ERVNLVE9QICAgICAgICAgICAgICJNYXNh/HN0/CIKICAgIElEU19TSEVMTCAgICAgICAgICAgICAgICJLYWJ1ayIKICAgIElEU19USVRMRUZNVCAgICAgICAgICAgICIlcyAtICVzIgogICAgSURTX05PX0lNUEwgICAgICAgICAgICAgIkhlbvx6IHRhbWFtbGFubWFk/SIKICAgIElEU19XSU5FX0ZJTEUgICAgICAgICAgICJXaW5lIERvc3lhIFn2bmV0aWNpc2kiCn0KClNUUklOR1RBQkxFCnsKICAgIElEU19DT0xfTkFNRSAgICAgICAgICAgICJBZCIKICAgIElEU19DT0xfU0laRSAgICAgICAgICAgICJCb3l1dCIKICAgIElEU19DT0xfQ0RBVEUgICAgICAgICAgICJPVGFyaWhpIgogICAgSURTX0NPTF9BREFURSAgICAgICAgICAgIkVUYXJpaGkiCiAgICBJRFNfQ09MX01EQVRFICAgICAgICAgICAiRFRhcmloaSIKICAgIElEU19DT0xfSURYICAgICAgICAgICAgICLdbmRla3MvRPzw/G0iCiAgICBJRFNfQ09MX0xJTktTICAgICAgICAgICAiQmHwbGFudP1sYXIiCiAgICBJRFNfQ09MX0FUVFIgICAgICAgICAgICAi1nplbGxpa2xlciIKICAgIElEU19DT0xfU0VDICAgICAgICAgICAgICJH/HZlbmxpayIKCiAgICBJRFNfRlJFRV9TUEFDRV9GTVQgICAgICAiJXMgLyAlcyBib/4iCn0K