LyoKICogIERhbmlzaCByZXNvdXJjZXMgZm9yIFRhc2sgTWFuYWdlcgogKgogKiAgQ29weXJpZ2h0IDIwMDggSmVucyBBbGJyZXRzZW4gPGplbnNAYWxicmV0c2VuLmRrPgogKgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAicmVzb3VyY2UuaCIKCkxBTkdVQUdFIExBTkdfREFOSVNILCBTVUJMQU5HX0RFRkFVTFQKCi8qCiBNZW51CiovCgpJRFJfVEFTS01BTkFHRVIgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZGaWwiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImTnkgb3BnYXZlIChL+HIuLi4pIiwgICAgICAgICBJRF9GSUxFX05FVwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQWZzbHV0IG9wZ2F2ZWJlaGFuZGxlcmVuIiwgICBJRF9GSUxFX0VYSVQKICAgIEVORAogICAgUE9QVVAgIiZJbmRzdGlsbGluZ2VyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkFsdGlkIPh2ZXJzdCIsICAgICAgICAgICAgICAgSURfT1BUSU9OU19BTFdBWVNPTlRPUAogICAgICAgICwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImTWluaW3pciB2ZWQgYnJ1ZyIsICAgICAgICAgICBJRF9PUFRJT05TX01JTklNSVpFT05VU0UKICAgICAgICAsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiUyZranVsIG7lciBtaW5pbWVydCIsICAgICAgICAgSURfT1BUSU9OU19ISURFV0hFTk1JTklNSVpFRAogICAgICAgICwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICJWaSZzIDE2LWJpdHMgam9iIiwgICAgICAgICAgICBJRF9PUFRJT05TX1NIT1cxNkJJVFRBU0tTCiAgICAgICAgLCBDSEVDS0VECiAgICBFTkQKICAgIFBPUFVQICImVmlzIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiT3BkYXRlJnIgbnUiLCAgICAgICAgICAgICAgICAgSURfVklFV19SRUZSRVNICiAgICAgICAgUE9QVVAgIiZPcGRhdGVyaW5nc2ZyZWt2ZW5zIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImSPhqIiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfSElHSAogICAgICAgICAgICBNRU5VSVRFTSAiJk5vcm1hbCIsICAgICAgICAgICAgICAgICBJRF9WSUVXX1VQREFURVNQRUVEX05PUk1BTAogICAgICAgICAgICAsIENIRUNLRUQKICAgICAgICAgICAgTUVOVUlURU0gIiZMYXYiLCAgICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9MT1cKICAgICAgICAgICAgTUVOVUlURU0gIiZQYXVzZSIsICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9QQVVTRUQKCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlMmdG9yZSBpa29uZXIiLCAgICAgICAgICAgICAgIElEX1ZJRVdfTEFSR0UKICAgICAgICBNRU5VSVRFTSAiUyZt5SBpa29uZXIiLCAgICAgICAgICAgICAgICAgSURfVklFV19TTUFMTAogICAgICAgIE1FTlVJVEVNICImRGV0YWxqZXIiLCAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RFVEFJTFMsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJlbmbGcga29sb25uZXIuLi4iLCAgICAgICAgICAgSURfVklFV19TRUxFQ1RDT0xVTU5TCiAgICAgICAgUE9QVVAgIiZQcm9jZXNzb3JoaXN0b3JpayIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiRW4gZ3JhZiwgYWxsZSBwciZvY2Vzc29yZXIiLElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSEFMTAoKICAgICAgICAgICAgTUVOVUlURU0gIkVuIGdyYWYgJnBlciBwcm9jZXNzb3IiLCAgSURfVklFV19DUFVISVNUT1JZX09ORUdSQVBIUEVSQ1BVCiAgICAgICAgICAgICwgQ0hFQ0tFRAogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNICJWaSZzIGtlcm5ldGlkZXIiLCAgICAgICAgICAgICBJRF9WSUVXX1NIT1dLRVJORUxUSU1FUwogICAgRU5ECiAgICBQT1BVUCAiVmluJmR1ZXIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJPcHN0aWwgJnZhbmRyZXQiLCAgICAgICAgICAgICBJRF9XSU5ET1dTX1RJTEVIT1JJWk9OVEFMTFkKICAgICAgICBNRU5VSVRFTSAiT3BzdGlsICZsb2RyZXQiLCAgICAgICAgICAgICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWQogICAgICAgIE1FTlVJVEVNICImTWluaW3pciIsICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01JTklNSVpFCiAgICAgICAgTUVOVUlURU0gIk1hJmtzaW3pciIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUFYSU1JWkUKICAgICAgICBNRU5VSVRFTSAiJktvcnRzdGFrIiwgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gIiZWaXMg+HZlcnN0IiwgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQlJJTkdUT0ZST05UCiAgICBFTkQKICAgIFBPUFVQICImSGrmbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJFbW5lciBpICZoauZscCBmb3IgT3BnYXZlYmVoYW5kbGVyIiwgSURfSEVMUF9UT1BJQ1MKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk9tIE9wZ2F2ZWJlaGFuZGxlciIsICAgICAgICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1dJTkRPV1NNRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIE1FTlVJVEVNICJPcHN0aWwgJnZhbmRyZXQiLCAgICAgICAgICAgICAgICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZCiAgICBNRU5VSVRFTSAiT3BzdGlsICZsb2RyZXQiLCAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkKICAgIE1FTlVJVEVNICImTWluaW3pciIsICAgICAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NSU5JTUlaRQogICAgTUVOVUlURU0gIk1hJmtzaW3pciIsICAgICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICBNRU5VSVRFTSAiJktvcnRzdGFrIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQ0FTQ0FERQogICAgTUVOVUlURU0gIlYmaXMg+HZlcnN0IiwgICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX0JSSU5HVE9GUk9OVApFTkQKCklEUl9BUFBMSUNBVElPTl9QQUdFX0NPTlRFWFQxIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZOeSBvcGdhdmUgKEv4ci4uLikiLCAgICAgICAgIElEX0ZJTEVfTkVXCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTdG9yZSBpa29uZXIiLCAgICAgICAgICAgICAgIElEX1ZJRVdfTEFSR0UKICAgICAgICBNRU5VSVRFTSAiUyZt5SBpa29uZXIiLCAgICAgICAgICAgICAgICAgSURfVklFV19TTUFMTAogICAgICAgIE1FTlVJVEVNICImRGV0YWxqZXIiLCAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RFVEFJTFMsIENIRUNLRUQKICAgIEVORApFTkQKCklEUl9BUFBMSUNBVElPTl9QQUdFX0NPTlRFWFQyIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlMma2lmdCB0aWwiLCAgICAgICAgICAgICAgICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfU1dJVENIVE8KICAgICAgICBNRU5VSVRFTSAiVmlzICb4dmVyc3QiLCAgICAgICAgICAgICAgICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiT3BzdGlsICZ2YW5kcmV0IiwgICAgICAgICAgICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZCiAgICAgICAgTUVOVUlURU0gIk9wc3RpbGwgJmxvZHJldCIsICAgICAgICAgICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkKICAgICAgICBNRU5VSVRFTSAiJk1pbmlt6XIiLCAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NSU5JTUlaRQogICAgICAgIE1FTlVJVEVNICJNYSZrc2lt6XIiLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICAgICAgTUVOVUlURU0gIiZLb3J0c3RhayIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBZnNsdXQgb3BnYXYmZSIsICAgICAgICAgICAgICBJRF9BUFBMSUNBVElPTl9QQUdFX0VORFRBU0sKICAgICAgICBNRU5VSVRFTSAiJkflIHRpbCBwcm9jZXNzIiwgICAgICAgICAgICAgSURfQVBQTElDQVRJT05fUEFHRV9HT1RPUFJPQ0VTUwogICAgRU5ECkVORAoKSURSX1RSQVlfUE9QVVAgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIkRVTU1ZIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiR2Vub3AmcmV0IiwgICAgICAgICAgICAgICAgICAgSURfUkVTVE9SRQogICAgICAgIE1FTlVJVEVNICJBZnNsdSZ0IiwgICAgICAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkFsdGlkIPh2ZXJzdCIsICAgICAgICAgICAgICAgSURfT1BUSU9OU19BTFdBWVNPTlRPUAogICAgRU5ECkVORAoKSURSX1BST0NFU1NfUEFHRV9DT05URVhUIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIkFmc2x1dCBwcm9jJmVzcyIsICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTUwogICAgICAgIE1FTlVJVEVNICJBZnNsdSZ0IHByb2Nlc3N0cuYiLCAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1NUUkVFCgogICAgICAgIE1FTlVJVEVNICImRmVqbHP4ZyIsICAgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX0RFQlVHCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIkFuZ2kgJnByaW9yaXRldCIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJlNhbXRpZCIsICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX1JFQUxUSU1FCgogICAgICAgICAgICBNRU5VSVRFTSAiJkj4aiIsICAgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0hJR0gKCiAgICAgICAgICAgIE1FTlVJVEVNICJPdmVyIG5vcm0mYWwiLCAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQUJPVkVOT1JNQUwKCiAgICAgICAgICAgIE1FTlVJVEVNICImTm9ybWFsIiwgICAgICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfTk9STUFMCgogICAgICAgICAgICBNRU5VSVRFTSAiJlVuZGVyIG5vcm1hbCIsICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0JFTE9XTk9STUFMCgogICAgICAgICAgICBNRU5VSVRFTSAiJkxhdiIsICAgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0xPVwoKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSAiJkFuZ2l2IHNs5md0c2thYi4uLiIsICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRBRkZJTklUWQoJTUVOVUlURU0gIiZSZWRpZ2VyIGZlamxz+GduaW5nc2thbmFsZXIuLi4iLCBJRF9QUk9DRVNTX1BBR0VfREVCVUdDSEFOTkVMUwogICAgRU5ECkVORAoKLyoKIERpYWxvZwoqLwoKSUREX1RBU0tNR1JfRElBTE9HIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjY0LCAyNDYKU1RZTEUgRFNfQ0VOVEVSIHwgV1NfTUlOSU1JWkVCT1ggfCBXU19NQVhJTUlaRUJPWCB8IFdTX1BPUFVQIHwKICAgIFdTX0NMSVBTSUJMSU5HUyB8IFdTX0NMSVBDSElMRFJFTiB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwKICAgIFdTX1RISUNLRlJBTUUKQ0FQVElPTiAiT3BnYXZlYmVoYW5kbGVyIgpNRU5VIElEUl9UQVNLTUFOQUdFUgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIlRhYjEiLElEQ19UQUIsIlN5c1RhYkNvbnRyb2wzMiIsV1NfVEFCU1RPUCwzLDMsMjU3LDIyOApFTkQKCklERF9BUFBMSUNBVElPTl9QQUdFIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ3LCAyMTAKU1RZTEUgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfQ0xJUENISUxEUkVOCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiTGlzdDIiLElEQ19BUFBMSVNULCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0hPV1NFTEFMV0FZUyB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsNyw3LDIzMywxNzcKICAgIFBVU0hCVVRUT04gICAgICAiJk55IG9wZ2F2ZS4uLiIsSURDX05FV1RBU0ssMTg3LDE4OSw1MywxNAogICAgUFVTSEJVVFRPTiAgICAgICImU2tpZnQgdGlsIixJRENfU1dJVENIVE8sMTMxLDE4OSw1MywxNCxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICJBZnNsdXQgb3BnYXYmZSIsSURDX0VORFRBU0ssNzUsMTg5LDUzLDE0LFdTX0RJU0FCTEVECkVORAoKSUREX1BST0NFU1NfUEFHRSBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0NywgMjEwClNUWUxFIERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX0NMSVBDSElMRFJFTgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIkxpc3QyIixJRENfUFJPQ0VTU0xJU1QsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUyB8IExWU19PV05FUkRBVEEgfAogICAgICAgICAgICAgICAgICAgIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsNyw3LDIzMywxNzcKICAgIFBVU0hCVVRUT04gICAgICAiQWZzbHV0IHByb2MmZXNzIixJRENfRU5EUFJPQ0VTUywxNzEsMTg5LDY5LDE0CiAgICBDT05UUk9MICAgICAgICAgIlZpJnMgcHJvY2Vzc2VyIGZyYSBhbGxlIGJydWdlcmUiLElEQ19TSE9XQUxMUFJPQ0VTU0VTLAogICAgICAgICAgICAgICAgICAgICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywxOTEsMTExLDEwCkVORAoKLypJRERfUEVSRk9STUFOQ0VfUEFHRSBESUFMT0dFWCAwLCAwLCAyNDcsIDIxMCovCklERF9QRVJGT1JNQU5DRV9QQUdFIERJQUxPR0VYIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19DTElQQ0hJTERSRU4KRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJQcm9jZXNzb3JicnVnIixJRENfQ1BVX1VTQUdFX0ZSQU1FLDUsNSw2MCw1NCxXU19UQUJTVE9QLCBXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJIdWtvbW1lbHNlc2JydWciLElEQ19NRU1fVVNBR0VfRlJBTUUsNSw2Myw2MCw1NCxCU19MRUZUVEVYVCwgV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiVG90YWx0IixJRENfVE9UQUxTX0ZSQU1FLDUsMTIyLDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIlZpcnR1ZWwgaHVrb21tZWxzZSAoSykiLElEQ19DT01NSVRfQ0hBUkdFX0ZSQU1FLDUsMTY2LDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIkZ5c2lzayBodWtvbW1lbHNlIChLKSIsSURDX1BIWVNJQ0FMX01FTU9SWV9GUkFNRSwxMzEsMTIyLDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIktlcm5lIGh1a29tbWVsc2UgKEspIixJRENfS0VSTkVMX01FTU9SWV9GUkFNRSwxMzEsMTY2LDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBMVEVYVCAgICAgICAgICAgIkjlbmR0YWciLElEU19UT1RBTFNfSEFORExFX0NPVU5ULDEyLDEzMSwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIlRy5WRlIixJRFNfVE9UQUxTX1RIUkVBRF9DT1VOVCwxMiwxNDAsMjcsOAogICAgTFRFWFQgICAgICAgICAgICJQcm9jZXNzZXIiLElEU19UT1RBTFNfUFJPQ0VTU19DT1VOVCwxMiwxNDksMzQsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19UT1RBTFNfSEFORExFX0NPVU5ULDY1LDEzMSw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfVE9UQUxTX1RIUkVBRF9DT1VOVCw2NSwxNDAsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX1RPVEFMU19QUk9DRVNTX0NPVU5ULDY1LDE0OSw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIExURVhUICAgICAgICAgICAiVG90YWx0IixJRFNfQ09NTUlUX0NIQVJHRV9UT1RBTCwxMiwxNzUsMjcsOAogICAgTFRFWFQgICAgICAgICAgICJHcuZuc2UiLElEU19DT01NSVRfQ0hBUkdFX0xJTUlULDEyLDE4NCwyNSw4CiAgICBMVEVYVCAgICAgICAgICAgIlRvcCIsSURTX0NPTU1JVF9DSEFSR0VfUEVBSywxMiwxOTMsMzQsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19DT01NSVRfQ0hBUkdFX1RPVEFMLDY1LDE3NCw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfQ09NTUlUX0NIQVJHRV9MSU1JVCw2NSwxODQsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0NPTU1JVF9DSEFSR0VfUEVBSyw2NSwxOTMsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBMVEVYVCAgICAgICAgICAgIlRvdGFsdCIsSURTX1BIWVNJQ0FMX01FTU9SWV9UT1RBTCwxMzcsMTMxLDI3LDgKICAgIExURVhUICAgICAgICAgICAiVGlsZ+ZuZ2VsaWciLElEU19QSFlTSUNBTF9NRU1PUllfQVZBSUxBQkxFLDEzNywxNDAsMzUsOAogICAgTFRFWFQgICAgICAgICAgICJTeXN0ZW0iLElEU19QSFlTSUNBTF9NRU1PUllfU1lTVEVNX0NBQ0hFLDEzNywxNDksMzUsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19QSFlTSUNBTF9NRU1PUllfVE9UQUwsMTg1LDEzMSw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfUEhZU0lDQUxfTUVNT1JZX0FWQUlMQUJMRSwxODUsMTQwLDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19QSFlTSUNBTF9NRU1PUllfU1lTVEVNX0NBQ0hFLDE4NSwxNDksNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBMVEVYVCAgICAgICAgICAgIlRvdGFsdCIsSURTX0tFUk5FTF9NRU1PUllfVE9UQUwsMTM3LDE3NCwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIlBhZ2luZXJldCIsSURTX0tFUk5FTF9NRU1PUllfUEFHRUQsMTM3LDE4NCwzMCw4CiAgICBMVEVYVCAgICAgICAgICAgIklra2UgcGFnaW5lcmV0IixJRFNfS0VSTkVMX01FTU9SWV9OT05QQUdFRCwxMzcsMTkzLDQwLDgKICAgIEVESVRURVhUICAgICAgICBJRENfS0VSTkVMX01FTU9SWV9UT1RBTCwxODUsMTc0LDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19LRVJORUxfTUVNT1JZX1BBR0VELDE4NSwxODQsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0tFUk5FTF9NRU1PUllfTk9OUEFHRUQsMTg1LDE5Myw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEdST1VQQk9YICAgICAgICAiSGlzdG9yaWsgZm9yIHByb2Nlc3NvcmJydWciLElEQ19DUFVfVVNBR0VfSElTVE9SWV9GUkFNRSw3NCw1LDE2OCw1NCwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIkhpc3RvcmlrIGZvciBodWtvbW1lbHNlc2JydWciLElEQ19NRU1PUllfVVNBR0VfSElTVE9SWV9GUkFNRSw3NCw2MywxNjgsNTQsMCxXU19FWF9UUkFOU1BBUkVOVAogICAgUFVTSEJVVFRPTiAgICAgICJWaXNuaW5nIGFmIHByb2Nlc3NvcmJydWciLElEQ19DUFVfVVNBR0VfR1JBUEgsMTIsMTcsNDcsMzcsMCwKCQkgICAgV1NfRVhfQ0xJRU5URURHRQogICAgUFVTSEJVVFRPTiAgICAgICJWaXNuaW5nIGFmIGh1a29tbWVsc2VzYnJ1ZyIsSURDX01FTV9VU0FHRV9HUkFQSCwxMiw3NSw0NywzNywwLAogICAgICAgICAgICAgICAgICAgIFdTX0VYX0NMSUVOVEVER0UKICAgIFBVU0hCVVRUT04gICAgICAiSGlzdG9yaWsgZm9yIHByb2Nlc3NvcmJydWciLElEQ19DUFVfVVNBR0VfSElTVE9SWV9HUkFQSCw4MSwxNywKICAgICAgICAgICAgICAgICAgICAxNTMsMzcsMCxXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIkhpc3RvcmlrIGZvciBodWtvbW1lbHNlc2JydWciLElEQ19NRU1fVVNBR0VfSElTVE9SWV9HUkFQSCw4MSw3NSwKICAgICAgICAgICAgICAgICAgICAxNTMsMzcsMCxXU19FWF9DTElFTlRFREdFCkVORAoKSUREX0RFQlVHX0NIQU5ORUxTX0RJQUxPRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0NywgMjEwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkZlamxz+GduaW5nc2thbmFsZXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiTGlzdDIiLElEQ19ERUJVR19DSEFOTkVMU19MSVNULCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwKCQkgICAgTFZTX1NPUlRBU0NFTkRJTkcsNyw3LDIzMywxNzcKICAgIFBVU0hCVVRUT04gICAgICAiTHVrIixJRE9LLDE3MSwxODksNjksMTQKRU5ECgpJRERfQUZGSU5JVFlfRElBTE9HIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjMxLCAxNTQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUHJvY2Vzc2zmZ3Rza2FiIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEyMCwxMzMsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQW5udWxsZXIiLElEQ0FOQ0VMLDE3NCwxMzMsNTAsMTQKICAgIExURVhUICAgICAgICAgICAiSW5kc3RpbGxpbmdlbiBmb3IgcHJvY2Vzc2zmZ3Rza2FiIGJlc3RlbW1lciBodmlsa2UgcHJvY2Vzc29yZXIgcHJvY2Vzc2VuIGthbiBr+HJlIHDlLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQyw1LDUsMjIwLDE2CiAgICAgICAgICAgICAgICAgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMCIsSURDX0NQVTAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwKICAgICAgICAgICAgICAgICAgICAxMSwyOCwzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAxIixJRENfQ1BVMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw0MSwzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyIixJRENfQ1BVMiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw1NCwzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAzIixJRENfQ1BVMywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw2NywzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciA0IixJRENfQ1BVNCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw4MCwzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciA1IixJRENfQ1BVNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw5MywzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciA2IixJRENfQ1BVNiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSwxMDYsMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgNyIsSURDX0NQVTcsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsMTE5LDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDgiLElEQ19DUFU4LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDYxLDI4LDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDkiLElEQ19DUFU5LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDYxLDQxLDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDEwIixJRENfQ1BVMTAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNjEsNTQsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMTEiLElEQ19DUFUxMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSw2Nyw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAxMiIsSURDX0NQVTEyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDgwLDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDEzIixJRENfQ1BVMTMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNjEsOTMsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMTQiLElEQ19DUFUxNCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSwxMDYsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMTUiLElEQ19DUFUxNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSwxMTksNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMTYiLElEQ19DUFUxNiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsMjgsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMTciLElEQ19DUFUxNywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsNDEsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMTgiLElEQ19DUFUxOCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsNTQsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMTkiLElEQ19DUFUxOSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsNjcsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMjAiLElEQ19DUFUyMCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsODAsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMjEiLElEQ19DUFUyMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsOTMsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMjIiLElEQ19DUFUyMiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsMTA2LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDIzIixJRENfQ1BVMjMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDExOSw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyNCIsSURDX0NQVTI0LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwyOCw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyNSIsSURDX0NQVTI1LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw0MSw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyNiIsSURDX0NQVTI2LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw1NCw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyNyIsSURDX0NQVTI3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw2Nyw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyOCIsSURDX0NQVTI4LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw4MCw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyOSIsSURDX0NQVTI5LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw5Myw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAzMCIsSURDX0NQVTMwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwxMDYsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMzEiLElEQ19DUFUzMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsMTE5LDQxLDEwCkVORAoKSUREX0NPTFVNTlNfRElBTE9HIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQwLCAxOTkKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVuZsZyBrb2xvbm5lciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSyw4NCwxNzgsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQW5udWxsZXIiLElEQ0FOQ0VMLDEzOCwxNzgsNTAsMTQKICAgIExURVhUICAgICAgICAgICAiVuZsZyBrb2xvbm5lcm5lIHNvbSB2aXNlcyBw5SBwcm9jZXNzaWRlbiBpIG9wZ2F2ZWJlaGFuZGxlcmVuLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQyw3LDcsMTgxLDE3CiAgICBDT05UUk9MICAgICAgICAgIiZQcm9ncmFtbmF2biIsSURDX0lNQUdFTkFNRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw3LDI4LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICImUElEIChQcm9jZXNzIElEKSIsSURDX1BJRCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsMzksMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQcm9jZXNzb3JicnVnIixJRENfQ1BVVVNBR0UsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsNTAsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIlByb2MmZXNzb3J0aWQiLElEQ19DUFVUSU1FLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDYxLDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICImSHVrb21tZWxzZXNicnVnIixJRENfTUVNT1JZVVNBR0UsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsNzIsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkh1a29tbWVsc2VzYnJ1Zy0mZGVsdGEiLElEQ19NRU1PUllVU0FHRURFTFRBLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw4MywxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiSPhqZXN0ZSBIdWtvbW1lbHNlc2JydSZnIixJRENfUEVBS01FTU9SWVVTQUdFLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw5NCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiU2lkZSZmZWpsIixJRENfUEFHRUZBVUxUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMDUsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkJyJnVnZXJvYmpla3RlciIsSURDX1VTRVJPQkpFQ1RTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDExNiwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiSW5kL1VkIGzmc2luZ2VyIixJRENfSU9SRUFEUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMjcsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkluZC9VZCBs5nN0ZSBieXRlcyIsSURDX0lPUkVBREJZVEVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywxMzgsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZTZXNzaW9uIElEIixJRENfU0VTU0lPTklELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDE0OSwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiQnJ1Z2VyJm5hdm4iLElEQ19VU0VSTkFNRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxNjAsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIlNpZGVmZWpsLWRlbHQmYSIsSURDX1BBR0VGQVVMVFNERUxUQSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDExNywyOCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiU3T4cnJlbHNlIHDlICZ2aXJ0dWVsdCBodWtvbW1lbHNlIixJRENfVklSVFVBTE1FTU9SWVNJWkUsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMTcsMzksMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIlBhJmdpbmVyZXQgc2FtbGluZyIsSURDX1BBR0VEUE9PTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTE3LDUwLDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICImSWtrZS1wYWdpbmVyZXQgc2FtbGluZyIsSURDX05PTlBBR0VEUE9PTCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDExNyw2MSwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiQmFzaXNwJnJpb3JpdGV0IixJRENfQkFTRVBSSU9SSVRZLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTE3LDcyLDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJBbnRhbCAmaOVuZHRhZyIsSURDX0hBTkRMRUNPVU5ULCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMTcsODMsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkFudGFsICZ0cuVkZSIsSURDX1RIUkVBRENPVU5ULCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMTcsOTQsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkdESS1vYmpla3RlciIsSURDX0dESU9CSkVDVFMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExNywxMDUsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkluZC9VZC1za3Jpdm5pbmdlciIsSURDX0lPV1JJVEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMTcsMTE2LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJJbmQvVWQgYnl0ZXMgc2tyZXZldCIsSURDX0lPV1JJVEVCWVRFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDExNywxMjcsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkluZC9VZCBhbmRldCIsSURDX0lPT1RIRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExNywxMzgsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkluZC9VZCBieXRlcyBhbmRldCIsSURDX0lPT1RIRVJCWVRFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDExNywxNDksMTAwLDEwCkVORAoKLyoKIFN0cmluZyBUYWJsZQoqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BUFBfVElUTEUgICAgICAgICAgICJPcGdhdmViZWhhbmRsZXIiCiAgICBJRENfVEFTS01HUiAgICAgICAgICAgICAiT3BnYXZlYmVoYW5kbGVyIgogICAgSURTX1JVTkRMR19DQVBUSU9OICAgICAgIkNyZWF0ZSBOZXcgVGFzayIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfRklMRV9ORVcgICAgICAgICAgICAgIkv4cmVyIGV0IG55dCBwcm9ncmFtIgogICAgSURfT1BUSU9OU19BTFdBWVNPTlRPUCAgIk9wZ2F2ZWJlaGFuZGxlcmVuIHZpc2VzIGZvcmFuIGFuZHJlIHByb2dyYW1tZXIgbWVkIG1pbmRyZSBkZW4gbWluaW1lculzIgogICAgSURfT1BUSU9OU19NSU5JTUlaRU9OVVNFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3BnYXZlYmVoYW5kbGVyIG1pbmltZXLpcyBu5XIgZHUgc2tpZnRlciB0aWwgZW4gYW5kZW4gcHJvY2VzcyIKICAgIElEX09QVElPTlNfSElERVdIRU5NSU5JTUlaRUQgIlNranVsIG9wZ2F2ZWJlaGFuZGxlcmVuIG7lciBkZW4gbWluaW1lculzIgogICAgSURfVklFV19SRUZSRVNIICAgICAgICAgIlR2aW5nIG9wZ2F2ZWJlaGFuZGxlcmVuIHRpbCBhdCBvcGRhdGVyZSBudSwgdWFuc2V0IG9wZGF0ZXJpbmdzZnJla3ZlbnMiCiAgICBJRF9WSUVXX0xBUkdFICAgICAgICAgICAiVmlzZXIgb3BnYXZlciBtZWQgc3RvcmUgaWtvbmVyIgogICAgSURfVklFV19TTUFMTCAgICAgICAgICAgIlZpc2VyIG9wZ2F2ZXIgbWVkIHNt5SBpa29uZXIiCiAgICBJRF9WSUVXX0RFVEFJTFMgICAgICAgICAiVmlzZXIgaW5mb3JtYXRpb24gb20gaHZlciBvcGdhdmUiCiAgICBJRF9WSUVXX1VQREFURVNQRUVEX0hJR0ggIk9wZGF0ZXJlciB2aXNuaW5nZW4gdG8gZ2FuZ2VyIHBlciBzZWt1bmQiCiAgICBJRF9WSUVXX1VQREFURVNQRUVEX05PUk1BTCAiT3BkYXRlcmVyIHZpc25pbmdlbiBodmVydCBhbmRldCBzZWt1bmQiCiAgICBJRF9WSUVXX1VQREFURVNQRUVEX0xPVyAiT3BkYXRlcmVyIHZpc25pbmdlbiBodmVydCBmamVyZGUgc2VrdW5kIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9WSUVXX1VQREFURVNQRUVEX1BBVVNFRCAiT3BkYXRlcmVyIGlra2UgYXV0b21hdGlzayIKICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0aWxsZXIgdmluZHVlcm5lIHDlIHNrcml2ZWJvcmRldCBvcCB2YW5kcmV0ICIKICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkgIlN0aWxsZXIgdmluZHVlcm5lIHDlIHNrcml2ZWJvcmRldCBvcCBsb2RyZXQgIgogICAgSURfV0lORE9XU19NSU5JTUlaRSAgICAgIk1pbmltZXLpciB2aW5kdWVybmUiCiAgICBJRF9XSU5ET1dTX01BWElNSVpFICAgICAiTWFrc2ltZXLpciB2aW5kdWVybmUiCiAgICBJRF9XSU5ET1dTX0NBU0NBREUgICAgICAiVmlzZXIgdmluZHVlcm5lIG92ZW5w5SBoaW5hbmRlbiBkaWFnb25hbHQgaGVub3ZlciBza3JpdmVib3JkZXQiCiAgICBJRF9XSU5ET1dTX0JSSU5HVE9GUk9OVCAiSGVudGVyIHZpbmR1ZXQgZnJlbSwgbWVuIHPmdHRlciBkZXQgaWtrZSBpIGZva3VzIgogICAgSURfSEVMUF9UT1BJQ1MgICAgICAgICAgIlZpc2VyIGhq5mxwZWVtbmVyIG9tIG9wZ2F2ZWJlaGFuZGxlcmVuIgogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIlZpc2VyIHByb2dyYW1pbmZvcm1hdGlvbiwgdmVyc2lvbm51bW1lciBvZyBvcGhhdnNyZXQiCiAgICBJRF9GSUxFX0VYSVQgICAgICAgICAgICAiQWZzbHV0dGVyIE9wZ2F2ZWJlaGFuZGxlcmVuIgogICAgSURfT1BUSU9OU19TSE9XMTZCSVRUQVNLUwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZpc2VyIDE2LWJpdHMgcHJvZ3JhbW1lciB1bmRlciAnbnR2ZG0uZXhlJyIKICAgIElEX1ZJRVdfU0VMRUNUQ09MVU1OUyAgICJW5mxnZXIgaHZpbGtlIGtvbG9ubmVyIHNvbSB2aXNlcyBw5SBwcm9jZXNzaWRlbiIKICAgIElEX1ZJRVdfU0hPV0tFUk5FTFRJTUVTICJWaXNlciBrZXJuZXRpZCBpIHlkZWxzZXNncmFmZXJuZSIKICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSEFMTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuIGVua2VsdCBoaXN0b3JpayB2aXNlciB0b3RhbCBwcm9jZXNzb3JicnVnIgogICAgSURfVklFV19DUFVISVNUT1JZX09ORUdSQVBIUEVSQ1BVICJIdmVyIHByb2Nlc3NvciBoYXIgc2luIGVnZW4gZ3JhZiIKICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfU1dJVENIVE8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIZW50ZXIgZW4gb3BnYXZlIHRpbCBmb3JncnVuZGVuLCBvZyBz5nR0ZXIgZGVuIGkgZm9rdXMiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VORFRBU0sgICAgICAgICAgICAgICJHaXZlciBkZW4gdmFsZ3RlIG9wZ2F2ZSBiZXNrZWQgb20gYXQgYWZzbHV0dGUiCiAgICBJRF9HT1RPUFJPQ0VTUyAgICAgICAgICAiU2tpZnRlciBmb2t1cyB0aWwgZGVuIHZhbGd0ZSBvcGdhdmVzIHByb2Nlc3MiCiAgICBJRF9SRVNUT1JFICAgICAgICAgICAgICAiR2Vub3ByZXR0ZXIgb3BnYXZlYmVoYW5kbGVyZW4gZnJhIGRlbnMgc2tqdWx0ZSBzdGF0dXMiCiAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTUyAiRmplcm5lciBwcm9jZXNzZW4gZnJhIHN5c3RlbWV0IgogICAgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1NUUkVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmplcm5lciBkZW5uZSBwcm9jZXNzIG9nIGFsbGUgZWZ0ZXJrb21tZXJlIGZyYSBzeXN0ZW1ldCIKICAgIElEX1BST0NFU1NfUEFHRV9ERUJVRyAgICJUaWxzbHV0dGVyIGZlamxz+GdlcmVuIHRpbCBkZW5uZSBwcm9jZXNzIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVEFGRklOSVRZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS29udHJvbGxlcmVyIGh2aWxrZSBwcm9jZXNzb3JlciBwcm9jZXNzZW4ga2FuIGv4cmUgcOUiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfUkVBTFRJTUUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJT5nR0ZXIgcHJvY2Vzc2VuIHRpbCBzYW10aWRzcHJpb3JpdGV0IgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0hJR0ggIlPmdHRlciBwcm9jZXNzZW4gdGlsIGj4aiBwcmlvcml0ZXQiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQUJPVkVOT1JNQUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJT5nR0ZXIgcHJvY2Vzc2VuIHRpbCBvdmVyIG5vcm1hbCBwcmlvcml0ZXQiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfTk9STUFMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU+Z0dGVyIHByb2Nlc3NlbiB0aWwgbm9ybWFsIHByaW9yaXRldCIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9CRUxPV05PUk1BTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlPmdHRlciBwcm9jZXNzZW4gdGlsIHVuZGVyIG5vcm1hbCBwcmlvcml0ZXQiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfTE9XICJT5nR0ZXIgcHJvY2Vzc2VuIHRpbCBsYXYgcHJpb3JpdGV0IgpFTkQK