LyoKICogY3J5cHR1aSBkbGwgCWR1dGNoIHJlc291cmNlcwogKgogKiBDb3B5cmlnaHQgMjAwOSBGcmFucyBLb29sCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJjcnlwdHVpcmVzLmgiCgpMQU5HVUFHRSBMQU5HX0RVVENILCBTVUJMQU5HX05FVVRSQUwKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19DRVJUSUZJQ0FURSAiQ2VydGlmaWNhYXQiCiAgICBJRFNfQ0VSVElGSUNBVEVJTkZPUk1BVElPTiAiQ2VydGlmaWNhYXQgaW5mb3JtYXRpZSIKICAgIElEU19DRVJUX0lORk9fQkFEX1NJRyAiRGl0IGNlcnRpZmljYWF0IGhlZWZ0IGVlbiBmb3V0aWV2ZSBoYW5kdGVrZW5pbmcuIEhldCBjZXJ0aWZpY2FhdCBrYW4gZ2V3aWp6aWdkIG9mIGNvcnJ1cHQgemlqbi4iCiAgICBJRFNfQ0VSVF9JTkZPX1VOVFJVU1RFRF9DQSAiRGl0IGJhc2lzIGNlcnRpZmljYWF0IHdvcmR0IG5pZXQgdmVydHJvdXdkLiBPbSBoZXQgdGUgdmVydHJvdXdlbiwgdm9lZyBoZXQgdG9lIGFhbiB1dyBzeXN0ZWVtJ3MgdmVydHJvdXdkZSBiYXNpcyBjZXJ0aWZpY2F0ZW5vcHNsYWcuIgogICAgSURTX0NFUlRfSU5GT19VTlRSVVNURURfUk9PVCAiRGl0IGNlcnRpZmljYWF0IGtvbiBuaWV0IHdvcmRlbiBnZXRyYWNlZXJkIG5hYXIgZWVuIHZlcnRyb3V3ZCBiYXNpcyBjZXJ0aWZpY2FhdC4iCiAgICBJRFNfQ0VSVF9JTkZPX1BBUlRJQUxfQ0hBSU4gIkRlIHVpdGdldmVyIHZhbiBkaXQgY2VydGlmaWNhYXQga29uIG5pZXQgZ2V2b25kZW4gd29yZGVuLiIKICAgIElEU19DRVJUX0lORk9fQkFEX1BVUlBPU0VTICJEZSBkb2VsZWluZGVuIHZvb3IgZGl0IGNlcnRpZmljYWF0IGtvbmRlbiBuaWV0IGdldmVyaWZpZWVyZCB3b3JkZW4uIgogICAgSURTX0NFUlRfSU5GT19QVVJQT1NFUyAiRGl0IGNlcnRpZmljYWF0IGlzIGJlZG9lbGQgdm9vciBkZSB2b2xnZW5kZSBkb2VsZWluZGVuOiIKICAgIElEU19TVUJKRUNUX0hFQURJTkcgIlZlcnN0cmVrdCBhYW46ICIKICAgIElEU19JU1NVRVJfSEVBRElORyAiVWl0Z2VnZXZlbiBkb29yOiAiCiAgICBJRFNfVkFMSURfRlJPTSAiZ2VsZGlnIHZhbmFmICIKICAgIElEU19WQUxJRF9UTyAiIHRvdCAiCiAgICBJRFNfQ0VSVElGSUNBVEVfQkFEX1NJR05BVFVSRSAiRGl0IGNlcnRpZmljYWF0IGhlZWZ0IGVlbiBmb3V0aWV2ZSBoYW5kdGVrZW5pbmcuIgogICAgSURTX0NFUlRJRklDQVRFX0JBRF9USU1FICJEaXQgY2VydGlmaWNhYXQgaXMgdmVybG9wZW4gb2YgaXMgbm9nIG5pZXQgZ2VsZGlnLiIKICAgIElEU19DRVJUSUZJQ0FURV9CQURfVElNRU5FU1QgIkRlIGdlbGRpZ2hlaWRzcGVyaW9kZSB2YW4gZGl0IGNlcnRpZmljYWF0IGlzIGdyb3RlciBkYW4gZGllIHZhbiB6aWpuIHVpdGdldmVyLiIKICAgIElEU19DRVJUSUZJQ0FURV9SRVZPS0VEICJEaXQgY2VydGlmaWNhYXQgd2FzIHRlcnVnZ2Vyb2VwZW4gZG9vciBkZSB1aXRnZXZlci4iCiAgICBJRFNfQ0VSVElGSUNBVEVfVkFMSUQgIkRpdCBjZXJ0aWZpY2FhdCBpcyBPSy4iCiAgICBJRFNfRklFTEQgIlZlbGQiCiAgICBJRFNfVkFMVUUgIldhYXJkZSIKICAgIElEU19GSUVMRFNfQUxMICI8QWxsZT4iCiAgICBJRFNfRklFTERTX1YxICJBbGxlZW4gdmVyc2llIDEgdmVsZGVuIgogICAgSURTX0ZJRUxEU19FWFRFTlNJT05TICJBbGxlZW4gZXh0ZW5zaWVzIgogICAgSURTX0ZJRUxEU19DUklUSUNBTF9FWFRFTlNJT05TICJBbGxlZW4ga3JpdGlla2UgZXh0ZW5zaWVzIgogICAgSURTX0ZJRUxEU19QUk9QRVJUSUVTICJBbGxlZW4gZWlnZW5zY2hhcHBlbiIKICAgIElEU19GSUVMRF9WRVJTSU9OICJWZXJzaWUiCiAgICBJRFNfRklFTERfU0VSSUFMX05VTUJFUiAiU2VyaWVudW1tZXIiCiAgICBJRFNfRklFTERfSVNTVUVSICJVaXRnZXZlciIKICAgIElEU19GSUVMRF9WQUxJRF9GUk9NICJHZWxkaWcgdmFuYWYiCiAgICBJRFNfRklFTERfVkFMSURfVE8gIkdlbGRpZyB0b3QiCiAgICBJRFNfRklFTERfU1VCSkVDVCAiT25kZXJ3ZXJwIgogICAgSURTX0ZJRUxEX1BVQkxJQ19LRVkgIlB1YmxpZWtlIHNsZXV0ZWwiCiAgICBJRFNfRklFTERfUFVCTElDX0tFWV9GT1JNQVQgIiVzICglZCBiaXRzKSIKICAgIElEU19QUk9QX0hBU0ggIlNIQTEgaGFzaCIKICAgIElEU19QUk9QX0VOSEtFWV9VU0FHRSAiVWl0Z2VicmVpZCBzbGV1dGVsIGdlYnJ1aWsgKGVpZ2Vuc2NoYXApIgogICAgSURTX1BST1BfRlJJRU5ETFlfTkFNRSAiTmFhbSBhbGlhcyIKICAgIElEU19QUk9QX0RFU0NSSVBUSU9OICJCZXNjaHJpanZpbmciCiAgICBJRFNfQ0VSVElGSUNBVEVfUFJPUEVSVElFUyAiQ2VydGlmaWNhYXQgZWlnZW5zY2hhcHBlbiIKICAgIElEU19DRVJUSUZJQ0FURV9QVVJQT1NFX0VSUk9SICJHZWVmIGF1Yi4gZWVuIE9JRCBpbiBpbiBkZSB2b3JtIHZhbiAxLjIuMy40IgogICAgSURTX0NFUlRJRklDQVRFX1BVUlBPU0VfRVhJU1RTICJEZSBpbmdlZ2V2ZW4gT0lEIGJlc3RhYXQgcmVlZHMuIgogICAgSURTX1NFTEVDVF9TVE9SRV9USVRMRSAiU2VsZWN0ZWVyIGNlcnRpZmljYXRlbm9wc2xhZyIKICAgIElEU19TRUxFQ1RfU1RPUkUgIlNlbGVjdGVlciBhdWIuIGVlbiBjZXJ0aWZpY2F0ZW5vcHNsYWcuIgogICAgSURTX0lNUE9SVF9XSVpBUkQgIkNlcnRpZmljYWF0IGltcG9ydGVlcmh1bHAiCiAgICBJRFNfSU1QT1JUX1RZUEVfTUlTTUFUQ0ggIkhldCBiZXN0YW5kIGJldmF0IG9iamVjdGVuIGRpZSBuaWV0IHZvbGRvZW4gYWFuIGRlIG9wZ2VnZXZlbiBjcml0ZXJpYS4gU2VsZWN0ZWVyIGF1Yi4gZWVuIGFuZGVyIGJlc3RhbmQuIgogICAgSURTX0lNUE9SVF9GSUxFX1RJVExFICJCZXN0YW5kIG9tIHRlIGltcG9ydGVyZW4iCiAgICBJRFNfSU1QT1JUX0ZJTEVfU1VCVElUTEUgIlNwZWNpZmljZWVyIGhldCBiZXN0YW5kIGRhdCB1IHdpbHQgaW1wb3J0ZXJlbi4iCiAgICBJRFNfSU1QT1JUX1NUT1JFX1RJVExFICJDZXJ0aWZpY2F0ZW5vcHNsYWciCiAgICBJRFNfSU1QT1JUX1NUT1JFX1NVQlRJVExFICJDZXJ0aWZpY2F0ZW5vcHNsYWdlbiB6aWpuIHZlcnphbWVsaW5nZW4gdmFuIGNlcnRpZmljYXRlbiwgY2VydGlmaWNhYXQgdGVydWdyb2VwbGlqc3RlbiBlbiBjZXJ0aWZpY2FhdCB2ZXJ0cm91d2Vuc2xpanN0ZW4uIgogICAgSURTX0lNUE9SVF9GSUxURVJfQ0VSVCAiWC41MDkgQ2VydGlmaWNhYXQgKCouY2VyOyAqLmNydCkiCiAgICBJRFNfSU1QT1JUX0ZJTFRFUl9QRlggIlBlcnNvb25saWprZSBpbmZvcm1hdGllIHVpdHdpc3NlbGluZyAoKi5wZng7ICoucDEyKSIKICAgIElEU19JTVBPUlRfRklMVEVSX0NSTCAiQ2VydGlmaWNhYXQgdGVydWdyb2VwbGlqc3QgKCouY3JsKSIKICAgIElEU19JTVBPUlRfRklMVEVSX0NUTCAiQ2VydGlmaWNhYXQgdmVydHJvdXdlbnNsaWpzdCAoKi5zdGwpIgogICAgSURTX0lNUE9SVF9GSUxURVJfU0VSSUFMSVpFRF9TVE9SRSAiTWljcm9zb2Z0IHNlcmnrbGUgY2VydGlmaWNhdGVub3BzbGFnICgqLnNzdCkiCiAgICBJRFNfSU1QT1JUX0ZJTFRFUl9DTVMgIkNNUy9QS0NTICM3IGJlcmljaHRlbiAoKi5zcGM7ICoucDdiKSIKICAgIElEU19JTVBPUlRfRklMVEVSX0FMTCAiQWxsZSBiZXN0YW5kZW4gKCouKikiCiAgICBJRFNfSU1QT1JUX0VNUFRZX0ZJTEUgIlNlbGVjdGVlciBlZW4gYmVzdGFuZC4iCiAgICBJRFNfSU1QT1JUX0JBRF9GT1JNQVQgIkhldCBiZXN0YW5kc2Zvcm1hYXQgd29yZHQgbmlldCBoZXJrZW5kLiBTZWxlY3RlZXIgYXViLiBlZW4gYW5kZXIgYmVzdGFuZC4iCiAgICBJRFNfSU1QT1JUX09QRU5fRkFJTEVEICJPcGVuZW4gbWlzbHVrdCB2b29yICIKICAgIElEU19JTVBPUlRfREVTVF9ERVRFUk1JTkVEICJCZXBhYWxkIGRvb3IgaGV0IHByb2dyYW1tYSIKICAgIElEU19JTVBPUlRfU0VMRUNUX1NUT1JFICJTZWxlY3RlZXIgZWVuIG9wc2xhZyIKICAgIElEU19JTVBPUlRfU1RPUkVfU0VMRUNUSU9OICJHZXNlbGVjdGVlcmRlIGNlcnRpZmljYXRlbm9wc2xhZyIKICAgIElEU19JTVBPUlRfREVTVF9BVVRPTUFUSUMgIkF1dG9tYXRpc2NoIGJlcGFhbGQgZG9vciBoZXQgcHJvZ3JhbW1hIgogICAgSURTX0lNUE9SVF9GSUxFICJCZXN0YW5kIgogICAgSURTX0lNUE9SVF9DT05URU5UICJJbmhvdWQiCiAgICBJRFNfSU1QT1JUX0NPTlRFTlRfQ0VSVCAiQ2VydGlmaWNhYXQiCiAgICBJRFNfSU1QT1JUX0NPTlRFTlRfQ1JMICJDZXJ0aWZpY2FhdCB0ZXJ1Z3JvZXBsaWpzdCIKICAgIElEU19JTVBPUlRfQ09OVEVOVF9DVEwgIkNlcnRpZmljYWF0IHZlcnRyb3V3ZW5zbGlqc3QiCiAgICBJRFNfSU1QT1JUX0NPTlRFTlRfQ01TICJDTVMvUEtDUyAjNyBiZXJpY2h0IgogICAgSURTX0lNUE9SVF9DT05URU5UX1BGWCAiUGVyc29vbmxpamtlIGluZm9ybWF0aWUgdWl0d2lzc2VsaW5nIgogICAgSURTX0lNUE9SVF9DT05URU5UX1NUT1JFICJDZXJ0aWZpY2F0ZW5vcHNsYWciCiAgICBJRFNfSU1QT1JUX1NVQ0NFRURFRCAiSGV0IGltcG9ydGVyZW4gd2FzIHN1Y2Nlc3ZvbC4iCiAgICBJRFNfSU1QT1JUX0ZBSUxFRCAiSGV0IGltcG9ydGVyZW4gaXMgbWlzbHVrdC4iCiAgICBJRFNfV0laQVJEX1RJVExFX0ZPTlQgIkFyaWFsIgogICAgSURTX1BVUlBPU0VfQUxMICI8QWxsZT4iCiAgICBJRFNfUFVSUE9TRV9BRFZBTkNFRCAiPEdlYWR2YW5jZWVyZGUgZG9lbGVpbmRlbj4iCiAgICBJRFNfU1VCSkVDVF9DT0xVTU4gIlZlcnN0cmVrdCBhYW4iCiAgICBJRFNfSVNTVUVSX0NPTFVNTiAiVWl0Z2VnZXZlbiBkb29yIgogICAgSURTX0VYUElSQVRJT05fQ09MVU1OICJWZXJsb29wIGRhdHVtIgogICAgSURTX0ZSSUVORExZX05BTUVfQ09MVU1OICJOYWFtIGFsaWFzIgogICAgSURTX0FMTE9XRURfUFVSUE9TRV9BTEwgIjxBbGxlPiIKICAgIElEU19BTExPV0VEX1BVUlBPU0VfTk9ORSAiPEdlZW4+IgogICAgSURTX1dBUk5fUkVNT1ZFX01ZICJVIGt1bnQgbmlldCBsYW5nZXIgYmVyaWNodGVuIG9udGNpamZlcmVuIG9mIG9uZGVydGVrZW5lbiBtZXQgZGl0IGNlcnRpZmljYWF0LlxuV2VldCB1IHpla2VyIGRhdCB1IGRpdCBjZXJ0aWZpY2FhdCB3aWx0IHZlcndpamRlcmVuPyIKICAgIElEU19XQVJOX1JFTU9WRV9QTFVSQUxfTVkgIlUga3VudCBuaWV0IGxhbmdlciBiZXJpY2h0ZW4gb250Y2lqZmVyZW4gb2Ygb25kZXJ0ZWtlbmVuIG1ldCBkZXplIGNlcnRpZmljYXRlbi5cbldlZXQgdSB6ZWtlciBkYXQgdSBkZXplIGNlcnRpZmljYXRlbiB3aWx0IHZlcndpamRlcmVuPyIKICAgIElEU19XQVJOX1JFTU9WRV9BRERSRVNTQk9PSyAiVSBrdW50IG5pZXQgbGFuZ2VyIGJlcmljaHRlbiBjb2RlcmVuIG9mIHZlcmlmaetyZW4gbWV0IGRpdCBjZXJ0aWZpY2FhdC5cbldlZXQgdSB6ZWtlciBkYXQgdSBkaXQgY2VydGlmaWNhYXQgd2lsdCB2ZXJ3aWpkZXJlbj8iCiAgICBJRFNfV0FSTl9SRU1PVkVfUExVUkFMX0FERFJFU1NCT09LICJVIGt1bnQgbmlldCBsYW5nZXIgYmVyaWNodGVuIGNvZGVyZW4gb2YgdmVyaWZp63JlbiBtZXQgZGV6ZSBjZXJ0aWZpY2F0ZW4uXG5XZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBjZXJ0aWZpY2F0ZW4gd2lsdCB2ZXJ3aWpkZXJlbj8iCiAgICBJRFNfV0FSTl9SRU1PVkVfQ0EgIkNlcnRpZmljYXRlbiB1aXRnZWdldmVuIGRvb3IgZGV6ZSBjZXJ0aWZpY2F0ZW4gYXV0b3JpdGVpdCB6dWxsZW4gbmlldCBtZWVyIHZlcnRyb3V3ZCB3b3JkZW4uXG5XZWV0IHUgemVrZXIgZGF0IHUgZGl0IGNlcnRpZmljYWF0IHdpbHQgdmVyd2lqZGVyZW4/IgogICAgSURTX1dBUk5fUkVNT1ZFX1BMVVJBTF9DQSAiQ2VydGlmaWNhdGVuIHVpdGdlZ2V2ZW4gZG9vciBkZXplIGNlcnRpZmljYXRlbiBhdXRvcml0ZWl0ZW4genVsbGVuIG5pZXQgbWVlciB2ZXJ0cm91d2Qgd29yZGVuLlxuV2VldCB1IHpla2VyIGRhdCB1IGRlemUgY2VydGlmaWNhdGVuIHdpbHQgdmVyd2lqZGVyZW4/IgogICAgSURTX1dBUk5fUkVNT1ZFX1JPT1QgIkNlcnRpZmljYXRlbiB1aXRnZWdldmVuIGRvb3IgZGV6ZSBiYXNpYyBjZXJ0aWZpY2F0ZW4gYXV0b3JpdGVpdCwgYWxzbWVkZSBlbmlnZSBjZXJ0aWZpY2F0aWUgYXV0b3JpdGVpdCBkaWUgaGlqIHZlcnN0cmVrdCwgenVsbGVuIG5pZXQgbWVlciB2ZXJ0cm91d2Qgd29yZGVuLlxuV2VldCB1IHpla2VyIGRhdCB1IGRpdCB2ZXJ0cm91d2RlIGJhc2ljIGNlcnRpZmljYWF0IHdpbHQgdmVyd2lqZGVyZW4/IgogICAgSURTX1dBUk5fUkVNT1ZFX1BMVVJBTF9ST09UICJDZXJ0aWZpY2F0ZW4gdWl0Z2VnZXZlbiBkb29yIGRlemUgYmFzaWMgY2VydGlmaWNhdGVuIGF1dG9yaXRlaXRlbiwgYWxzbWVkZSBlbmlnZSBjZXJ0aWZpY2F0aWUgYXV0b3JpdGVpdCBkaWUgemlqIHZlcnN0cmVra2VuLCB6dWxsZW4gbmlldCBtZWVyIHZlcnRyb3V3ZCB3b3JkZW4uXG5XZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSB2ZXJ0cm91d2RlIGJhc2ljIGNlcnRpZmljYXRlbiB3aWx0IHZlcndpamRlcmVuPyIKICAgIElEU19XQVJOX1JFTU9WRV9UUlVTVEVEUFVCTElTSEVSICJTb2Z0d2FyZSBvbmRlcnRla2VuZCBkb29yIGRlemUgdWl0Z2V2ZXIgemFsIG5pZXQgbWVlciB2ZXJ0cm91d2Qgd29yZGVuLlxuV2VldCB1IHpla2VyIGRhdCB1IGRpdCBjZXJ0aWZpY2FhdCB3aWx0IHZlcndpamRlcmVuPyIKICAgIElEU19XQVJOX1JFTU9WRV9QTFVSQUxfVFJVU1RFRFBVQkxJU0hFUiAiU29mdHdhcmUgb25kZXJ0ZWtlbmQgZG9vciBkZXplIHVpdGdldmVycyB6YWwgbmlldCBtZWVyIHZlcnRyb3V3ZCB3b3JkZW4uXG5XZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBjZXJ0aWZpY2F0ZW4gd2lsdCB2ZXJ3aWpkZXJlbj8iCiAgICBJRFNfV0FSTl9SRU1PVkVfREVGQVVMVCAiV2VldCB1IHpla2VyIGRhdCB1IGRpdCBjZXJ0aWZpY2FhdCB3aWx0IHZlcndpamRlcmVuPyIKICAgIElEU19XQVJOX1JFTU9WRV9QTFVSQUxfREVGQVVMVCAiV2VldCB1IHpla2VyIGRhdCB1IGRlemUgY2VydGlmaWNhdGVuIHdpbHQgdmVyd2lqZGVyZW4/IgogICAgSURTX0NFUlRfTUdSICJDZXJ0aWZpY2F0ZW4iCiAgICBJRFNfUFVSUE9TRV9TRVJWRVJfQVVUSCAiQmV3aWpzdCBkZSBpZGVudGl0ZWl0IHZhbiBlZW4gcmVtb3RlIGNvbXB1dGVyIgogICAgSURTX1BVUlBPU0VfQ0xJRU5UX0FVVEggIkJld2lqc3QgdXcgaWRlbnRpdGVpdCBhYW4gZWVuIHJlbW90ZSBjb21wdXRlciIKICAgIElEU19QVVJQT1NFX0NPREVfU0lHTklORyAiQmV3aWpzdCBkYXQgZGUgc29mdHdhcmUga3dhbSB2YW4gZGUgc29mdHdhcmUgdWl0Z2V2ZXJcbkJlc2NoZXJtdCBzb2Z0d2FyZSB0ZWdlbiB3aWp6aWdpbmdlbiBuYSBwdWJsaWNhdGllIgogICAgSURTX1BVUlBPU0VfRU1BSUxfUFJPVEVDVElPTiAiQmVzY2hlcm10IGUtbWFpbCBiZXJpY2h0ZW4iCiAgICBJRFNfUFVSUE9TRV9JUFNFQyAiU3RhYXQgYmV2ZWlsaWdkZSBjb21tdW5pY2F0aWUgb3ZlciBoZXQgSW50ZXJuZXQgdG9lIgogICAgSURTX1BVUlBPU0VfVElNRVNUQU1QX1NJR05JTkcgIkxhYXQgZGF0YSBvbmRlcnRla2VuZCB3b3JkZW4gbWV0IGRlIGh1aWRpZ2UgdGlqZCIKICAgIElEU19QVVJQT1NFX0NUTF9VU0FHRV9TSUdOSU5HICJMYWF0IHUgZWVuIGNlcnRpZmljYWF0IHZlcnRyb3V3ZW5zbGlqc3QgZGlnaXRhYWwgb25kZXJ0ZWtlbmVuIgogICAgSURTX1BVUlBPU0VfRUZTICJMYWF0IGRhdGEgb3AgZGUgZGlzayBnZWNvZGVlcmQgd29yZGVuIgogICAgSURTX1BVUlBPU0VfRUZTX1JFQ09WRVJZICJCZXN0YW5kc2hlcnN0ZWwiCiAgICBJRFNfUFVSUE9TRV9XSFFMICJXaW5kb3dzIEhhcmR3YXJlIERyaXZlciBWZXJpZmljYXRpZSIKICAgIElEU19QVVJQT1NFX05UNSAiV2luZG93cyBTeXN0ZW0gQ29tcG9uZW50IFZlcmlmaWNhdGllIgogICAgSURTX1BVUlBPU0VfT0VNX1dIUUwgIk9FTSBXaW5kb3dzIFN5c3RlZW0gQ29tcG9uZW50IFZlcmlmaWNhdGllIgogICAgSURTX1BVUlBPU0VfRU1CRURERURfTlQgIkluZ2ViZWQgV2luZG93cyBTeXN0ZWVtIENvbXBvbmVudCBWZXJpZmljYXRpZSIKICAgIElEU19QVVJQT1NFX1JPT1RfTElTVF9TSUdORVIgIkJhc2lzbGlqc3QgT25kZXJ0ZWtlbmFhciIKICAgIElEU19QVVJQT1NFX1FVQUxJRklFRF9TVUJPUkRJTkFUSU9OICJHZWt3YWxpZmljZWVyZGUgb25kZXJnZXNjaGlrdGhlaWQiCiAgICBJRFNfUFVSUE9TRV9LRVlfUkVDT1ZFUlkgIlNsZXV0ZWwgaGVyc3RlbGxlbiIKICAgIElEU19QVVJQT1NFX0RPQ1VNRU5UX1NJR05JTkcgIkRvY3VtZW50IG9uZGVydGVrZW5pbmciCiAgICBJRFNfUFVSUE9TRV9MSUZFVElNRV9TSUdOSU5HICJMZXZlbnNsYW5nIG9uZGVydGVrZW5lbiIKICAgIElEU19QVVJQT1NFX0RSTSAiRGlnaXRhbGUgcmVjaHRlbiIKICAgIElEU19QVVJQT1NFX0xJQ0VOU0VTICJTbGV1dGVsYm9zIGxpY2VudGllcyIKICAgIElEU19QVVJQT1NFX0xJQ0VOU0VfU0VSVkVSICJMaWNlbnRpZXNlcnZlciB2ZXJpZmljYXRpZSIKICAgIElEU19QVVJQT1NFX0VOUk9MTE1FTlRfQUdFTlQgIkNlcnRpZmljYWF0dmVyem9layBhZ2VudCIKICAgIElEU19QVVJQT1NFX1NNQVJUQ0FSRF9MT0dPTiAiU21hcnRjYXJkIGFhbmxvZ2dlbiIKICAgIElEU19QVVJQT1NFX0NBX0VYQ0hBTkdFICJQZXJzb29ubGlqa2Ugc2xldXRlbCBhcmNoaWVmYmVzY2hlaWRlbiIKICAgIElEU19QVVJQT1NFX0tFWV9SRUNPVkVSWV9BR0VOVCAiU2xldXRlbCBoZXJzdGVsIGFnZW50IgogICAgSURTX1BVUlBPU0VfRFNfRU1BSUxfUkVQTElDQVRJT04gIkRpcmVjdG9yeSBzZXJ2aWNlIGVtYWlsIHJlcGxpY2F0aWUiCiAgICBJRFNfRVhQT1JUX1dJWkFSRCAiQ2VydGlmaWNhYXQgRXhwb3J0ZWVyaHVscCIKICAgIElEU19FWFBPUlRfRk9STUFUX1RJVExFICJFeHBvcnQgZm9ybWFhdCIKICAgIElEU19FWFBPUlRfRk9STUFUX1NVQlRJVExFICJTZWxlY3RlZXIgaGV0IGZvcm1hYXQgd2FhcmluIGRlIGluaG91ZCB6YWwgd29yZGVuIG9wZ2VzbGFnZW4uIgogICAgSURTX0VYUE9SVF9GSUxFX1RJVExFICJFeHBvcnRlZXIgYmVzdGFuZHNuYWFtIgogICAgSURTX0VYUE9SVF9GSUxFX1NVQlRJVExFICJHZWVmIGRlIG5hYW0gdmFuIGhldCBiZXN0YW5kIHdhYXJpbiBkZSBpbmhvdWQgemFsIHdvcmRlbiBvcGdlc2xhZ2VuLiIKICAgIElEU19FWFBPUlRfRklMRV9FWElTVFMgIkhldCBnZWtvemVuIGJlc3RhbmQgYmVzdGFhdCByZWVkcy4gV2lsdCB1IGhldCBvdmVyc2NocmlqdmVuPyIKICAgIElEU19FWFBPUlRfRklMVEVSX0NFUlQgIkRFUi1FbmNvZGVkIEJpbmFyeSBYLjUwOSAoKi5jZXIpIgogICAgSURTX0VYUE9SVF9GSUxURVJfQkFTRTY0X0NFUlQgIkJhc2U2NC1nZetuY29kZWVyZCBYLjUwOSAoKi5jZXIpIgogICAgSURTX0VYUE9SVF9GSUxURVJfQ1JMICJDZXJ0aWZpY2FhdCB0ZXJ1Z3JvZXBsaWpzdCAoKi5jcmwpIgogICAgSURTX0VYUE9SVF9GSUxURVJfQ1RMICJDZXJ0aWZpY2FhdCB2ZXJ0cm91d2Vuc2xpanN0ICgqLnN0bCkiCiAgICBJRFNfRVhQT1JUX0ZJTFRFUl9DTVMgIkNNUy9QS0NTICM3IGJlcmljaHRlbiAoKi5wN2IpIgogICAgSURTX0VYUE9SVF9GSUxURVJfUEZYICJQZXJzb29ubGlqa2UgaW5mb3JtYXRpZSB1aXR3aXNzZWxpbmcgKCoucGZ4KSIKICAgIElEU19FWFBPUlRfRklMVEVSX1NFUklBTElaRURfQ0VSVF9TVE9SRSAiU2VyaetsZSBjZXJ0aWZpY2F0ZW5vcHNsYWcgKCouc3N0KSIKICAgIElEU19FWFBPUlRfRk9STUFUICJCZXN0YW5kc2Zvcm1hYXQiCiAgICBJRFNfRVhQT1JUX0lOQ0xVREVfQ0hBSU4gIk5lZW0gYWxsZSBjZXJ0aWZpY2F0ZW4gaW4gaGV0IGNlcnRpZmljYXRpZXBhZCBvcCIKICAgIElEU19FWFBPUlRfS0VZUyAiRXhwb3J0ZWVyIHNsZXV0ZWxzIgogICAgSURTX1lFUyAiSmEiCiAgICBJRFNfTk8gIk5lZSIKICAgIElEU19FWFBPUlRfU1VDQ0VFREVEICJIZXQgZXhwb3J0ZXJlbiBpcyBnZWx1a3QuIgogICAgSURTX0VYUE9SVF9GQUlMRUQgIkhldCBleHBvcnRlcmVuIGlzIG1pc2x1a3QuIgogICAgSURTX0VYUE9SVF9QUklWQVRFX0tFWV9USVRMRSAiRXhwb3J0ZWVyIHBlcnNvb25saWprZSBzbGV1dGVsIgogICAgSURTX0VYUE9SVF9QUklWQVRFX0tFWV9TVUJUSVRMRSAiSGV0IGNlcnRpZmljYWF0IGJldmF0IGVlbiBwZXJzb29ubGlqa2Ugc2xldXRlbCBkaWUgbWVlIGthbiB3b3JkZW4gZ2XreHBvcnRlZXJkIG1ldCBoZXQgY2VydGlmaWNhYXQuIgogICAgSURTX0VYUE9SVF9QQVNTV09SRF9USVRMRSAiVm9lciB3YWNodHdvb3JkIGluIgogICAgSURTX0VYUE9SVF9QQVNTV09SRF9TVUJUSVRMRSAiVSBrdW50IGVlbiBwZXJzb29ubGlqa2Ugc2xldXRlbCBiZXZlaWxpZ2VuIG1ldCBlZW4gd2FjaHR3b29yZC4iCiAgICBJRFNfRVhQT1JUX1BBU1NXT1JEX01JU01BVENIICJEZSB3YWNodHdvb3JkZW4gemlqbiBuaWV0IGdlbGlqay4iCiAgICBJRFNfRVhQT1JUX1BSSVZBVEVfS0VZX1VOQVZBSUxBQkxFICJOQjogRGUgcGVyc29vbmxpamtlIHNsZXV0ZWwgdm9vciBkaXQgY2VydGlmaWNhYXQga29uIG5pZXQgZ2VvcGVuZCB3b3JkZW4uIgogICAgSURTX0VYUE9SVF9QUklWQVRFX0tFWV9OT05fRVhQT1JUQUJMRSAiTm90ZTogRGUgcGVyc29vbmxpamtlIHNsZXV0ZWwgdm9vciBkaXQgY2VydGlmaWNhYXQga2FuIG5pZXQgZ2XreHBvcnRlZXJkIHdvcmRlbi4iCn0KCklERF9HRU5FUkFMIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyNTUsIDIzNgpDQVBUSU9OICJBbGdlbWVlbiIKU1RZTEUgV1NfVklTSUJMRQpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgQ09OVFJPTCAiIiwgLTEsICJTdGF0aWMiLCBXU19CT1JERVJ8U1NfV0hJVEVSRUNULCA2LDEwLDI0MSwyMDAKICBDT05UUk9MICIiLCBJRENfQ0VSVElGSUNBVEVfSUNPTiwiUmljaEVkaXQyMFciLAogICAgRVNfUkVBRE9OTFl8V1NfRElTQUJMRUQsOCwxMSwyNiwyNgogIENPTlRST0wgIiIsIElEQ19DRVJUSUZJQ0FURV9JTkZPLCJSaWNoRWRpdDIwVyIsCiAgICBFU19SRUFET05MWXxXU19ESVNBQkxFRCwzNCwxMSwyMTIsMjYKICBDT05UUk9MICIiLCAtMSwgIlN0YXRpYyIsIFNTX0JMQUNLRlJBTUUsIDE2LDM3LDIyMiwxCiAgQ09OVFJPTCAiIiwgSURDX0NFUlRJRklDQVRFX1NUQVRVUywiUmljaEVkaXQyMFciLAogICAgRVNfUkVBRE9OTFl8RVNfTVVMVElMSU5FLDgsMzgsMjM4LDc4CiAgQ09OVFJPTCAiIiwgLTEsICJTdGF0aWMiLCBTU19CTEFDS0ZSQU1FLCAxNiwxMTYsMjIyLDEKICBDT05UUk9MICIiLCBJRENfQ0VSVElGSUNBVEVfTkFNRVMsIlJpY2hFZGl0MjBXIiwKICAgIEVTX1JFQURPTkxZfEVTX01VTFRJTElORXxXU19ESVNBQkxFRCw4LDExOCwyMzgsOTAKICBQVVNIQlVUVE9OICImSW5zdGFsbGVlciBjZXJ0aWZpY2FhdC4uLiIsIElEQ19BRERUT1NUT1JFLDEwMywyMTYsNzAsMTQKICBQVVNIQlVUVE9OICJVaXRnZXZlcnMgJnZlcmtsYXJpbmciLCBJRENfSVNTVUVSU1RBVEVNRU5ULDE3NywyMTYsNzAsMTQKRU5ECgpJRERfREVUQUlMIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyNTUsIDIzNgpDQVBUSU9OICJEZXRhaWxzIgpTVFlMRSBXU19WSVNJQkxFCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBMVEVYVCAiJlRvb246IiwgLTEsIDYsMTIsNDAsMTQKICBDT01CT0JPWCBJRENfREVUQUlMX1NFTEVDVCwgMjgsMTAsMTAwLDE0LAogICAgQ0JTX0RST1BET1dOTElTVHxXU19CT1JERVJ8V1NfVlNDUk9MTHxXU19UQUJTVE9QCiAgQ09OVFJPTCAiIiwgSURDX0RFVEFJTF9MSVNULCAiU3lzTGlzdFZpZXczMiIsCiAgICBMVlNfUkVQT1JUfExWU19TSU5HTEVTRUx8V1NfQ0hJTER8V1NfVklTSUJMRXxXU19UQUJTVE9QfFdTX0JPUkRFUiwKICAgIDYsMjgsMjQxLDEwMAogIENPTlRST0wgIiIsIElEQ19ERVRBSUxfVkFMVUUsICJSaWNoRWRpdDIwVyIsCiAgICBFU19SRUFET05MWXxFU19NVUxUSUxJTkV8V1NfVEFCU1RPUCwgNiwxMzYsMjQxLDcwCiAgUFVTSEJVVFRPTiAiJldpanppZyBlaWdlbnNjaGFwcGVuLi4uIiwgSURDX0VESVRQUk9QRVJUSUVTLDEwMywyMTYsNzAsMTQKICBQVVNIQlVUVE9OICImS29waWVlciBuYWFyIGJlc3RhbmQuLi4iLCBJRENfRVhQT1JULDE3NywyMTYsNzAsMTQKRU5ECgpJRERfSElFUkFSQ0hZIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyNTUsIDIzNgpDQVBUSU9OICJDZXJ0aWZpY2F0aWUgcGFkIgpTVFlMRSBXU19WSVNJQkxFCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBHUk9VUEJPWCAiQ2VydGlmaWNhdGlvbiAmcGFkIiwgLTEsNiwxMCwyNDUsMTY1LCBCU19HUk9VUEJPWAogIENPTlRST0wgIiIsSURDX0NFUlRQQVRILCAiU3lzVHJlZVZpZXczMiIsIFRWU19IQVNMSU5FU3xXU19CT1JERVIsCiAgICAxMywyMiwyMzEsMTMwCiAgUFVTSEJVVFRPTiAiJkJla2lqayBjZXJ0aWZpY2FhdCIsIElEQ19WSUVXQ0VSVElGSUNBVEUsMTc1LDE1Niw3MCwxNAogIExURVhUICJDZXJ0aWZpY2FhdCAmc3RhdHVzOiIsIElEQ19DRVJUSUZJQ0FURVNUQVRVUyw2LDE4Myw3MCwxNAogIENPTlRST0wgIiIsIElEQ19DRVJUSUZJQ0FURVNUQVRVU1RFWFQsIlJpY2hFZGl0MjBXIiwKICAgIFdTX0JPUkRFUnxFU19SRUFET05MWXxFU19NVUxUSUxJTkV8V1NfRElTQUJMRUQsNiwxOTUsMjQ1LDM2CkVORAoKSUREX1VTRVJOT1RJQ0UgRElBTE9HIERJU0NBUkRBQkxFIDAsIDAsIDI1NSwgMjU2CkNBUFRJT04gIkRpc2NsYWltZXIiClNUWUxFIFdTX1ZJU0lCTEUKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIENPTlRST0wgIiIsIElEQ19VU0VSTk9USUNFLCJSaWNoRWRpdDIwVyIsCiAgICBXU19CT1JERVJ8RVNfUkVBRE9OTFl8RVNfTVVMVElMSU5FfFdTX0RJU0FCTEVELDYsMTAsMjQxLDIwMAogIFBVU0hCVVRUT04gIiZTbHVpdGVuIiwgSURPSywxMDMsMjE2LDcwLDE0CiAgUFVTSEJVVFRPTiAiTWVlciAmaW5mb3JtYXRpZSIsIElEQ19DUFMsMTc3LDIxNiw3MCwxNApFTkQKCklERF9DRVJUX1BST1BFUlRJRVNfR0VORVJBTCBESUFMT0cgRElTQ0FSREFCTEUgMCwgMCwgMjU1LCAyMzYKQ0FQVElPTiAiQWxnZW1lZW4iClNUWUxFIFdTX1ZJU0lCTEUKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICImTmFhbSBhbGlhczoiLCAtMSwgNiwxNCw2MCwxNAogIEVESVRURVhUIElEQ19GUklFTkRMWV9OQU1FLCA2MCwxMiwxOTEsMTQsIEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1AKICBMVEVYVCAiJkJlc2NocmlqdmluZzoiLCAtMSwgNiwzMiw2MCwxNAogIEVESVRURVhUIElEQ19ERVNDUklQVElPTiwgNjAsMzAsMTkxLDE0LCBFU19BVVRPVlNDUk9MTHxFU19NVUxUSUxJTkV8V1NfVEFCU1RPUHxXU19WU0NST0xMCiAgR1JPVVBCT1ggIkNlcnRpZmljYWF0IGRvZWxlaW5kZW4iLCAtMSw2LDQ4LDI0NSwxNjUsIEJTX0dST1VQQk9YCiAgQVVUT1JBRElPQlVUVE9OICJTY2hha2VsIGFsbGUgZG9lbGVpbmRlbiB2b29yIGRpdCBjZXJ0aWZpY2FhdCAmaW4iLAogICAgSURDX0VOQUJMRV9BTExfUFVSUE9TRVMsIDEyLDU4LDE4MCwxNCwgQlNfQVVUT1JBRElPQlVUVE9OfFdTX1RBQlNUT1AKICBBVVRPUkFESU9CVVRUT04gIlNjaGFrZWwgYWxsZSBkb2VsZWluZGVuIHZvb3IgZGl0IGNlcnRpZmljYWF0ICZ1aXQiLAogICAgSURDX0RJU0FCTEVfQUxMX1BVUlBPU0VTLCAxMiw3MCwxODAsMTQsIEJTX0FVVE9SQURJT0JVVFRPTgogIEFVVE9SQURJT0JVVFRPTiAiU2NoYWtlbCAmYWxsZWVuIGRlIHZvbGdlbmRlIGRvZWxlaW5kZW4gdm9vciBkaXQgY2VydGlmaWNhYXQgaW46IiwKICAgIElEQ19FTkFCTEVfU0VMRUNURURfUFVSUE9TRVMsIDEyLDgyLDE4MCwxNCwgQlNfQVVUT1JBRElPQlVUVE9OCiAgQ09OVFJPTCAiIiwgSURDX0NFUlRJRklDQVRFX1VTQUdFUywiU3lzTGlzdFZpZXczMiIsCiAgICBMVlNfUkVQT1JUfExWU19OT0NPTFVNTkhFQURFUnxMVlNfU0lOR0xFU0VMfFdTX0NISUxEfFdTX1ZJU0lCTEV8V1NfVEFCU1RPUHxXU19CT1JERVIsCiAgICAyNCwxMDAsMjIwLDkwCiAgUFVTSEJVVFRPTiAiVm9lZyAmZG9lbGVpbmRlIHRvZS4uLiIsIElEQ19BRERfUFVSUE9TRSwxODQsMTk0LDYwLDE0CkVORAoKSUREX0FERF9DRVJUX1BVUlBPU0UgRElBTE9HIERJU0NBUkRBQkxFIDAsMCwyMDAsNjgKQ0FQVElPTiAiVm9lZyBkb2VsZWluZGUgdG9lIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIlZvZXIgaGV0IG9iamVjdCBpZC4gKE9JRCkgaW4gdm9vciBoZXQgdG9lIHRlIHZvZWdlbiBjZXJ0aWZpY2FhdCBkb2VsZWluZGU6IiwKICAgIC0xLCA2LDYsMTkwLDI4CiAgRURJVFRFWFQgSURDX05FV19QVVJQT1NFLCA2LDI4LDE5MCwxNCwgRVNfQVVUT1ZTQ1JPTEx8RVNfTVVMVElMSU5FfFdTX1RBQlNUT1B8V1NfVlNDUk9MTAogIFBVU0hCVVRUT04gIk9LIiwgSURPSywgMzMsNDgsNjAsMTQKICBQVVNIQlVUVE9OICJBbm51bGVyZW4iLCBJRENBTkNFTCwgMTAwLDQ4LDYwLDE0CkVORAoKSUREX1NFTEVDVF9TVE9SRSBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDIwMCwxMzYKQ0FQVElPTiAiU2VsZWN0ZWVyIGNlcnRpZmljYXRlbm9wc2xhZyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICJTZWxlY3RlZXIgZGUgY2VydGlmaWNhdGVub3BzbGFnIGRpZSB1IHdpbHQgZ2VicnVpa2VuOiIsIElEQ19TVE9SRV9URVhULCA2LDYsMTkwLDI4CiAgQ09OVFJPTCAiIixJRENfU1RPUkVfTElTVCwgIlN5c1RyZWVWaWV3MzIiLCBUVlNfSEFTTElORVN8V1NfQk9SREVSfFdTX1RBQlNUT1AsCiAgICA2LDI4LDE4OCw3MAogIENIRUNLQk9YICImVG9vbiBmeXNpZWtlIG9wc2xhZ2VuIiwgSURDX1NIT1dfUEhZU0lDQUxfU1RPUkVTLCA2LDEwMiw5MCwxNCwKICAgIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QCiAgUFVTSEJVVFRPTiAiT0siLCBJRE9LLCA5MCwxMTgsNTAsMTQsIEJTX0RFRlBVU0hCVVRUT04KICBQVVNIQlVUVE9OICJBbm51bGVyZW4iLCBJRENBTkNFTCwgMTQ0LDExOCw1MCwxNApFTkQKCklERF9JTVBPUlRfV0VMQ09NRSBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDMxNywxNDMKQ0FQVElPTiAiQ2VydGlmaWNhYXQgaW1wb3J0ZWVyaHVscCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICJXZWxrb20gYmlqIGRlIGNlcnRpZmljYWF0IGltcG9ydGVlcmh1bHAiLCBJRENfSU1QT1JUX1RJVExFLAogICAgMTE1LDEsMTk1LDQwCiAgTFRFWFQgIkRlemUgaHVscCBoZWxwcyB1IG1ldCBoZXQgaW1wb3J0ZXJlbiB2YW4gY2VydGlmaWNhdGVuLCBjZXJ0aWZpY2FhdCB0ZXJ1Z3JvZXBsaWpzdGVuIGVuIGNlcnRpZmljYWF0IHZlcnRyb3V3ZW5zbGlqc3RlbiB1aXQgZWVuIGJlc3RhbmQgbmFhciBlZW4gY2VydGlmaWNhdGVub3BzbGFnLiIsCiAgICAtMSwgMTE1LDMzLDE5NSwxNgogIExURVhUICJFZW4gY2VydGlmaWNhYXQga2FuIGdlYnJ1aWt0IHdvcmRlbiBvbSB1IG9mIGRlIGNvbXB1dGVyIHdhYXJtZWUgdSB3ZXJrdCB0ZSBpZGVudGlmaWNlcmVuLiBIZXQga2FuIG9vayBnZWJydWlrdCB3b3JkZW4gdm9vciBhdXRoZW50aWNhdGllIGVuIG9tIGJlcmljaHRlbiB0ZSBvbmRlcnRla2VuZW4uIENlcnRpZmljYXRlbm9wc2xhZ2VuIHppam4gdmVyemFtZWxpbmdlbiB2YW4gY2VydGlmaWNhdGVuLCBjZXJ0aWZpY2FhdCB0ZXJ1Z3JvZXBsaWpzdGVuIGVuIGNlcnRpZmljYWF0IHZlcnRyb3V3ZW5zbGlqc3Rlbi4iLAogICAgLTEsIDExNSw1NiwxOTUsNDAKICBMVEVYVCAiT20gdmVyZGVyIHRlIGdhYW4sIGNsaWNrIG9wIFZvbGdlbmRlLiIsCiAgICAtMSwgMTE1LDEwMywxOTUsOApFTkQKCklERF9JTVBPUlRfRklMRSBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDMxNywxNDMKQ0FQVElPTiAiQ2VydGlmaWNhYXQgaW1wb3J0ZWVyaHVscCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICJCZXN0YW5kcyZuYWFtOiIsIC0xLCAyMSwxLDE5NSwxMAogIEVESVRURVhUIElEQ19JTVBPUlRfRklMRU5BTUUsIDIxLDExLDIwOCwxNCwgRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUAogIFBVU0hCVVRUT04gIkImbGFkZXJlbi4uLiIsIElEQ19JTVBPUlRfQlJPV1NFX0ZJTEUsIDIzNiwxMSw2MCwxNAogIExURVhUICJOQjogRGUgdm9sZ2VuZGUgYmVzdGFuZHNmb3JtYXRlbiBrdW5uZW4gbWVlciBkYW4g6eluIGNlcnRpZmljYWF0LCBjZXJ0aWZpY2FhdCB0ZXJ1Z3JvZXBsaWpzdCBvZiBjZXJ0aWZpY2FhdCB2ZXJ0cm91d2Vuc2xpanN0IGJldmF0dGVuOiIsCiAgICAtMSwgMjEsMjYsMjY1LDE2CiAgTFRFWFQgIkNyeXB0b2dyYXBoaXNjaCBiZXJpY2h0c3ludGF4aXMgc3RhbmRhYXJkL1BLQ1MgIzcgYmVyaWNodGVuICgucDdiKSIsCiAgICAtMSwgMzEsNDksMjY1LDEwCiAgTFRFWFQgIlBlcnNvb25saWprZSBpbmZvcm1hdGllIHVpdHdpc3NlbGluZy9QS0NTICMxMiAoLnBmeCwgLnAxMikiLAogICAgLTEsIDMxLDY0LDI2NSwxMAogIExURVhUICJNaWNyb3NvZnQgc2VyaetsZSBjZXJ0aWZpY2F0ZW5vcHNsYWcgKC5zc3QpIiwKICAgIC0xLCAzMSw3OSwyNjUsMTAKRU5ECgpJRERfSU1QT1JUX1NUT1JFIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzE3LDE0MwpDQVBUSU9OICJDZXJ0aWZpY2FhdCBpbXBvcnRlZXJodWxwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIldpbmUga2FuIGF1dG9tYXRpc2NoIGRlIGNlcnRpZmljYXRlbm9wc2xhZyBzZWxlY3RlcmVuLCBvZiB1IGt1bnQgZWVuIGxvY2F0aWUgb3BnZXZlbiB2b29yIGRlIGNlcnRpZmljYXRlbi4iLAogICAgLTEsIDIxLDEsMTk1LDIwCiAgQVVUT1JBRElPQlVUVE9OICImQXV0b21hdGlzY2ggY2VydGlmaWNhdGVub3BzbGFnIHNlbGVjdGVyZW4iLAogICAgSURDX0lNUE9SVF9BVVRPX1NUT1JFLCAzMSwxOCwxODAsMTIsIEJTX0FVVE9SQURJT0JVVFRPTnxXU19UQUJTVE9QCiAgQVVUT1JBRElPQlVUVE9OICImUGxhYXRzIGFsbGUgY2VydGlmaWNhdGVuIGluIGRlIHZvbGdlbmRlIG9wc2xhZzoiLAogICAgSURDX0lNUE9SVF9TUEVDSUZZX1NUT1JFLCAzMSwzMCwxODAsMTIsIEJTX0FVVE9SQURJT0JVVFRPTgogIEVESVRURVhUIElEQ19JTVBPUlRfU1RPUkUsIDQ0LDQ5LDE4NSwxNCwgRVNfUkVBRE9OTFkKICBQVVNIQlVUVE9OICJCJmxhZGVyZW4uLi4iLCBJRENfSU1QT1JUX0JST1dTRV9TVE9SRSwgMjM2LDQ5LDYwLDE0CkVORAoKSUREX0lNUE9SVF9GSU5JU0ggRElBTE9HIERJU0NBUkRBQkxFIDAsMCwzMTcsMTQzCkNBUFRJT04gIkNlcnRpZmljYWF0IGltcG9ydGVlcmh1bHAiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBMVEVYVCAiQWZyb25kZW4gdmFuIGRlIGNlcnRpZmljYWF0IGltcG9ydGVlcmh1bHAiLCBJRENfSU1QT1JUX1RJVExFLAogICAgMTE1LDEsMTk1LDQwCiAgTFRFWFQgIlUgaGVlZnQgZGUgY2VydGlmaWNhYXQgaW1wb3J0ZWVyaHVscCBzdWNjZXN2b2wgYWZnZXJvbmQuIiwKICAgIC0xLCAxMTUsMzMsMTk1LDI0CiAgTFRFWFQgIlUgaGVlZnQgZGUgdm9sZ2VuZGUgaW5zdGVsbGluZ2VuIGluZ2VnZXZlbjoiLAogICAgLTEsIDExNSw1NywxOTUsMTIKICBDT05UUk9MICIiLCBJRENfSU1QT1JUX1NFVFRJTkdTLCAiU3lzTGlzdFZpZXczMiIsCiAgICBMVlNfUkVQT1JUfExWU19OT0NPTFVNTkhFQURFUnxMVlNfU0lOR0xFU0VMfFdTX0NISUxEfFdTX1ZJU0lCTEV8V1NfVEFCU1RPUHxXU19CT1JERVIsCiAgICAxMTUsNjcsMTc0LDEwMApFTkQKCklERF9DRVJUX01HUiBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDMzNSwyNzAKQ0FQVElPTiAiQ2VydGlmaWNhdGVuIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIiZEb2VsZWluZGVuOiIsIC0xLCA3LDksMTAwLDEyCiAgQ09NQk9CT1ggSURDX01HUl9QVVJQT1NFX1NFTEVDVElPTiwgODMsNywyNDUsMTQsCiAgICBDQlNfRFJPUERPV05MSVNUfFdTX0JPUkRFUnxXU19WU0NST0xMfFdTX1RBQlNUT1AKICBDT05UUk9MICIiLCBJRENfTUdSX1NUT1JFUywgIlN5c1RhYkNvbnRyb2wzMiIsCiAgICBXU19DTElQU0lCTElOR1N8V1NfVEFCU1RPUCwgNywyNSwzMjEsMTQwCiAgQ09OVFJPTCAiIiwgSURDX01HUl9DRVJUUywgIlN5c0xpc3RWaWV3MzIiLAogICAgTFZTX1JFUE9SVHxXU19DSElMRHxXU19WSVNJQkxFfFdTX1RBQlNUT1B8V1NfQk9SREVSLCAxNSw0NiwzMDUsMTExCiAgUFVTSEJVVFRPTiAiJkltcG9ydGVlci4uLiIsIElEQ19NR1JfSU1QT1JULCA3LDE3Miw1MSwxNAogIFBVU0hCVVRUT04gIiZFeHBvcnRlZXIuLi4iLCBJRENfTUdSX0VYUE9SVCwgNjIsMTcyLDUxLDE0LCBXU19ESVNBQkxFRAogIFBVU0hCVVRUT04gIiZWZXJ3aWpkZXIiLCBJRENfTUdSX1JFTU9WRSwgMTE3LDE3Miw1MSwxNCwgV1NfRElTQUJMRUQKICBQVVNIQlVUVE9OICJHZSZhdmFuY2VlcmQuLi4iLCBJRENfTUdSX0FEVkFOQ0VELCAyNzcsMTcyLDUxLDE0CiAgR1JPVVBCT1ggIkNlcnRpZmljYWF0IGRvZWxlaW5kZW4iLCAtMSw3LDE5NCwzMjEsNDcsIEJTX0dST1VQQk9YCiAgTFRFWFQgIiIsIElEQ19NR1JfUFVSUE9TRVMsIDEzLDIwOCwyNTIsMzAKICBQVVNIQlVUVE9OICImQmVraWprZW4uLi4iLCBJRENfTUdSX1ZJRVcsIDI2OSwyMTgsNTEsMTQsIFdTX0RJU0FCTEVECiAgUFVTSEJVVFRPTiAiJlNsdWl0ZW4iLCBJRENBTkNFTCwgMjc3LDI0OSw1MSwxNCwgQlNfREVGUFVTSEJVVFRPTgpFTkQKCklERF9DRVJUX01HUl9BRFZBTkNFRCBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDI0OCwxNzYKQ0FQVElPTiAiR2VhdmFuY2VlcmRlIG9wdGllcyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIEdST1VQQk9YICJDZXJ0aWZpY2FhdCBkb2VsZWluZGUiLCAtMSwgNyw3LDIzNCwxNDEsIEJTX0dST1VQQk9YCiAgTFRFWFQgIlNlbGVjdGVlciBlZW4gb2YgbWVlcmRlcmUgZG9lbGVuIG9tIHRlIHRvbmVuIGFscyBHZWF2YW5jZWVyZGUgZG9lbGVpbmRlbiB3b3JkdCBnZXNlbGVjdGVlcmQuIiwKICAgIC0xLCAxNCwxOCwyMjAsMTYKICBMVEVYVCAiJkNlcnRpZmljYWF0IGRvZWxlaW5kZW46IiwgLTEsIDE0LDQxLDkwLDEyLCBXU19UQUJTVE9QCiAgQ09OVFJPTCAiIiwgSURDX0NFUlRJRklDQVRFX1VTQUdFUywiU3lzTGlzdFZpZXczMiIsCiAgICBMVlNfUkVQT1JUfExWU19OT0NPTFVNTkhFQURFUnxMVlNfU0lOR0xFU0VMfFdTX0NISUxEfFdTX1ZJU0lCTEV8V1NfVEFCU1RPUHxXU19CT1JERVIsCiAgICAxNCw1MSwyMjAsOTAKICBQVVNIQlVUVE9OICJPSyIsIElET0ssIDEzMiwxNTUsNTEsMTQsIEJTX0RFRlBVU0hCVVRUT04KICBQVVNIQlVUVE9OICJBbm51bGVyZW4iLCBJRENBTkNFTCwgMTkwLDE1NSw1MSwxNApFTkQKCklERF9FWFBPUlRfV0VMQ09NRSBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDMxNywxNDMKQ0FQVElPTiAiQ2VydGlmaWNhYXQgZXhwb3J0ZWVyaHVscCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICJXZWxrb20gYmlqIGRlIENlcnRpZmljYWF0IGV4cG9ydGVlcmh1bHAiLCBJRENfRVhQT1JUX1RJVExFLAogICAgMTE1LDEsMTk1LDQwCiAgTFRFWFQgIkRlemUgaHVscCBhc3Npc3RlZXJkIHUgYmlqIGhldCBleHBvcnRlcmVuIHZhbiBjZXJ0aWZpY2F0ZW4sIGNlcnRpZmljYWF0IHRlcnVncm9lcGxpanN0ZW4gZW4gY2VydGlmaWNhYXQgdmVydHJvdXdlbnNsaWpzdGVuIHZhbnVpdCBlZW4gY2VydGlmaWNhdGVub3BzbGFnIG5hYXIgZWVuIGJlc3RhbmQuIiwKICAgIC0xLCAxMTUsMzMsMTk1LDE2CiAgTFRFWFQgIkVlbiBjZXJ0aWZpY2FhdCBrYW4gZ2VicnVpa3Qgd29yZGVuIG9tIHUgb2YgZGUgY29tcHV0ZXIgd2Fhcm1lZSB1IHdlcmt0IHRlIGlkZW50aWZpY2VyZW4uIEhldCBrYW4gb29rIGdlYnJ1aWt0IHdvcmRlbiB2b29yIGF1dGhlbnRpY2F0aWUgZW4gb20gYmVyaWNodGVuIHRlIG9uZGVydGVrZW5lbi4gQ2VydGlmaWNhdGVub3BzbGFnZW4gemlqbiB2ZXJ6YW1lbGluZ2VuIHZhbiBjZXJ0aWZpY2F0ZW4sIGNlcnRpZmljYWF0IHRlcnVncm9lcGxpanN0ZW4gZW4gY2VydGlmaWNhYXQgdmVydHJvdXdlbnNsaWpzdGVuLiIsCiAgICAtMSwgMTE1LDU2LDE5NSw0MAogIExURVhUICJPbSB2ZXJkZXIgdGUgZ2FhbiwgY2xpY2sgb3AgVm9sZ2VuZGUuIiwKICAgIC0xLCAxMTUsMTAzLDE5NSw4CkVORAoKSUREX0VYUE9SVF9QUklWQVRFX0tFWSBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDMxNywxNDMKQ0FQVElPTiAiQ2VydGlmaWNhYXQgZXhwb3J0ZWVyaHVscCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICJBbHMgdSBkZSBwZXJzb29ubGlqa2Ugc2xldXRlbCB3aWx0IGV4cG9ydGVyZW4genVsdCB1IGxhdGVyIHZlcnpvY2h0IHdvcmRlbiBlZW4gd2FjaHR3b29yZCBpbiB0ZSBnZXZlbiBvbSBkZSBzbGV1dGVsIHRlIGJldmVpbGlnZW4uIiwgLTEsIDIxLDEsMTk1LDIzCiAgTFRFWFQgIldpbHQgdSBkZSBwZXJzb29ubGlqa2Ugc2xldXRlbCBleHBvcnRlcmVuPyIsIC0xLCAyMSwyNCwxOTUsMTUKICBBVVRPUkFESU9CVVRUT04gIiZKYSwgZXhwb3J0ZWVyIGRlIHBlcnNvb25saWprZSBzbGV1dGVsIiwKICAgIElEQ19FWFBPUlRfUFJJVkFURV9LRVlfWUVTLCAzMSwzNiwyMDAsMTIsIEJTX0FVVE9SQURJT0JVVFRPTnxXU19UQUJTVE9QCiAgQVVUT1JBRElPQlVUVE9OICImTmVlLCBleHBvcnRlZXIgZGUgcGVyc29vbmxpamtlIHNsZXV0ZWwgbmlldCIsCiAgICBJRENfRVhQT1JUX1BSSVZBVEVfS0VZX05PLCAzMSw0OCwyMDAsMTIsIEJTX0FVVE9SQURJT0JVVFRPTgogIExURVhUICIiLCBJRENfRVhQT1JUX1BSSVZBVEVfS0VZX1VOQVZBSUxBQkxFLCAyMSw2MCwyMDAsMjQKRU5ECgpJRERfRVhQT1JUX1BBU1NXT1JEIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzE3LDE0MwpDQVBUSU9OICJDZXJ0aWZpY2FhdCBleHBvcnRlZXJodWxwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIiZXYWNodHdvb3JkOiIsIC0xLCAyMSwxLDE5NSwxMAogIEVESVRURVhUIElEQ19FWFBPUlRfUEFTU1dPUkQsIDIxLDExLDIwOCwxNCwgRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUAogIExURVhUICImQmV2ZXN0aWcgd2FjaHR3b29yZDoiLCAtMSwgMjEsMzUsMTk1LDEwCiAgRURJVFRFWFQgSURDX0VYUE9SVF9QQVNTV09SRF9DT05GSVJNLCAyMSw0NSwyMDgsMTQsIEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1AKRU5ECgpJRERfRVhQT1JUX0ZPUk1BVCBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDMxNywxNDMKQ0FQVElPTiAiQ2VydGlmaWNhYXQgZXhwb3J0ZWVyaHVscCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICJTZWxlY3RlZXIgaGV0IGZvcm1hYXQgZGF0IHUgd2lsdCBnZWJydWlrZW46IiwgLTEsIDIxLDEsMTk1LDEwCiAgQVVUT1JBRElPQlVUVE9OICImREVSLWVuY29kZWQgWC41MDkgKC5jZXIpIiwKICAgIElEQ19FWFBPUlRfRk9STUFUX0RFUiwgMzEsMTgsMjAwLDEyLCBCU19BVVRPUkFESU9CVVRUT058V1NfVEFCU1RPUAogIEFVVE9SQURJT0JVVFRPTiAiQmEmc2U2NC1lbmNvZGVkIFguNTA5ICguY2VyKToiLAogICAgSURDX0VYUE9SVF9GT1JNQVRfQkFTRTY0LCAzMSwzMCwyMDAsMTIsIEJTX0FVVE9SQURJT0JVVFRPTgogIEFVVE9SQURJT0JVVFRPTiAiJkNyeXB0b2dyYXBoaXNjaCBiZXJpY2h0c3ludGF4aXMgc3RhbmRhYXJkL1BLQ1MgIzcgYmVyaWNodGVuICgucDdiKSIsCiAgICBJRENfRVhQT1JUX0ZPUk1BVF9DTVMsIDMxLDQyLDIwMCwxMiwgQlNfQVVUT1JBRElPQlVUVE9OCiAgQ0hFQ0tCT1ggIk5lZW0gJmFsbGUgY2VydGlmaWNhdGVuIGluIGhldCBjZXJ0aWZpY2F0aWVwYWQgb3AgaW5kaWVuIG1vZ2VsaWprIiwKICAgIElEQ19FWFBPUlRfQ01TX0lOQ0xVREVfQ0hBSU4sIDQ0LDU3LDIwMCw4LCBCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogIEFVVE9SQURJT0JVVFRPTiAiJlBlcnNvb25saWprZSBpbmZvcm1hdGllIHVpdHdpc3NlbGluZy9QS0NTICMxMiAoLnBmeCkiLAogICAgSURDX0VYUE9SVF9GT1JNQVRfUEZYLCAzMSw3MiwyMDAsMTIsIEJTX0FVVE9SQURJT0JVVFRPTnxXU19ESVNBQkxFRAogIENIRUNLQk9YICJOZWUmbSBhbGxlIGNlcnRpZmljYXRlbiBpbiBoZXQgY2VydGlmaWNhdGllcGFkIG9wIGluZGllbiBtb2dlbGlqayIsCiAgICBJRENfRVhQT1JUX1BGWF9JTkNMVURFX0NIQUlOLCA0NCw4NywyMDAsOCwgQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICBDSEVDS0JPWCAiJkdlYnJ1aWt0IHN0ZXJrZSBlbmNyeXB0aWUiLAogICAgSURDX0VYUE9SVF9QRlhfU1RST05HX0VOQ1JZUFRJT04sIDQ0LDEwMiwyMDAsOCwKICAgIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QfFdTX0RJU0FCTEVECiAgQ0hFQ0tCT1ggIlZlcndpamRlciBkZSBwZXJzb29ubGlqa2UgcyZsZXV0ZWwgYWxzIGRlIGV4cG9ydCBzdWNjZXN2b2wgaXMiLAogICAgSURDX0VYUE9SVF9QRlhfREVMRVRFX1BSSVZBVEVfS0VZLCA0NCwxMTcsMjAwLDgsCiAgICBCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRApFTkQKCklERF9FWFBPUlRfRklMRSBESUFMT0cgRElTQ0FSREFCTEUgMCwwLDMxNywxNDMKQ0FQVElPTiAiQ2VydGlmaWNhYXQgZXhwb3J0ZWVyaHVscCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIExURVhUICJCZXN0YW5kcyZuYWFtOiIsIC0xLCAyMSwxLDE5NSwxMAogIEVESVRURVhUIElEQ19FWFBPUlRfRklMRU5BTUUsIDIxLDExLDIwOCwxNCwgRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUAogIFBVU0hCVVRUT04gIiZCbGFkZXJlbi4uLiIsIElEQ19FWFBPUlRfQlJPV1NFX0ZJTEUsIDIzNiwxMSw2MCwxNApFTkQKCklERF9FWFBPUlRfRklOSVNIIERJQUxPRyBESVNDQVJEQUJMRSAwLDAsMzE3LDE0MwpDQVBUSU9OICJDZXJ0aWZpY2FhdCBleHBvcnRlZXJodWxwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgTFRFWFQgIkFmcm9uZGVuIHZhbiBkZSBDZXJ0aWZpY2FhdCBleHBvcnRlZXJodWxwIiwgSURDX0VYUE9SVF9USVRMRSwKICAgIDExNSwxLDE5NSw0MAogIExURVhUICJVIGhlZWZ0IGRlIENlcnRpZmljYWF0IGV4cG9ydGVlcmh1bHAgc3VjY2Vzdm9sIGFmZ2Vyb25kLiIsCiAgICAtMSwgMTE1LDMzLDE5NSwyNAogIExURVhUICJVIGhlZWZ0IGRlIHZvbGdlbmRlIGluc3RlbGxpbmdlbiBnZXNwZWNpZmljZWVyZDoiLAogICAgLTEsIDExNSw1NywxOTUsMTIKICBDT05UUk9MICIiLCBJRENfRVhQT1JUX1NFVFRJTkdTLCAiU3lzTGlzdFZpZXczMiIsCiAgICBMVlNfUkVQT1JUfExWU19OT0NPTFVNTkhFQURFUnxMVlNfU0lOR0xFU0VMfFdTX0NISUxEfFdTX1ZJU0lCTEV8V1NfVEFCU1RPUHxXU19CT1JERVIsCiAgICAxMTUsNjcsMTc0LDEwMApFTkQK