LyoKICogV2luZUZpbGUKICogTm9yd2VnaWFuIEJva23lbCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA1LTIwMDYgQWxleGFuZGVyIE4uIFP4cm5lcyA8YWxleEB0aGVoYW5kb2ZhZ29ueS5jb20+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJyZXNvdXJjZS5oIgoKTEFOR1VBR0UgTEFOR19OT1JXRUdJQU4sIFNVQkxBTkdfTk9SV0VHSUFOX0JPS01BTAoKLyogTWVudSAqLwoKSURNX1dJTkVGSUxFIE1FTlUgRklYRUQgSU1QVVJFCnsKICAgIFBPUFVQICImRmlsIiAgewogICAgICAgIE1FTlVJVEVNICImxXBuZVx0RW50ZXIiLCAgICAgICAgICAgICAgICBJRF9BQ1RJVkFURQogICAgICAgIE1FTlVJVEVNICImRmx5dHQuLi5cdEY3IiwgICAgICAgICAgICAgICAgSURfRklMRV9NT1ZFCiAgICAgICAgTUVOVUlURU0gIiZLb3BpZXIuLi5cdEY4IiwgICAgICAgICAgICAgICAgSURfRklMRV9DT1BZCiAgICAgICAgTUVOVUlURU0gIiZJIHV0a2xpcHBzdGF2bGVuLi4uXHRGOSIsICAgICAgICAxMTgKICAgICAgICBNRU5VSVRFTSAiJlNsZXR0XHREZWwiLCAgICAgICAgICAgICAgICBJRF9GSUxFX0RFTEVURQogICAgICAgIE1FTlVJVEVNICJHaSAmbnl0dCBuYXZuLi4uIiwgICAgICAgICAgICAgICAgICAxMDkKICAgICAgICBNRU5VSVRFTSAiJkVnZW5za2FwZXIuLi5cdEFsdCtFbnRlciIsICAgSURfRURJVF9QUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIksmb21wcmltZXIuLi4iLCAgICAgICAgICAgICAgICAxMTkKICAgICAgICBNRU5VSVRFTSAiRGUma29tcHJpbWVyLi4uIiwgICAgICAgICAgICAgIDEyMAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJLavgmci4uLiIsICAgICAgICAgICAgICAgICAgICAgSURfUlVOCiAgICAgICAgTUVOVUlURU0gIlNrcml2ICZ1dC4uLiIsICAgICAgICAgICAgICAgICAgIDEwMgogICAgICAgIE1FTlVJVEVNICJUaWxrbnl0dC4uLiIsICAgICAgICAgICAgICAgIDEwMwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJPcHByJmV0IGthdGFsb2cuLi4iLCAgICAgICAgMTExCiAgICAgICAgTUVOVUlURU0gIlMm+GsuLi4iLCAgICAgICAgICAgICAgICAgIDEwNAogICAgICAgIE1FTlVJVEVNICImVmVsZyBmaWxlci4uLiIsICAgICAgICAgICAgMTE2CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiJkF2c2x1dHRcdEFsdCtYIiwgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbHNlCiAgICAgICAgTUVOVUlURU0gIiZBdnNsdXR0IiwgICAgICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZW5kaWYKICAgIH0KCiAgICBQT1BVUCAiJlN0YXNqb24iICB7CiAgICAgICAgTUVOVUlURU0gIiZLb3BpZXIgc3Rhc2pvbi4uLiIsICAgICAgICAgICAgICAgMjAxCiAgICAgICAgTUVOVUlURU0gIkdpIHZvbCZ1bW5hdm4uLi4iLCAgICAgICAgICAgICAgMjAyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZGb3JtYXRlciBzdGFzam9uLi4uIiwgICAgICAgICAgICAgSURfRk9STUFUX0RJU0sKI2lmZGVmIF9XSU45NQogICAgICAgIE1FTlVJVEVNICJPcHByZXR0IHN5c3RlJm1kaXNrLi4uIiwgLTEgLypUT0RPKi8KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIktvYmxlIHRpbCAmbmV0dHZlcmtzc3Rhc2pvbiIsICAgICAgSURfQ09OTkVDVF9ORVRXT1JLX0RSSVZFCiAgICAgICAgTUVOVUlURU0gIktvYmxlICZmcmEgbmV0dHZlcmtzc3Rhc2pvbiIsICAgSURfRElTQ09OTkVDVF9ORVRXT1JLX0RSSVZFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkRlbCBzb20uLi4iLCAgICAgICAgICAgICAgICAgMjU0CiAgICAgICAgTUVOVUlURU0gIkZqZSZybiBkZWx0IHJlc3N1cnMuLi4iLCAgICAgICAgICAgIDI1NQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJWZWxnICZzdGFzam9uLi4uIiwgICAgICAgICAgICAyNTEKICAgIH0KCiAgICBQT1BVUCAiS2F0YWxvZ2UmciIgIHsKICAgICAgICBNRU5VSVRFTSAiJk5lc3RlIG5pduVcdCsiLCAgICAgICAgICAgICAgMzAxCiAgICAgICAgTUVOVUlURU0gIlV0dmlkIHQmcmVcdCoiLCAgICAgICAgICAgICAzMDIKICAgICAgICBNRU5VSVRFTSAiVXR2aWQgJmFsbGVcdFN0cmcrKiIsICAgICAgICAgMzAzCiAgICAgICAgTUVOVUlURU0gIlNs5SBzYW1tZW4gJnRyZVx0LSIsICAgICAgICAgICAzMDQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk1hcmtlciB1bmRlcmVsZW1lbnRlciIsICAgICAgICAgICAgICA1MDUKICAgIH0KCiAgICBQT1BVUCAiJlZpcyIgIHsKICAgICAgICBNRU5VSVRFTSAiVCZyZSBvZyBrYXRhbG9nIiwgICAgICAgICA0MTMKICAgICAgICBNRU5VSVRFTSAiS3VuIHRyJmUiLCAgICAgICAgICAgICAgICAgIDQxMQogICAgICAgIE1FTlVJVEVNICJLdW4ga2F0YWwmb2ciLCAgICAgICAgICAgICA0MTIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRGUmbCBvcHAgdmlzbmluZyIsICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk5hdm4iLCAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19OQU1FCiAgICAgICAgTUVOVUlURU0gIiZBbGxlIGZpbGRldGFsamVyIiwgICAgICAgICAgIElEX1ZJRVdfQUxMX0FUVFJJQlVURVMsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiRGVsJnZpc2UgZGV0YWxqZXIuLi4iLCAgICAgICAgIElEX1ZJRVdfU0VMRUNURURfQVRUUklCVVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU29ydGVyIGV0dGVyIG5hdm4iLCAgICAgICAgICAgICAgIElEX1ZJRVdfU09SVF9OQU1FCiAgICAgICAgTUVOVUlURU0gIlNvcnRlciBldHRlciAmdHlwZSIsICAgICAgICAgICAgICAgSURfVklFV19TT1JUX1RZUEUKICAgICAgICBNRU5VSVRFTSAiU29ydGVyIGV0dGVyIHN0JvhycmVsc2UiLCAgICAgICAgICAgICAgIElEX1ZJRVdfU09SVF9TSVpFCiAgICAgICAgTUVOVUlURU0gIlNvcnRlciBldHRlciAmZGF0byIsICAgICAgICAgICAgICAgSURfVklFV19TT1JUX0RBVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRmlsdHJlciBtZWQgJyYnLi4uIiwgICAgICAgICAgICAgIElEX1ZJRVdfRklMVEVSCiAgICB9CgogICAgUE9QVVAgIiZJbm5zdGlsbGluZ2VyIiAgewogICAgICAgIE1FTlVJVEVNICImQmVrcmVmdGVsc2UuLi4iLCAgICAgICAgICAgIDUwMQogICAgICAgIE1FTlVJVEVNICJTa3JpJmZ0Li4uIiwgICAgICAgICAgICAgICAgICAgIElEX1NFTEVDVF9GT05UCiAgICAgICAgTUVOVUlURU0gIlRpbHBhc3MgJnZlcmt0+HlsaW5qZW4uLi4iLCAgICAgICA1MTIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVmVyayZ0+HlsaW5qZSIsICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1RPT0xfQkFSLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIlN0YXMmam9uc2xpbmplIiwgICAgICAgICAgICAgICAgICAgSURfVklFV19EUklWRV9CQVIsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJlN0YXR1c2xpbmplIiwgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1RBVFVTQkFSLCBDSEVDS0VECiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiRiZ1bGxza2plcm1cdEN0cmwrU2hpZnQrUyIsICBJRF9WSUVXX0ZVTExTQ1JFRU4KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZNaW5pbWVyIHZlZCBvcHBzdGFydCIsICAgICAgICAgICAgNTA0CiAgICAgICAgTUVOVUlURU0gIkxhZ3JlIGlubiZzdGlsbGluZ2VyIHZlZCBhdnNsdXR0aW5nIiwgICAgICA1MTEKICAgIH0KCgogICAgUE9QVVAgIiZTaWtrZXJoZXQiICB7CiAgICAgICAgTUVOVUlURU0gIlRpbGcmYW5nLi4uIiwgICAgICAgICAgICAgICAgICA2MDUKICAgICAgICBNRU5VSVRFTSAiJkxvZ2dm+HJpbmcuLi4iLCAgICAgICAgICAgICAgICAgNjA2CiAgICAgICAgTUVOVUlURU0gIiZFaWVyLi4uIiwgICAgICAgICAgICAgICAgICAgNjA3CiAgICB9CgogICAgUE9QVVAgIlZpbmQmdSIgIHsKICAgICAgICBNRU5VSVRFTSAiTnl0dCAmdmluZHUiLCAgICAgICAgICAgICAgICAgSURfV0lORE9XX05FVwogICAgICAgIE1FTlVJVEVNICJLb3J0c3Rva2tcdEN0cmwrRjUiLCAgICAgICAgICBJRF9XSU5ET1dfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNICJTdGlsbCAmdmFubnJldHQiLCAgICAgICAgICBJRF9XSU5ET1dfVElMRV9IT1JaCiAgICAgICAgTUVOVUlURU0gIlN0aWxsICZsb2RkcmV0dFx0Q3RybCtGNCIsICAgSURfV0lORE9XX1RJTEVfVkVSVAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIk9yZG5lIGF1dG9tYXRpc2siLCAgICAgICBJRF9XSU5ET1dfQVVUT1NPUlQKI2VuZGlmCiAgICAgICAgTUVOVUlURU0gIk9yZG5lICZzeW1ib2xlciIsICAgICAgICAgICAgSURfV0lORE9XX0FSUkFOR0UKICAgICAgICBNRU5VSVRFTSAiT3BwZGF0ZSZyXHRGNSIsICAgICAgICAgICAgICAgIElEX1JFRlJFU0gKICAgIH0KCiAgICBQT1BVUCAiJkhqZWxwIiAgewogICAgICAgIE1FTlVJVEVNICJFbW5lciBpICZoamVscFx0RjEiLCAgICAgICAgICAgIElEX0hFTFAKICAgICAgICBNRU5VSVRFTSAiJlP4ayBpIGhqZWxwLi4uXHRGMSIsICAgICAgICAgSURfSEVMUAogICAgICAgIE1FTlVJVEVNICJCciZ1ayBhdiBoamVscFx0RjEiLCAgICAgICAgICAgICBJRF9IRUxQX1VTSU5HCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZJbmZvcm1hc2pvbiBvbSBGaWxiZWhhbmRsaW5nLi4uIiwgICAgIElEX0FCT1VUCiAgICB9Cn0KCklERF9TRUxFQ1RfREVTVElOQVRJT04gRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVmVsZyBwbGFzc2VyaW5ncyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBDT05UUk9MICAgICAgICAgIiIsIDEwMSwgIlN0YXRpYyIsIFNTX1NJTVBMRXxTU19OT1BSRUZJWCwgMywgNiwgMTYyLCAxMAogICAgQ09OVFJPTCAgICAgICAgICImU3RpOiIsIC0xLCAiU3RhdGljIiwgU1NfTEVGVE5PV09SRFdSQVB8V1NfR1JPVVAsIDMsIDE4LCA2MCwgMTAKICAgIEVESVRURVhUICAgICAgICAyMDEsIDMsIDI5LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsIDEsIDE1OCwgNiwgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF2YnJ5dCIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICImQmxhIiwgMjU0LCAxNTgsIDQzLCA0NywgMTQKfQoKSUREX0RJQUxPR19WSUVXX1RZUEUgRElBTE9HIERJU0NBUkRBQkxFIDE1LCAxMywgMTYxLCA5NwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFdHRlciBmaWx0eXBlIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICImTmF2bjoiLC0xLDcsOCwyMiwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19WSUVXX1BBVFRFUk4sMzEsNyw2MywxMixFU19BVVRPSFNDUk9MTAogICAgR1JPVVBCT1ggICAgICAgICJGaWx0eXBlIiwtMSw3LDIzLDg3LDU2CiAgICBDT05UUk9MICAgICAgICAgIiZLYXRhbG9nZXIiLElEQ19WSUVXX1RZUEVfRElSRUNUT1JJRVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMywzMiw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImUHJvZ3JhbW1lciIsSURDX1ZJRVdfVFlQRV9QUk9HUkFNUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDQzLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkRva3UmbWVudGVyIixJRENfVklFV19UWVBFX0RPQ1VNRU5UUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDU0LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZBbmRyZSBmaWxlciIsSURDX1ZJRVdfVFlQRV9PVEhFUlMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw2NSw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICJWaSZzIHNranVsdGUvc3lzdGVtZmlsZXIiLElEQ19WSUVXX1RZUEVfSElEREVOLAogICAgICAgICAgICAgICAgICAgICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw4MSwxMDYsOQogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxMDQsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdmJyeXQiLElEQ0FOQ0VMLDEwNCwyNCw1MCwxNApFTkQKCklERF9ESUFMT0dfUFJPUEVSVElFUyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0OCwgMjE1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVnZW5za2FwZXIgZm9yICVzIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxOTEsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdmJyeXQiLElEQ0FOQ0VMLDE5MSwyOSw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICImRmlsbmF2bjoiLC0xLDcsNyw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0ZJTEVOQU1FLDcxLDcsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImRnVsbCBzdGk6IiwtMSw3LDE4LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfUEFUSCw3MSwxOCwxMjAsOSwgRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTaXN0IGVuZHJldDoiLC0xLDcsMjksNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9MQVNUQ0hBTkdFLDcxLDI5LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiVmVyc2pvbjoiLC0xLDcsNDAsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9WRVJTSU9OLDcxLDQwLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJktvcGlyZXR0OiIsLTEsNyw1MSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0NPUFlSSUdIVCw3MSw1MSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlN0+HJyZWxzZToiLC0xLDcsNjIsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9TSVpFLDcxLDYyLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiQXR0cmlidXR0ZXIiLC0xLDcsNzksMTU4LDQ2CiAgICBDT05UUk9MICAgICAgICAgIlNrJnJpdmViZXNreXR0ZXQiLElEQ19DSEVDS19SRUFET05MWSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDkxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiU2smanVsdCIsSURDX0NIRUNLX0hJRERFTiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDkyLDkxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJkFya2l2IixJRENfQ0hFQ0tfQVJDSElWRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZTeXN0ZW0iLElEQ19DSEVDS19TWVNURU0sIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw5MiwxMDEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICJLb21wciZpbWVydCIsSURDX0NIRUNLX0NPTVBSRVNTRUQsIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTExLDY4LDkKICAgIEdST1VQQk9YICAgICAgICAiJlZlcnNqb25pbmZvcm1hc2pvbiIsLTEsNywxMjksMjM0LDc5CiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1RZUEVTLDEzLDEzOSwxMDcsNjMsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBFRElUVEVYVCAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1ZBTFVFUywxMjMsMTM5LDExMSw2MyxFU19NVUxUSUxJTkUgfCBFU19SRUFET05MWSB8IFdTX1ZTQ1JPTEwKRU5ECgoKU1RSSU5HVEFCTEUKewogICAgSURTX0ZPTlRfU0VMX0RMR19OQU1FICAgIkFrdGl2ZXJlciBza3JpZnRpbm5zdGlsbGluZ2VyIgogICAgSURTX0ZPTlRfU0VMX0VSUk9SICAgICAgIkZlaWwgdmVkIHZhbGcgYXYgbnkgc2tyaWZ0LiIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX1dJTkVGSUxFICAgICAgICAgICAgIkZpbGJlaGFuZGxpbmciCiAgICBJRFNfRVJST1IgICAgICAgICAgICAgICAiRmVpbCIKICAgIElEU19ST09UX0ZTICAgICAgICAgICAgICJSb3RmaWxzeXN0ZW0iCiAgICBJRFNfVU5JWEZTICAgICAgICAgICAgICAiVW5peC1maWxzeXN0ZW0iCiAgICBJRFNfREVTS1RPUCAgICAgICAgICAgICAiU2tyaXZlYm9yZCIKICAgIElEU19TSEVMTCAgICAgICAgICAgICAgICJTa2FsbCIKICAgIElEU19USVRMRUZNVCAgICAgICAgICAgICIlcyAtICVzIgogICAgSURTX05PX0lNUEwgICAgICAgICAgICAgIklra2UgaW1wbGVtZW50ZXJ0IGVubuUiCiAgICBJRFNfV0lORV9GSUxFICAgICAgICAgICAiRmlsYmVoYW5kbGluZyIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX0NPTF9OQU1FICAgICAgICAgICAgIk5hdm4iCiAgICBJRFNfQ09MX1NJWkUgICAgICAgICAgICAiU3T4cnJlbHNlIgogICAgSURTX0NPTF9DREFURSAgICAgICAgICAgIkMtZGF0byIKICAgIElEU19DT0xfQURBVEUgICAgICAgICAgICJBLWRhdG8iCiAgICBJRFNfQ09MX01EQVRFICAgICAgICAgICAiTS1kYXRvIgogICAgSURTX0NPTF9JRFggICAgICAgICAgICAgIkluZGVrcy9Jbm9kZSIKICAgIElEU19DT0xfTElOS1MgICAgICAgICAgICJLb2JsaW5nZXIiCiAgICBJRFNfQ09MX0FUVFIgICAgICAgICAgICAiQXR0cmlidXR0ZXIiCiAgICBJRFNfQ09MX1NFQyAgICAgICAgICAgICAiU2lra2VyaGV0IgoKICAgIElEU19GUkVFX1NQQUNFX0ZNVCAgICAgICIlcyBhdiAlcyBsZWRpZyIKfQo=