LyoKICogV2luZUZpbGUKICogRGFuaXNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDggSmVucyBBbGJyZXRzZW4gPGplbnNAYWxicmV0c2VuLmRrPgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAicmVzb3VyY2UuaCIKCkxBTkdVQUdFIExBTkdfREFOSVNILCBTVUJMQU5HX0RFRkFVTFQKCi8qIE1lbnUgKi8KCklETV9XSU5FRklMRSBNRU5VIEZJWEVEIElNUFVSRQp7CiAgICBQT1BVUCAiJkZpbCIgIHsKICAgICAgICBNRU5VSVRFTSAiJsViZW5cdEVudGVyIiwgICAgICAgICAgICAgICAgICAgICBJRF9BQ1RJVkFURQogICAgICAgIE1FTlVJVEVNICImRmx5dC4uLlx0RjciLCAgICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfTU9WRQogICAgICAgIE1FTlVJVEVNICImS29waWVyLi4uXHRGOCIsICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfQ09QWQogICAgICAgIE1FTlVJVEVNICImUOUga2xpcHBlYm9yZGV0Li4uXHRGOSIsICAgICAgICAgIDExOAogICAgICAgIE1FTlVJVEVNICImU2xldFx0RGVsIiwgICAgICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIk9tZPhiLi4uIiwgICAgICAgICAgICAgICAgICAgICAgICAgMTA5CiAgICAgICAgTUVOVUlURU0gIiZFZ2Vuc2thcGVyLi4uXHRBbHQrRW50ZXIiLCAgICAgICAgSURfRURJVF9QUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIksmb21wcmltZXIuLi4iLCAgICAgICAgICAgICAgICAgICAgMTE5CiAgICAgICAgTUVOVUlURU0gIkRlJmtvbXByaW1lci4uLiIsICAgICAgICAgICAgICAgICAgMTIwCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkv4JnIuLi4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgSURfRVhFQ1VURQogICAgICAgIE1FTlVJVEVNICImVWRza3Jpdi4uLiIsICAgICAgICAgICAgICAgICAgICAgIDEwMgogICAgICAgIE1FTlVJVEVNICJBc3NvY2llci4uLiIsICAgICAgICAgICAgICAgICAgICAgIDEwMwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJPcHImZXQgZm9sZGVyLi4uIiwgICAgICAgICAgICAgICAgIDExMQogICAgICAgIE1FTlVJVEVNICJTJvhnLi4uIiwgICAgICAgICAgICAgICAgICAgICAgICAgIDEwNAogICAgICAgIE1FTlVJVEVNICImVuZsZyBmaWxlci4uLiIsICAgICAgICAgICAgICAgICAgIDExNgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIiZBZnNsdXRcdEFsdCtYIiwgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbHNlCiAgICAgICAgTUVOVUlURU0gIiZBZnNsdXQiLCAgICAgICAgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbmRpZgogICAgfQoKICAgIFBPUFVQICImRGlza2V0dGUiICB7CiAgICAgICAgTUVOVUlURU0gIiZLb3BpZXIgZGlza2V0dGUuLi4iLCAgICAgICAgICAgICAgMjAxCiAgICAgICAgTUVOVUlURU0gIlPmdCB2b2wmdW1lbmF2bi4uLiIsICAgICAgICAgICAgICAgMjAyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZGb3JtYXRlciBkaXNrZXR0ZS4uLiIsICAgICAgICAgICAgSURfRk9STUFUX0RJU0sKI2lmZGVmIF9XSU45NQogICAgICAgIE1FTlVJVEVNICJPcHJldCBzeXN0ZSZtZGlza2V0dGUuLi4iLCAgICAgICAgIC0xIC8qVE9ETyovCiNlbmRpZgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImVGlsc2x1dCBuZXR25nJrc2RyZXYiLCAgICAgICAgICAgIElEX0NPTk5FQ1RfTkVUV09SS19EUklWRQogICAgICAgIE1FTlVJVEVNICJGcmFrb2JsICZuZXR25nJrc2RyZXYiLCAgICAgICAgICAgIElEX0RJU0NPTk5FQ1RfTkVUV09SS19EUklWRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJEZWwgc29tLi4uIiwgICAgICAgICAgICAgICAgICAgICAgIDI1NAogICAgICAgIE1FTlVJVEVNICJGamUmcm4gZGVsdCByZXNvdXJzZS4uLiIsICAgICAgICAgIDI1NQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJW5mxnICZlbmhlZC4uLiIsICAgICAgICAgICAgICAgICAgIDI1MQogICAgfQoKICAgIFBPUFVQICJLYXRhbG9nZSZyIiAgewogICAgICAgIE1FTlVJVEVNICImTuZzdGUgbml2ZWF1XHQrIiwgICAgICAgICAgICAgICAgIDMwMQogICAgICAgIE1FTlVJVEVNICJVZHZpZCB0JnLmXHQqIiwgICAgICAgICAgICAgICAgICAgIDMwMgogICAgICAgIE1FTlVJVEVNICJVZHZpZCAmYWxsZVx0U3RyZysqIiwgICAgICAgICAgICAgIDMwMwogICAgICAgIE1FTlVJVEVNICJLb2xhcHMgJnRy5lx0LSIsICAgICAgICAgICAgICAgICAgIDMwNAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTWFya2VyIHVuZGVyZWxlbWVudGVyIiwgICAgICAgICAgIDUwNQogICAgfQoKICAgIFBPUFVQICImVmlzIiAgewogICAgICAgIE1FTlVJVEVNICJUJnLmIG9nIGZvbGRlciIsICAgICAgICAgICAgICAgICAgIDQxMwogICAgICAgIE1FTlVJVEVNICJLdW4gdHIm5iIsICAgICAgICAgICAgICAgICAgICAgICAgIDQxMQogICAgICAgIE1FTlVJVEVNICJLdW4gJmZvbGRlciIsICAgICAgICAgICAgICAgICAgICAgIDQxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImVmlzbmluZyBvcGRlbGluZyIsICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk5hdm4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX05BTUUKICAgICAgICBNRU5VSVRFTSAiJkFsbGUgZmlsZGV0YWxqZXIiLCAgICAgICAgICAgICAgICBJRF9WSUVXX0FMTF9BVFRSSUJVVEVTLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIkRlbCZ2aXNlIGRldGFsamVyLi4uIiwgICAgICAgICAgICAgSURfVklFV19TRUxFQ1RFRF9BVFRSSUJVVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTb3J0ZXIgZWZ0ZXIgbmF2biIsICAgICAgICAgICAgICAgSURfVklFV19TT1JUX05BTUUKICAgICAgICBNRU5VSVRFTSAiU29ydGVyIGVmdGVyICZ0eXBlIiwgICAgICAgICAgICAgICBJRF9WSUVXX1NPUlRfVFlQRQogICAgICAgIE1FTlVJVEVNICJTb3J0ZXIgZWZ0ZXIgc3Qm+HJyZWxzZSIsICAgICAgICAgIElEX1ZJRVdfU09SVF9TSVpFCiAgICAgICAgTUVOVUlURU0gIlNvcnRlciBlZnRlciAmZGF0byIsICAgICAgICAgICAgICAgSURfVklFV19TT1JUX0RBVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRmlsdHJlciBtZWQgJyYnLi4uIiwgICAgICAgICAgICAgICBJRF9WSUVXX0ZJTFRFUgogICAgfQoKICAgIFBPUFVQICImSW5kc3RpbGxpbmdlciIgIHsKICAgICAgICBNRU5VSVRFTSAiJkJla3LmZnRlbHNlLi4uIiwgICAgICAgICAgICAgICAgICA1MDEKICAgICAgICBNRU5VSVRFTSAiU2tyaSZmdHR5cGUuLi4iLCAgICAgICAgICAgICAgICAgICBJRF9TRUxFQ1RfRk9OVAogICAgICAgIE1FTlVJVEVNICJUaWxwYXMgJnbmcmt0+GpzbGluaWVuLi4uIiwgICAgICAgIDUxMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJW5nJrJnT4amxpbmllIiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVE9PTF9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJkVuaGVkc2xpbmllIiwgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RSSVZFX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImU3RhdHVzbGluaWUiLCAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1RBVFVTQkFSLCBDSEVDS0VECiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiRiZ1bGRza+ZybVx0Q3RybCtTaGlmdCtTIiwgICAgICAgICBJRF9WSUVXX0ZVTExTQ1JFRU4KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZNaW5pbWVyIHZlZCBzdGFydCIsICAgICAgICAgICAgICAgNTA0CiAgICAgICAgTUVOVUlURU0gIkdlbSBpbmQmc3RpbGxpbmdlciB2ZWQgYWZzbHV0bmluZyIsNTExCiAgICB9CgoKICAgIFBPUFVQICImU2lra2VyaGVkIiAgewogICAgICAgIE1FTlVJVEVNICJUaWxnJmFuZy4uLiIsICAgICAgICAgICAgICAgICAgICAgNjA1CiAgICAgICAgTUVOVUlURU0gIiZMb2dm+HJpbmcuLi4iLCAgICAgICAgICAgICAgICAgICA2MDYKICAgICAgICBNRU5VSVRFTSAiJkVqZXIuLi4iLCAgICAgICAgICAgICAgICAgICAgICAgIDYwNwogICAgfQoKICAgIFBPUFVQICJWaW5kJnVlIiAgewogICAgICAgIE1FTlVJVEVNICJOeXQgJnZpbmR1ZSIsICAgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV19ORVcKICAgICAgICBNRU5VSVRFTSAiS29ydHN0YWtcdEN0cmwrRjUiLCAgICAgICAgICAgICAgICBJRF9XSU5ET1dfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNICJTdGlsICZ2YW5kcmV0IiwgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV19USUxFX0hPUloKICAgICAgICBNRU5VSVRFTSAiU3RpbCAmbG9kcmV0XHRDdHJsK0Y0IiwgICAgICAgICAgICBJRF9XSU5ET1dfVElMRV9WRVJUCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiT3JkbmUgYXV0b21hdGlzayIsICAgICAgICAgICAgICAgICBJRF9XSU5ET1dfQVVUT1NPUlQKI2VuZGlmCiAgICAgICAgTUVOVUlURU0gIk9yZG5lICZzeW1ib2xlciIsICAgICAgICAgICAgICAgICAgSURfV0lORE9XX0FSUkFOR0UKICAgICAgICBNRU5VSVRFTSAiT3BkYXRlJnJcdEY1IiwgICAgICAgICAgICAgICAgICAgICBJRF9SRUZSRVNICiAgICB9CgogICAgUE9QVVAgIiZIauZscCIgIHsKICAgICAgICBNRU5VSVRFTSAiRW1uZXIgaSAmaGrmbHBcdEYxIiwgICAgICAgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIiZT+GcgaSBoauZscC4uLlx0RjEiLCAgICAgICAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICJCciZ1ZyBhZiBoauZscFx0RjEiLCAgICAgICAgICAgICAgIElEX0hFTFBfVVNJTkcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkluZm9ybWF0aW9uIG9tIEZpbGJlaGFuZGxpbmcuLi4iLElEX0FCT1VUCiAgICB9Cn0KCgpJRERfRVhFQ1VURSBESUFMT0cgRklYRUQgSU1QVVJFIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJL+HIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgQ09OVFJPTCAgICAgICAgICIiLCAxMDEsICJTdGF0aWMiLCBTU19TSU1QTEV8U1NfTk9QUkVGSVgsIDMsIDYsIDE2MiwgMTAKICAgIENPTlRST0wgICAgICAgICAiJktvbW1hbmRvOiIsIC0xLCAiU3RhdGljIiwgU1NfTEVGVE5PV09SRFdSQVB8V1NfR1JPVVAsIDMsIDE4LCA2MCwgMTAKICAgIEVESVRURVhUICAgICAgICAyMDEsIDMsIDI5LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTAogICAgQ09OVFJPTCAgICAgICAgICImU29tIHN5bWJvbCIsIDIxNCwgIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QLDMsIDQ1LCA3MSwgMTIKICAgIERFRlBVU0hCVVRUT04gICAiT0siLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbm51bGxlciIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICImSGrmbHAiLCAyNTQsIDE1OCwgNDMsIDQ3LCAxNAp9CgpJRERfU0VMRUNUX0RFU1RJTkFUSU9OIERJQUxPRyBGSVhFRCBJTVBVUkUgMTUsIDEzLCAyMTAsIDYzClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlbmbGcgZGVzdGluYXRpb24iCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgQ09OVFJPTCAgICAgICAgICIiLCAxMDEsICJTdGF0aWMiLCBTU19TSU1QTEV8U1NfTk9QUkVGSVgsIDMsIDYsIDE2MiwgMTAKICAgIENPTlRST0wgICAgICAgICAiJlN0aToiLCAtMSwgIlN0YXRpYyIsIFNTX0xFRlROT1dPUkRXUkFQfFdTX0dST1VQLCAzLCAxOCwgNjAsIDEwCiAgICBFRElUVEVYVCAgICAgICAgMjAxLCAzLCAyOSwgMTM0LCAxMiwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbm51bGxlciIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICImR2VubmVtc2UiLCAyNTQsIDE1OCwgNDMsIDQ3LCAxNAp9CgpJRERfRElBTE9HX1ZJRVdfVFlQRSBESUFMT0cgRElTQ0FSREFCTEUgMTUsIDEzLCAxNjEsIDk3ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVmdGVyIGZpbHR5cGUiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIiZOYXZuOiIsLTEsNyw4LDIyLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZJRVdfUEFUVEVSTiwzMSw3LDYzLDEyLEVTX0FVVE9IU0NST0xMCiAgICBHUk9VUEJPWCAgICAgICAgIkZpbHR5cGUiLC0xLDcsMjMsODcsNTYKICAgIENPTlRST0wgICAgICAgICAiJkthdGFsb2dlciIsSURDX1ZJRVdfVFlQRV9ESVJFQ1RPUklFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDMyLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQcm9ncmFtbWVyIixJRENfVklFV19UWVBFX1BST0dSQU1TLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNDMsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiRG9rdSZtZW50ZXIiLElEQ19WSUVXX1RZUEVfRE9DVU1FTlRTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNTQsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJkFuZHJlIGZpbGVyIixJRENfVklFV19UWVBFX09USEVSUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDY1LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIlZpJnMgc2tqdWx0ZS9zeXN0ZW1maWxlciIsSURDX1ZJRVdfVFlQRV9ISURERU4sCiAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDgxLDEwNiw5CiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEwNCw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkFubnVsbGVyIixJRENBTkNFTCwxMDQsMjQsNTAsMTQKRU5ECgpJRERfRElBTE9HX1BST1BFUlRJRVMgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDgsIDIxNQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFZ2Vuc2thcGVyIGZvciAlcyIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTkxLDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQW5udWxsZXIiLElEQ0FOQ0VMLDE5MSwyOSw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICImRmlsbmF2bjoiLC0xLDcsNyw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0ZJTEVOQU1FLDcxLDcsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImRnVsbCBzdGk6IiwtMSw3LDE4LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfUEFUSCw3MSwxOCwxMjAsOSwgRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTaWRzdCDmbmRyZXQ6IiwtMSw3LDI5LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfTEFTVENIQU5HRSw3MSwyOSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlZlcnNpb246IiwtMSw3LDQwLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfVkVSU0lPTiw3MSw0MCwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZPcGhhdnNyZXQ6IiwtMSw3LDUxLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfQ09QWVJJR0hULDcxLDUxLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiU3T4cnJlbHNlOiIsLTEsNyw2Miw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1NJWkUsNzEsNjIsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJBdHRyaWJ1dHRlciIsLTEsNyw3OSwxNTgsNDYKICAgIENPTlRST0wgICAgICAgICAiU2smcml2ZWJlc2t5dHRldCIsSURDX0NIRUNLX1JFQURPTkxZLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICJTayZqdWx0IixJRENfQ0hFQ0tfSElEREVOLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImQXJraXYiLElEQ19DSEVDS19BUkNISVZFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTAxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJlN5c3RlbSIsSURDX0NIRUNLX1NZU1RFTSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDkyLDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIktvbXByJmltZXJldCIsSURDX0NIRUNLX0NPTVBSRVNTRUQsIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTExLDY4LDkKICAgIEdST1VQQk9YICAgICAgICAiJlZlcnNpb25pbmZvcm1hdGlvbiIsLTEsNywxMjksMjM0LDc5CiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1RZUEVTLDEzLDEzOSwxMDcsNjMsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBFRElUVEVYVCAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1ZBTFVFUywxMjMsMTM5LDExMSw2MyxFU19NVUxUSUxJTkUgfCBFU19SRUFET05MWSB8IFdTX1ZTQ1JPTEwKRU5ECgoKU1RSSU5HVEFCTEUKewogICAgSURTX0ZPTlRfU0VMX0RMR19OQU1FICAgIkFrdGl2ZXIgc2tyaWZ0aW5kc3RpbGxpbmdlciIKICAgIElEU19GT05UX1NFTF9FUlJPUiAgICAgICJGZWpsIHZlZCB2YWxnIGFmIG55IHNrcmlmdHR5cGUuIgp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfV0lORUZJTEUgICAgICAgICAgICAiRmlsYmVoYW5kbGluZyIKICAgIElEU19FUlJPUiAgICAgICAgICAgICAgICJGZWpsIgogICAgSURTX1JPT1RfRlMgICAgICAgICAgICAgIlJvZGZpbHN5c3RlbSIKICAgIElEU19VTklYRlMgICAgICAgICAgICAgICJVbml4LWZpbHN5c3RlbSIKICAgIElEU19ERVNLVE9QICAgICAgICAgICAgICJTa3JpdmVib3JkIgogICAgSURTX1NIRUxMICAgICAgICAgICAgICAgIlNrYWwiCiAgICBJRFNfVElUTEVGTVQgICAgICAgICAgICAiJXMgLSAlcyIKICAgIElEU19OT19JTVBMICAgICAgICAgICAgICJJa2tlIGltcGxlbWVudGVyZXQgZW5kbnUiCiAgICBJRFNfV0lORV9GSUxFICAgICAgICAgICAiRmlsYmVoYW5kbGluZyIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX0NPTF9OQU1FICAgICAgICAgICAgIk5hdm4iCiAgICBJRFNfQ09MX1NJWkUgICAgICAgICAgICAiU3T4cnJlbHNlIgogICAgSURTX0NPTF9DREFURSAgICAgICAgICAgIkMtZGF0byIKICAgIElEU19DT0xfQURBVEUgICAgICAgICAgICJBLWRhdG8iCiAgICBJRFNfQ09MX01EQVRFICAgICAgICAgICAiTS1kYXRvIgogICAgSURTX0NPTF9JRFggICAgICAgICAgICAgIkluZGVrcy9Jbm9kZSIKICAgIElEU19DT0xfTElOS1MgICAgICAgICAgICJHZW52ZWplIgogICAgSURTX0NPTF9BVFRSICAgICAgICAgICAgIkF0dHJpYnV0dGVyIgogICAgSURTX0NPTF9TRUMgICAgICAgICAgICAgIlNpa2tlcmhlZCIKCiAgICBJRFNfRlJFRV9TUEFDRV9GTVQgICAgICAiJXMgYWYgJXMgbGVkaWciCn0K