LyoKICogV2luZUZpbGUKICogTm9yd2VnaWFuIEJva23lbCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA1LTIwMDYgQWxleGFuZGVyIE4uIFP4cm5lcyA8YWxleEB0aGVoYW5kb2ZhZ29ueS5jb20+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfTk9SV0VHSUFOLCBTVUJMQU5HX05PUldFR0lBTl9CT0tNQUwKCi8qIE1lbnUgKi8KCklETV9XSU5FRklMRSBNRU5VIEZJWEVEIElNUFVSRQp7CiAgICBQT1BVUCAiJkZpbCIgIHsKICAgICAgICBNRU5VSVRFTSAiJsVwbmVcdEVudGVyIiwgICAgICAgICAgICAgICAgSURfQUNUSVZBVEUKICAgICAgICBNRU5VSVRFTSAiJkZseXR0IC4gLiAuXHRGNyIsICAgICAgICAgICAgICAgIElEX0ZJTEVfTU9WRQogICAgICAgIE1FTlVJVEVNICImS29waWVyIC4gLiAuXHRGOCIsICAgICAgICAgICAgICAgIElEX0ZJTEVfQ09QWQogICAgICAgIE1FTlVJVEVNICImSSB1dGtsaXBwc3RhdmxlbiAuIC4gLlx0RjkiLCAgICAgICAgMTE4CiAgICAgICAgTUVOVUlURU0gIiZTbGV0dFx0RGVsIiwgICAgICAgICAgICAgICAgSURfRklMRV9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiR2kgJm55dHQgbmF2biAuIC4gLiIsICAgICAgICAgICAgICAgICAgMTA5CiAgICAgICAgTUVOVUlURU0gIiZFZ2Vuc2thcGVyIC4gLiAuXHRBbHQrRW50ZXIiLCAgIElEX0VESVRfUFJPUEVSVElFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJLJm9tcHJpbWVyIC4gLiAuIiwgICAgICAgICAgICAgICAgMTE5CiAgICAgICAgTUVOVUlURU0gIkRlJmtvbXByaW1lciAuIC4gLiIsICAgICAgICAgICAgICAxMjAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiS2r4JnIgLiAuIC4iLCAgICAgICAgICAgICAgICAgICAgIElEX0VYRUNVVEUKICAgICAgICBNRU5VSVRFTSAiU2tyaXYgJnV0IC4gLiAuIiwgICAgICAgICAgICAgICAgICAgMTAyCiAgICAgICAgTUVOVUlURU0gIlRpbGtueXR0IC4gLiAuIiwgICAgICAgICAgICAgICAgMTAzCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIk9wcHImZXQga2F0YWxvZyAuIC4gLiIsICAgICAgICAxMTEKICAgICAgICBNRU5VSVRFTSAiUyb4ayAuIC4gLiIsICAgICAgICAgICAgICAgICAgMTA0CiAgICAgICAgTUVOVUlURU0gIiZWZWxnIGZpbGVyIC4gLiAuIiwgICAgICAgICAgICAxMTYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICImQXZzbHV0dFx0QWx0K1giLCAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKI2Vsc2UKICAgICAgICBNRU5VSVRFTSAiJkF2c2x1dHQiLCAgICAgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbmRpZgogICAgfQoKICAgIFBPUFVQICImU3Rhc2pvbiIgIHsKICAgICAgICBNRU5VSVRFTSAiJktvcGllciBzdGFzam9uIC4gLiAuIiwgICAgICAgICAgICAgICAyMDEKICAgICAgICBNRU5VSVRFTSAiR2kgdm9sJnVtbmF2biAuIC4gLiIsICAgICAgICAgICAgICAyMDIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkZvcm1hdGVyIHN0YXNqb24gLiAuIC4iLCAgICAgICAgICAgICBJRF9GT1JNQVRfRElTSwojaWZkZWYgX1dJTjk1CiAgICAgICAgTUVOVUlURU0gIk9wcHJldHQgc3lzdGUmbWRpc2sgLiAuIC4iLCAtMSAvKlRPRE8qLwojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiS29ibGUgdGlsICZuZXR0dmVya3NzdGFzam9uIiwgICAgICBJRF9DT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSAiS29ibGUgJmZyYSBuZXR0dmVya3NzdGFzam9uIiwgICBJRF9ESVNDT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRGVsIHNvbSAuIC4gLiIsICAgICAgICAgICAgICAgICAyNTQKICAgICAgICBNRU5VSVRFTSAiRmplJnJuIGRlbHQgcmVzc3VycyAuIC4gLiIsICAgICAgICAgICAgMjU1CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlZlbGcgJnN0YXNqb24gLiAuIC4iLCAgICAgICAgICAgIDI1MQogICAgfQoKICAgIFBPUFVQICJLYXRhbG9nZSZyIiAgewogICAgICAgIE1FTlVJVEVNICImTmVzdGUgbml25Vx0KyIsICAgICAgICAgICAgICAzMDEKICAgICAgICBNRU5VSVRFTSAiVXR2aWQgJnJlXHQqIiwgICAgICAgICAgICAgMzAyCiAgICAgICAgTUVOVUlURU0gIlV0dmlkICZhbGxlXHRTdHJnKyoiLCAgICAgICAgIDMwMwogICAgICAgIE1FTlVJVEVNICJTbOUgc2FtbWVuICZ0cmVcdC0iLCAgICAgICAgICAgMzA0CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZNYXJrZXIgdW5kZXJlbGVtZW50ZXIiLCAgICAgICAgICAgICAgNTA1CiAgICB9CgogICAgUE9QVVAgIiZWaXMiICB7CiAgICAgICAgTUVOVUlURU0gIlQmcmUgb2cga2F0YWxvZyIsICAgICAgICAgNDEzCiAgICAgICAgTUVOVUlURU0gIkt1biB0ciZlIiwgICAgICAgICAgICAgICAgICA0MTEKICAgICAgICBNRU5VSVRFTSAiS3VuIGthdGFsJm9nIiwgICAgICAgICAgICAgNDEyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkRlJmwgb3BwIHZpc25pbmciLCAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZOYXZuIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfTkFNRQogICAgICAgIE1FTlVJVEVNICImQWxsZSBmaWxkZXRhbGplciIsICAgICAgICAgICBJRF9WSUVXX0FMTF9BVFRSSUJVVEVTLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIkRlbCZ2aXNlIGRldGFsamVyIC4gLiAuIiwgICAgICAgICBJRF9WSUVXX1NFTEVDVEVEX0FUVFJJQlVURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlNvcnRlciBldHRlciBuYXZuIiwgICAgICAgICAgICAgICBJRF9WSUVXX1NPUlRfTkFNRQogICAgICAgIE1FTlVJVEVNICJTb3J0ZXIgZXR0ZXIgJnR5cGUiLCAgICAgICAgICAgICAgIElEX1ZJRVdfU09SVF9UWVBFCiAgICAgICAgTUVOVUlURU0gIlNvcnRlciBldHRlciBzdCb4cnJlbHNlIiwgICAgICAgICAgICAgICBJRF9WSUVXX1NPUlRfU0laRQogICAgICAgIE1FTlVJVEVNICJTb3J0ZXIgZXR0ZXIgJmRhdG8iLCAgICAgICAgICAgICAgIElEX1ZJRVdfU09SVF9EQVRFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkZpbHRyZXIgbWVkICcmJyAuIC4gLiIsICAgICAgICAgICAgICBJRF9WSUVXX0ZJTFRFUgogICAgfQoKICAgIFBPUFVQICImSW5uc3RpbGxpbmdlciIgIHsKICAgICAgICBNRU5VSVRFTSAiJkJla3JlZnRlbHNlIC4gLiAuIiwgICAgICAgICAgICA1MDEKICAgICAgICBNRU5VSVRFTSAiU2tyaSZmdCAuIC4gLiIsICAgICAgICAgICAgICAgICAgICBJRF9TRUxFQ1RfRk9OVAogICAgICAgIE1FTlVJVEVNICJUaWxwYXNzICZ2ZXJrdPh5bGluamVuIC4gLiAuIiwgICAgICAgNTEyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlZlcmsmdPh5bGluamUiLCAgICAgICAgICAgICAgICAgICAgSURfVklFV19UT09MX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICJTdGFzJmpvbnNsaW5qZSIsICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfRFJJVkVfQkFSLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIiZTdGF0dXNsaW5qZSIsICAgICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUiwgQ0hFQ0tFRAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIkYmdWxsc2tqZXJtXHRDdHJsK1NoaWZ0K1MiLCAgSURfVklFV19GVUxMU0NSRUVOCiNlbmRpZgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTWluaW1lciB2ZWQgb3Bwc3RhcnQiLCAgICAgICAgICAgIDUwNAogICAgICAgIE1FTlVJVEVNICJMYWdyZSBpbm4mc3RpbGxpbmdlciB2ZWQgYXZzbHV0dGluZyIsICAgICAgNTExCiAgICB9CgoKICAgIFBPUFVQICImU2lra2VyaGV0IiAgewogICAgICAgIE1FTlVJVEVNICJUaWxnJmFuZyAuIC4gLiIsICAgICAgICAgICAgICAgICAgNjA1CiAgICAgICAgTUVOVUlURU0gIiZMb2dnZvhyaW5nIC4gLiAuIiwgICAgICAgICAgICAgICAgIDYwNgogICAgICAgIE1FTlVJVEVNICImRWllciAuIC4gLiIsICAgICAgICAgICAgICAgICAgIDYwNwogICAgfQoKICAgIFBPUFVQICJWaW5kJnUiICB7CiAgICAgICAgTUVOVUlURU0gIk55dHQgJnZpbmR1IiwgICAgICAgICAgICAgICAgIElEX1dJTkRPV19ORVcKICAgICAgICBNRU5VSVRFTSAiS29ydHN0b2trXHRDdHJsK0Y1IiwgICAgICAgICAgSURfV0lORE9XX0NBU0NBREUKICAgICAgICBNRU5VSVRFTSAiU3RpbGwgJnZhbm5yZXR0IiwgICAgICAgICAgSURfV0lORE9XX1RJTEVfSE9SWgogICAgICAgIE1FTlVJVEVNICJTdGlsbCAmbG9kZHJldHRcdEN0cmwrRjQiLCAgIElEX1dJTkRPV19USUxFX1ZFUlQKI2lmbmRlZiBfTk9fRVhURU5TSU9OUwogICAgICAgIE1FTlVJVEVNICJPcmRuZSBhdXRvbWF0aXNrIiwgICAgICAgSURfV0lORE9XX0FVVE9TT1JUCiNlbmRpZgogICAgICAgIE1FTlVJVEVNICJPcmRuZSAmc3ltYm9sZXIiLCAgICAgICAgICAgIElEX1dJTkRPV19BUlJBTkdFCiAgICAgICAgTUVOVUlURU0gIk9wcGRhdGUmclx0RjUiLCAgICAgICAgICAgICAgICBJRF9SRUZSRVNICiAgICB9CgogICAgUE9QVVAgIiZIamVscCIgIHsKICAgICAgICBNRU5VSVRFTSAiRW1uZXIgaSAmaGplbHBcdEYxIiwgICAgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIiZT+GsgaSBoamVscCAuIC4gLlx0RjEiLCAgICAgICAgIElEX0hFTFAKICAgICAgICBNRU5VSVRFTSAiQnImdWsgYXYgaGplbHBcdEYxIiwgICAgICAgICAgICAgSURfSEVMUF9VU0lORwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImSW5mb3JtYXNqb24gb20gRmlsYmVoYW5kbGluZyAuIC4gLiIsICAgICBJRF9BQk9VVAojaWZkZWYgX19XSU5FX18KICAgICAgICBNRU5VSVRFTSAiSW5mb3JtYXNqb24gb20gJldpbmUgLiAuIC4iLCAgICAgICAgIElEX0FCT1VUX1dJTkUKI2VuZGlmCiAgICB9Cn0KCgpJRERfRVhFQ1VURSBESUFMT0cgRklYRUQgSU1QVVJFIDE1LCAxMywgMjEwLCA2MwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJLavhyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIiZLb21tYW5kbzoiLCAtMSwgIlN0YXRpYyIsIFNTX0xFRlROT1dPUkRXUkFQfFdTX0dST1VQLCAzLCAxOCwgNjAsIDEwCiAgICBFRElUVEVYVCAgICAgICAgMjAxLCAzLCAyOSwgMTM0LCAxMiwgRVNfQVVUT0hTQ1JPTEwKICAgIENPTlRST0wgICAgICAgICAiJlNvbSBzeW1ib2wiLCAyMTQsICJCdXR0b24iLCBCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUCwzLCA0NSwgNzEsIDEyCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIiwgMSwgMTU4LCA2LCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXZicnl0IiwgMiwgMTU4LCAyMywgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZIamVscCIsIDI1NCwgMTU4LCA0MywgNDcsIDE0Cn0KCklERF9TRUxFQ1RfREVTVElOQVRJT04gRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVmVsZyBwbGFzc2VyaW5ncyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBDT05UUk9MICAgICAgICAgIiIsIDEwMSwgIlN0YXRpYyIsIFNTX1NJTVBMRXxTU19OT1BSRUZJWCwgMywgNiwgMTYyLCAxMAogICAgQ09OVFJPTCAgICAgICAgICImU3RpOiIsIC0xLCAiU3RhdGljIiwgU1NfTEVGVE5PV09SRFdSQVB8V1NfR1JPVVAsIDMsIDE4LCA2MCwgMTAKICAgIEVESVRURVhUICAgICAgICAyMDEsIDMsIDI5LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsIDEsIDE1OCwgNiwgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF2YnJ5dCIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICImQmxhIiwgMjU0LCAxNTgsIDQzLCA0NywgMTQKfQoKSUREX0RJQUxPR19WSUVXX1RZUEUgRElBTE9HIERJU0NBUkRBQkxFIDE1LCAxMywgMTYxLCA5NwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFdHRlciBmaWx0eXBlIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICImTmF2bjoiLC0xLDcsOCwyMiwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19WSUVXX1BBVFRFUk4sMzEsNyw2MywxMixFU19BVVRPSFNDUk9MTAogICAgR1JPVVBCT1ggICAgICAgICJGaWx0eXBlIiwtMSw3LDIzLDg3LDU2CiAgICBDT05UUk9MICAgICAgICAgIiZLYXRhbG9nZXIiLElEQ19WSUVXX1RZUEVfRElSRUNUT1JJRVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMywzMiw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImUHJvZ3JhbW1lciIsSURDX1ZJRVdfVFlQRV9QUk9HUkFNUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDQzLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkRva3UmbWVudGVyIixJRENfVklFV19UWVBFX0RPQ1VNRU5UUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDU0LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZBbmRyZSBmaWxlciIsSURDX1ZJRVdfVFlQRV9PVEhFUlMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw2NSw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICJWaSZzIHNranVsdGUvc3lzdGVtZmlsZXIiLElEQ19WSUVXX1RZUEVfSElEREVOLAogICAgICAgICAgICAgICAgICAgICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw4MSwxMDYsOQogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxMDQsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdmJyeXQiLElEQ0FOQ0VMLDEwNCwyNCw1MCwxNApFTkQKCklERF9ESUFMT0dfUFJPUEVSVElFUyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0OCwgMjE1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVnZW5za2FwZXIgZm9yICVzIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxOTEsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdmJyeXQiLElEQ0FOQ0VMLDE5MSwyOSw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICImRmlsbmF2bjoiLC0xLDcsNyw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0ZJTEVOQU1FLDcxLDcsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImRnVsbCBzdGk6IiwtMSw3LDE4LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfUEFUSCw3MSwxOCwxMjAsOSwgRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTaXN0IGVuZHJldDoiLC0xLDcsMjksNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9MQVNUQ0hBTkdFLDcxLDI5LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiVmVyc2pvbjoiLC0xLDcsNDAsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9WRVJTSU9OLDcxLDQwLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJktvcGlyZXR0OiIsLTEsNyw1MSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0NPUFlSSUdIVCw3MSw1MSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlN0+HJyZWxzZToiLC0xLDcsNjIsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9TSVpFLDcxLDYyLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiQXR0cmlidXR0ZXIiLC0xLDcsNzksMTU4LDQ2CiAgICBDT05UUk9MICAgICAgICAgIlNrJnJpdmViZXNreXR0ZXQiLElEQ19DSEVDS19SRUFET05MWSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDkxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiU2smanVsdCIsSURDX0NIRUNLX0hJRERFTiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDkyLDkxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJkFya2l2IixJRENfQ0hFQ0tfQVJDSElWRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZTeXN0ZW0iLElEQ19DSEVDS19TWVNURU0sIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw5MiwxMDEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICJLb21wciZpbWVydCIsSURDX0NIRUNLX0NPTVBSRVNTRUQsIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTExLDY4LDkKICAgIEdST1VQQk9YICAgICAgICAiJlZlcnNqb25pbmZvcm1hc2pvbiIsLTEsNywxMjksMjM0LDc5CiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1RZUEVTLDEzLDEzOSwxMDcsNjMsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBFRElUVEVYVCAgICAgICAgSURDX0xJU1RfUFJPUF9WRVJTSU9OX1ZBTFVFUywxMjMsMTM5LDExMSw2MyxFU19NVUxUSUxJTkUgfCBFU19SRUFET05MWSB8IFdTX1ZTQ1JPTEwKRU5ECgoKU1RSSU5HVEFCTEUKewogICAgSURTX0ZPTlRfU0VMX0RMR19OQU1FICAgIkFrdGl2ZXJlciBza3JpZnRpbm5zdGlsbGluZ2VyIgogICAgSURTX0ZPTlRfU0VMX0VSUk9SICAgICAgIkZlaWwgdmVkIHZhbGcgYXYgbnkgc2tyaWZ0LiIKfQoKU1RSSU5HVEFCTEUKewogICAgSURTX1dJTkVGSUxFICAgICAgICAgICAgIkZpbGJlaGFuZGxpbmciCiAgICBJRFNfRVJST1IgICAgICAgICAgICAgICAiRmVpbCIKICAgIElEU19ST09UX0ZTICAgICAgICAgICAgICJSb3RmaWxzeXN0ZW0iCiAgICBJRFNfVU5JWEZTICAgICAgICAgICAgICAiVW5peC1maWxzeXN0ZW0iCiAgICBJRFNfREVTS1RPUCAgICAgICAgICAgICAiU2tyaXZlYm9yZCIKICAgIElEU19TSEVMTCAgICAgICAgICAgICAgICJTa2FsbCIKICAgIElEU19USVRMRUZNVCAgICAgICAgICAgICIlcyAtICVzIgogICAgSURTX05PX0lNUEwgICAgICAgICAgICAgIklra2UgaW1wbGVtZW50ZXJ0IGVubuUiCiAgICBJRFNfV0lORSAgICAgICAgICAgICAgICAiV0lORSIKICAgIElEU19XSU5FX0ZJTEUgICAgICAgICAgICJGaWxiZWhhbmRsaW5nIgp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfQ09MX05BTUUgICAgICAgICAgICAiTmF2biIKICAgIElEU19DT0xfU0laRSAgICAgICAgICAgICJTdPhycmVsc2UiCiAgICBJRFNfQ09MX0NEQVRFICAgICAgICAgICAiQy1kYXRvIgogICAgSURTX0NPTF9BREFURSAgICAgICAgICAgIkEtZGF0byIKICAgIElEU19DT0xfTURBVEUgICAgICAgICAgICJNLWRhdG8iCiAgICBJRFNfQ09MX0lEWCAgICAgICAgICAgICAiSW5kZWtzL0lub2RlIgogICAgSURTX0NPTF9MSU5LUyAgICAgICAgICAgIktvYmxpbmdlciIKICAgIElEU19DT0xfQVRUUiAgICAgICAgICAgICJBdHRyaWJ1dHRlciIKICAgIElEU19DT0xfU0VDICAgICAgICAgICAgICJTaWtrZXJoZXQiCgogICAgSURTX0ZSRUVfU1BBQ0VfRk1UICAgICAgIiVzIGF2ICVzIGxlZGlnIgp9CgpTVFJJTkdUQUJMRQp7CklEU19MSUNFTlNFX0NBUFRJT04sICAgICAgICAgICAgIkxJU0VOUyIKSURTX0xJQ0VOU0UsCiJEZXR0ZSBiaWJsaW90ZWtldCBlciBmcmkgcHJvZ3JhbXZhcmU7IGR1IGthbiByZWRpc3RyaWJ1ZXJlIGRldCBcCm9nL2VsbGVyIGVuZHJlIGRldCB1bmRlciB2aWxr5XJlbmUgaSCrR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2W7LCB1dGdpdHQgYXYgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZW50ZW4gXAp2ZXJzam9uIDIuMSBhdiBMaXNlbnNlbiwgZWxsZXIgKGh2aXMgZHUg+G5za2VyIGRldCkgZW4gbnllcmUgdmVyc2pvbi5cblwKRGV0dGUgYmlibGlvdGVrZXQgZGlzdHJpYnVlcmVzIGkgaOVwIG9tIGF0IGRldCBlciBueXR0aWcsIFwKbWVuIFVURU4gRU5IVkVSIEdBUkFOVEk7IGlra2UgZW5nYW5nIGRlbiB1dHRyeWt0ZSBnYXJhbnRpZW4gZm9yIFwKSEFOREVMU0RZS1RJR0hFVCBlbGxlciBFR05FVEhFVCBGT1IgRVQgU1BFU0lFTFQgRk9STcVMLiBTZSCrR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2W7IGZvciBmbGVyZSBkZXRhbGplci5cblwKRHUgc2thbCBoYSBtb3R0YXR0IGV0IGVrc2VtcGxhciBhdiCrR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2W7IHNhbW1lbiBtZWQgZGV0dGUgYmlibGlvdGVrZXQ7IGh2aXMgaWtrZSwgc2tyaXYgdGlsOiB0aGUgRnJlZSBTb2Z0d2FyZSBcCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EiCgpJRFNfV0FSUkFOVFlfQ0FQVElPTiwgIklOR0VOIEdBUkFOVEkiCklEU19XQVJSQU5UWSwKIkRldHRlIGJpYmxpb3Rla2V0IGRpc3RyaWJ1ZXJlcyBpIGjlcCBvbSBhdCBkZXQgZXIgbnl0dGlnLCBcCm1lbiBVVEVOIEVOSFZFUiBHQVJBTlRJOyBpa2tlIGVuZ2FuZyBlbiB1dHRyeWt0ZSBnYXJhbnRpZW4gZm9yIFwKSEFOREVMU0RZS1RJR0hFVCBlbGxlciBFR05FVEhFVCBGT1IgRVQgU1BFU0lFTFQgRk9STcVMLiBTZSCrR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2W7IGZvciBmbGVyZSBkZXRhbGplci4iCn0K