LyoKICogY3J5cHQzMiBkbGwgcmVzb3VyY2VzCiAqCiAqIENvcHlyaWdodCAoQykgMjAwNiBIZW5uaW5nIEdlcmhhcmR0CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19BVVRIT1JJVFlfS0VZX0lEICJBdXRvcml05HRzc2NobPxzc2Vsa2VubnVuZyIKICAgIElEU19LRVlfQVRUUklCVVRFUyAiU2NobPxzc2VsYXR0cmlidXRlIgogICAgSURTX0tFWV9VU0FHRV9SRVNUUklDVElPTiAiU2NobPxzc2VsYmVudXR6dW5nc2VpbnNjaHLkbmt1bmciCiAgICBJRFNfU1VCSkVDVF9BTFRfTkFNRSAiQWx0ZXJuYXRpdmVyIE5hbWUgZGVzIEFudHJhZ3NzdGVsbGVycyIKICAgIElEU19JU1NVRVJfQUxUX05BTUUgIkFsdGVybmF0aXZlciBOYW1lIGRlcyBBdXNnZWJlcnMiCiAgICBJRFNfQkFTSUNfQ09OU1RSQUlOVFMgIkdydW5kc+R0emxpY2hlIEVpbnNjaHLkbmt1bmdlbiIKICAgIElEU19LRVlfVVNBR0UgIlNjaGz8c3NlbGJlbnV0enVuZyIKICAgIElEU19DRVJUX1BPTElDSUVTICJaZXJ0aWZpa2F0c3JpY2h0bGluaWVuIgogICAgSURTX1NVQkpFQ1RfS0VZX0lERU5USUZJRVIgIlNjaGz8c3NlbGtlbm51bmcgZGVzIEFudHJhZ3NzdGVsbGVycyIKICAgIElEU19DUkxfUkVBU09OX0NPREUgIkNSTCBHcnVuZGNvZGUiCiAgICBJRFNfQ1JMX0RJU1RfUE9JTlRTICJDUkwgVmVydGVpbHVuZ3NwdW5rdGUiCiAgICBJRFNfRU5IQU5DRURfS0VZX1VTQUdFICJFcndlaXRlcnRlIFNjaGz8c3NlbGJlbnV0enVuZyIKICAgIElEU19BVVRIT1JJVFlfSU5GT19BQ0NFU1MgIkF1dG9yaXTkdHNpbmZvcm1hdGlvbnN6dWdyaWZmIgogICAgSURTX0NFUlRfRVhURU5TSU9OUyAiWmVydGlmaWthdHNlcndlaXRlcnVuZyIKICAgIElEU19ORVhUX1VQREFURV9MT0NBVElPTiAiTmV4dCBVcGRhdGUgTG9jYXRpb24iCiAgICBJRFNfWUVTX09SX05PX1RSVVNUICJWZXJ0cmF1ZW4gb2RlciBuaWNodCB2ZXJ0cmF1ZW4iCiAgICBJRFNfRU1BSUxfQUREUkVTUyAiRS1NYWlsLUFkcmVzc2UiCiAgICBJRFNfVU5TVFJVQ1RVUkVEX05BTUUgIlVuc3RydWt0dXJpZXJ0ZXIgTmFtZSIKICAgIElEU19DT05URU5UX1RZUEUgIkluaGFsdHN0eXAiCiAgICBJRFNfTUVTU0FHRV9ESUdFU1QgIk5hY2hyaWNodGVu/GJlcnNpY2h0IgogICAgSURTX1NJR05JTkdfVElNRSAiU2lnbmllcnVuZ3N6ZWl0IgogICAgSURTX0NPVU5URVJfU0lHTiAiR2VnZW5zaWduYXR1ciIKICAgIElEU19DSEFMTEVOR0VfUEFTU1dPUkQgIkNoYWxsZW5nZSBQYXNzd29yZCIKICAgIElEU19VTlNUUlVDVFVSRURfQUREUkVTUyAiVW5zdHJ1a3R1cmllcnRlIEFkcmVzc2UiCiAgICBJRFNfU01JTUVfQ0FQQUJJTElUSUVTICJTTUlNRSBN9mdsaWNoa2VpdGVuIgogICAgSURTX1BSRUZFUl9TSUdORURfREFUQSAiU2lnbmllcnRlIERhdGVuIGJldm9yenVnZW4iCiAgICBJRFNfQ1BTICJDUFMiCiAgICBJRFNfVVNFUl9OT1RJQ0UgIkJlbnV0emVyYmVuYWNocmljaHR1bmciCiAgICBJRFNfT0NTUCAiT25saW5lIFplcnRpZmlrYXRpb25zc3RhdHVzcHJvdG9rb2xsIgogICAgSURTX0NBX0lTU1VFUiAiQXVzZ2ViZXIgZGVzIFplcnRpZmlrYXRpb25zYXV0b3JpdOR0IgogICAgSURTX0NFUlRfVEVNUExBVEVfTkFNRSAiWmVydGlma2F0aW9uc3ZvcmxhZ2VubmFtZSIKICAgIElEU19DRVJUX1RZUEUgIlplcnRpZmlrYXRpb25zdHlwIgogICAgSURTX0NFUlRfTUFOSUZPTEQgIlplcnRpZmlrYXRpb25zdmVydmllbGbkbHRpZ3VuZyIKICAgIElEU19ORVRTQ0FQRV9DRVJUX1RZUEUgIk5ldHNjYXBlIFplcnRpZmlrYXRpb25zdHlwIgogICAgSURTX05FVFNDQVBFX0JBU0VfVVJMICJOZXRzY2FwZSBCYXNpcy1VUkwiCiAgICBJRFNfTkVUU0NBUEVfUkVWT0NBVElPTl9VUkwgIk5ldHNjYXBlIFNwZXJydW5ncy1VUkwiCiAgICBJRFNfTkVUU0NBUEVfQ0FfUkVWT0NBVElPTl9VUkwgIk5ldHNjYXBlIENBIFNwZXJydW5ncy1VUkwiCiAgICBJRFNfTkVUU0NBUEVfQ0VSVF9SRU5FV0FMX1VSTCAiTmV0c2NhcGUgWmVydGlmaWthdGlvbnNlcm5lcnVuZy1VUkwiCiAgICBJRFNfTkVUU0NBUEVfQ0FfUE9MSUNZX1VSTCAiTmV0c2NhcGUgQ0EgUmljaHRsaW5pZW4tVVJMIgogICAgSURTX05FVFNDQVBFX1NTTF9TRVJWRVJfTkFNRSAiTmV0c2NhcGUgU1NMIFNlcnZlcm5hbWUiCiAgICBJRFNfTkVUU0NBUEVfQ09NTUVOVCAiTmV0c2NhcGUgS29tbWVudGFyIgogICAgSURTX1NQQ19TUF9BR0VOQ1lfSU5GTyAiU3BjU3AgQWdlbnR1ci1JbmZvcm1hdGlvbiIKICAgIElEU19TUENfRklOQU5DSUFMX0NSSVRFUklBICJTcGMgRmluYW56aWVsbGUgS3JpdGVyaWVuIgogICAgSURTX1NQQ19NSU5JTUFMX0NSSVRFUklBICJTcGMgTWluaW1hbGUgS3JpdGVyaWVuIgogICAgSURTX0NPVU5UUlkgIkxhbmQvUmVnaW9uIgogICAgSURTX09SR0FOSVpBVElPTiAiT3JnYW5pc2F0aW9uIgogICAgSURTX09SR0FOSVpBVElPTkFMX1VOSVQgIk9yZ2FuaXNhdGlvbnNlaW5oZWl0IgogICAgSURTX0NPTU1PTl9OQU1FICJBbGxnZW1laW5lciBOYW1lIgogICAgSURTX0xPQ0FMSVRZICJPcnQiCiAgICBJRFNfU1RBVEVfT1JfUFJPVklOQ0UgIkJ1bmRlc2xhbmQgb2RlciBQcm92aW56IgogICAgSURTX1RJVExFICJUaXRlbCIKICAgIElEU19HSVZFTl9OQU1FICJWb3JuYW1lIgogICAgSURTX0lOSVRJQUxTICJJbml0aWFsZW4iCiAgICBJRFNfU1VSX05BTUUgIk5hY2huYW1lIgogICAgSURTX0RPTUFJTl9DT01QT05FTlQgIkRvbeRua29tcG9uZW50ZSIKICAgIElEU19TVFJFRVRfQUREUkVTUyAiU3RyYd9lIgogICAgSURTX1NFUklBTF9OVU1CRVIgIlNlcmllbm51bW1lciIKICAgIElEU19DQV9WRVJTSU9OICJDQSBWZXJzaW9uIgogICAgSURTX0NST1NTX0NBX1ZFUlNJT04gIktyZXV6IENBIFZlcnNpb24iCiAgICBJRFNfU0VSSUFMSVpFRF9TSUdfU0VSSUFMX05VTUJFUiAiU2VyaWFsaXNpZXJ0ZSBTaWduYXR1cnNlcmllbm51bW1lciIKICAgIElEU19QUklOQ0lQQUxfTkFNRSAiUHJpbnppcGFsbmFtZSIKICAgIElEU19XSU5ET1dTX1BST0RVQ1RfVVBEQVRFICJXaW5kb3dzIFByb2R1a3QgQWt0dWFsaXNpZXJ1bmciCiAgICBJRFNfRU5ST0xMTUVOVF9OQU1FX1ZBTFVFX1BBSVIgIldlcnRlcGFhciBm/HIgRWludHJhZ3VuZ3NuYW1lIgogICAgSURTX09TX1ZFUlNJT04gIkJldHJpZWJzc3lzdGVtdmVyc2lvbiIKICAgIElEU19FTlJPTExNRU5UX0NTUCAiRWludHJhZ3VuZ3MtQ1NQIgogICAgSURTX0NSTF9OVU1CRVIgIkNSTCBOdW1tZXIiCiAgICBJRFNfREVMVEFfQ1JMX0lORElDQVRPUiAiRGVsdGEgQ1JMIEluZGlrYXRvciIKICAgIElEU19JU1NVSU5HX0RJU1RfUE9JTlQgIkF1c2dlYmVyIGRlcyBWZXJ0ZWlsdW5nc3B1bmt0ZXMiCiAgICBJRFNfRlJFU0hFU1RfQ1JMICJBa3R1ZWxsZSBDUkwiCiAgICBJRFNfTkFNRV9DT05TVFJBSU5UUyAiTmFtZW5zZWluc2NocuRua3VuZ2VuIgogICAgSURTX1BPTElDWV9NQVBQSU5HUyAiUmljaHRsaW5pZW56dW9yZG51bmdlbiIKICAgIElEU19QT0xJQ1lfQ09OU1RSQUlOVFMgIlJpY2h0bGluaWVuZWluc2NocuRua3VuZ2VuIgogICAgSURTX0NST1NTX0NFUlRfRElTVF9QT0lOVFMgIlZlcnRlaWx1bmdzcHVua3RlIGb8ciBLcmV1enplcnRpZmlrYXRlIgogICAgSURTX0FQUExJQ0FUSU9OX1BPTElDSUVTICJBbndlbmR1bmdzcmljaHRsaW5pZW4iCiAgICBJRFNfQVBQTElDQVRJT05fUE9MSUNZX01BUFBJTkdTICJBbndlbmR1bmdzcmljaHRsaW5pZW56dW9yZG51bmdlbiIKICAgIElEU19BUFBMSUNBVElPTl9QT0xJQ1lfQ09OU1RSQUlOVFMgIkFud2V1bmdzdW5nc3JpY2h0bGluaWVuZWluc2NocuRua3VuZ2VuIgogICAgSURTX0NNQ19EQVRBICJDTUMgRGF0ZW4iCiAgICBJRFNfQ01DX1JFU1BPTlNFICJDTUMgQW50d29ydCIKICAgIElEU19VTlNJR05FRF9DTUNfUkVRVUVTVCAiVW5zaWduaWVydGUgQ01DIEFudHdvcnQiCiAgICBJRFNfQ01DX1NUQVRVU19JTkZPICJDTUMgU3RhdHVzaW5mb3JtYXRpb24iCiAgICBJRFNfQ01DX0VYVEVOU0lPTlMgIkNNQyBFcndlaXRlcnVuZ2VuIgogICAgSURTX0NNQ19BVFRSSUJVVEVTICJDTUMgQXR0cmlidXRlIgogICAgSURTX1BLQ1NfN19EQVRBICJQS0NTIDcgRGF0ZW4iCiAgICBJRFNfUEtDU183X1NJR05FRCAiUEtDUyA3IHNpZ25pZXJ0IgogICAgSURTX1BLQ1NfN19FTlZFTE9QRUQgIlBLQ1MgNyB1bWj8bGx0IgogICAgSURTX1BLQ1NfN19TSUdORURfRU5WRUxPUEVEICJQS0NTIDcgc2lnbmllcnQgdW5kIHVtaPxsbHQiCiAgICBJRFNfUEtDU183X0RJR0VTVEVEICJQS0NTIDcgRGlnZXN0ZWQiCiAgICBJRFNfUEtDU183X0VOQ1JZUFRFRCAiUEtDUyA3IHZlcnNjaGz8c3NlbHQiCiAgICBJRFNfUFJFVklPVVNfQ0FfQ0VSVF9IQVNIICJWb3JoZXJpZ2VyIENBIFplcnRpZmlrYXRzaGFzaCIKICAgIElEU19DUkxfVklSVFVBTF9CQVNFICJWaXJ0dWVsbGUgQmFzaXMtQ1JMLU51bW1lciIKICAgIElEU19DUkxfTkVYVF9QVUJMSVNIICJO5GNoc3RlIENSTCBWZXL2ZmZlbnRsaWNodW5nIgogICAgSURTX0NBX0VYQ0hBTkdFICJDQSBWZXJzY2hs/HNzZWx1bmdzemVydGlmaWthdCIKICAgIElEU19LRVlfUkVDT1ZFUllfQUdFTlQgIkFnZW50IHp1ciBTY2hs/HNzZWx3aWVkZXJoZXJzdGVsbHVuZyIKICAgIElEU19DRVJUSUZJQ0FURV9URU1QTEFURSAiWmVydGlmaWthdHN2b3JsYWdlbmluZm9ybWF0aW9uIgogICAgSURTX0VOVEVSUFJJU0VfUk9PVF9PSUQgIlVudGVybmVobWVuc3N0YW1tLU9JRCIKICAgIElEU19SRE5fRFVNTVlfU0lHTkVSICJBdHRyYXBlbnVudGVyemVpY2huZXIiCiAgICBJRFNfQVJDSElWRURfS0VZX0FUVFIgIlZlcnNjaGz8c3NlbHRlciwgcHJpdmF0ZXIgU2NobPxzc2VsIgogICAgSURTX0NSTF9TRUxGX0NEUCAiVmVy9mZmZW50bGljaHRlIENSTCBTdGFuZG9ydGUiCiAgICBJRFNfUkVRVUlSRV9DRVJUX0NIQUlOX1BPTElDWSAiRXJ6d2luZ2UgWmVydGlmaWthdHNrZXR0ZW5yaWNodGxpbmllIgogICAgSURTX1RSQU5TQUNUSU9OX0lEICJUcmFuc2FrdGlvbnMtSUQiCiAgICBJRFNfU0VOREVSX05PTkNFICJTZW5kZXIgZWluc3R3ZWlsZW4iCiAgICBJRFNfUkVDSVBJRU5UX05PTkNFICJFbXBm5G5nZXIgZWluc3R3ZWlsZW4iCiAgICBJRFNfUkVHX0lORk8gIlJlZ2lzdHJpZXJ1bmdzaW5mb3JtYXRpb25lbiIKICAgIElEU19HRVRfQ0VSVElGSUNBVEUgIkJla29tbWUgWmVydGlmaWthdCIKICAgIElEU19HRVRfQ1JMICJCZWtvbW1lIENSTCIKICAgIElEU19SRVZPS0VfUkVRVUVTVCAiQW5mcmFnZWFibGVobmVuIgogICAgSURTX1FVRVJZX1BFTkRJTkcgIldhcnRlbmRlIEFiZnJhZ2UiCiAgICBJRFNfU09SVEVEX0NUTCAiWmVydGlmaWthdHN2ZXJ0cmF1ZW5zbGlzdGUiCiAgICBJRFNfQVJDSElWRURfS0VZX0NFUlRfSEFTSCAiQXJjaGl2aWVydGVyIFNjaGz8c3NlbHplcnRpZmlrYXRzaGFzaCIKICAgIElEU19QUklWQVRFX0tFWV9VU0FHRV9QRVJJT0QgIlByaXZhdGUgU2NobPxzc2VsYmVudXR6dW5nc2RhdWVyIgogICAgSURTX0NMSUVOVF9JTkZPUk1BVElPTiAiQ2xpZW50IEluZm9ybWF0aW9uIgogICAgSURTX1NFUlZFUl9BVVRIRU5USUNBVElPTiAiU2VydmVyIEF1dGhlbnRpZml6aWVydW5nIgogICAgSURTX0NMSUVOVF9BVVRIRU5USUNBVElPTiAiQ2xpZW50IEF1dGhlbnRpZml6aWVydW5nIgogICAgSURTX0NPREVfU0lHTklORyAiQ29kZXNpZ25hdHVyIgogICAgSURTX1NFQ1VSRV9FTUFJTCAiU2ljaGVyZSBFLU1haWwiCiAgICBJRFNfVElNRV9TVEFNUElORyAiWmVpdHN0ZW1wZWwiCiAgICBJRFNfTUlDUk9TT0ZUX1RSVVNUX0xJU1RfU0lHTklORyAiTWljcm9zb2Z0IFZlcnRyYXVlbnNsaXN0ZW5zaWduYXR1ciIKICAgIElEU19NSUNST1NPRlRfVElNRV9TVEFNUElORyAiTWljcm9zb2Z0IFplaXRzdGVtcGVsIgogICAgSURTX0lQU0VDX0VORF9TWVNURU0gIklQIFNpY2hlcmhlaXRzZW5kc3lzdGVtIgogICAgSURTX0lQU0VDX1RVTk5FTCAiSVAgU2ljaGVyaGVpdHN0dW5uZWxhYnNjaGx1c3MiCiAgICBJRFNfSVBTRUNfVVNFUiAiSVAgU2ljaGVyaGVpdHNiZW51dHplciIKICAgIElEU19FRlMgIlZlcnNjaGz8c3NlbHRlcyBEYXRlaXN5c3RlbSIKICAgIElEU19XSFFMX0NSWVBUTyAiV2luZG93cyBIYXJkd2FyZSBUcmVpYmVyIFZlcmlmaXppZXJ1bmciCiAgICBJRFNfTlQ1X0NSWVBUTyAiV2luZG93cyBTeXN0ZW0gS29tcG9uZW50ZW4gVmVyaWZpemllcnVuZyIKICAgIElEU19PRU1fV0hRTF9DUllQVE8gIk9FTSBXaW5kb3dzIFN5c3RlbSBLb21wb25lbnRlbiBWZXJpZml6aWVydW5nIgogICAgSURTX0VNQkVEREVEX05UX0NSWVBUTyAiRW1iZWRkZWQgV2luZG93cyBTeXN0ZW0gS29tcG9uZW50ZW4gVmVyaWZpemllcnVuZyIKICAgIElEU19LRVlfUEFDS19MSUNFTlNFUyAiU2NobPxzc2VscGFrZXRsaXplbnplbiIKICAgIElEU19MSUNFTlNFX1NFUlZFUiAiTGl6ZW56c2VydmVyIFZlcmlmaXppZXJ1bmciCiAgICBJRFNfU01BUlRfQ0FSRF9MT0dPTiAiU21hcnRjYXJkIExvZ2luIgogICAgSURTX0RJR0lUQUxfUklHSFRTICJEaWdpdGFsZSBSZWNodGUiCiAgICBJRFNfUVVBTElGSUVEX1NVQk9SRElOQVRJT04gIlF1YWxpZml6aWVydGUgVW50ZXJvcmRudW5nIgogICAgSURTX0tFWV9SRUNPVkVSWSAiU2NobPxzc2Vsd2llZGVyaGVyc3RlbGx1bmciCiAgICBJRFNfRE9DVU1FTlRfU0lHTklORyAiRG9rdW1lbnRlbnNpZ25hdHVyIgogICAgSURTX0lQU0VDX0lLRV9JTlRFUk1FRElBVEUgImRhendpc2NoZW5saWVnZW5kZSBJUCBTaWNoZXJoZWl0cy1JS0UiCiAgICBJRFNfRklMRV9SRUNPVkVSWSAiRGF0ZWl3aWVkZXJoZXJzdGVsbHVuZyIKICAgIElEU19ST09UX0xJU1RfU0lHTkVSICJTdGFtbWxpc3RlbmdlYmVyIgogICAgSURTX0FOWV9BUFBMSUNBVElPTl9QT0xJQ0lFUyAiQWxsZSBBbndlbmR1bmdzcmljaHRsaW5pZW4iCiAgICBJRFNfRFNfRU1BSUxfUkVQTElDQVRJT04gIlZlcnplaWNobmlzZGllbnN0IGb8ciBFLU1haWwgUmVwbGlrYXRpb24iCiAgICBJRFNfRU5ST0xMTUVOVF9BR0VOVCAiQWdlbnQgZvxyIFplcnRpZmlrYXRpb25zYW5mb3JkZXJ1bmciCiAgICBJRFNfTElGRVRJTUVfU0lHTklORyAiTGViZW5zZGF1ZXJzaWduYXR1ciIKICAgIElEU19BTllfQ0VSVF9QT0xJQ1kgIkFsbGUgYXVzZ2VnZWJlbmVuIFJpY2h0bGluaWVuIgp9Cg==