LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogUG9ydHVndWVzZSBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDAzIE1hcmNlbG8gRHVhcnRlCiAqIENvcHlyaWdodCAyMDA0IEFt6XJpY28gSm9z6SBNZWxvCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ORVVUUkFMCgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJWZXJz428gZG8gV2luZToiLElEQ19TVEFUSUMsMTE5LDE3LDU1LDgKICAgIExURVhUICAgICAgICAgICAiQ1ZTIixJRENfV0lORVZFUiwxNzksMTcsNTYsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQIHwgU1NfQ0VOVEVSSU1BR0UgfCAKICAgICAgICAgICAgICAgICAgICBTU19SRUFMU0laRUlNQUdFIHwgV1NfQk9SREVSLDE1LDE3LDE1NywxMTEsIFdTX0VYX1RSQU5TUEFSRU5UCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4CiAgICBDVEVYVCAgICAgICAgICAgIlRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX05FVVRSQUwKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIENvbmZpZ3VyYef1ZXMgZGEgYXBsaWNh5+NvICIsSURDX1NUQVRJQywgOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiV2luZSBwb2RlIGltaXRhciB24XJpb3MgZXN0aWxvcyBlIHZlcnP1ZXMgZG8gV2luZG93cyBwYXJhIGNhZGEgYXBsaWNh5+NvIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNywyMAogICAgQ09OVFJPTCAgICAgICAgICJBcGxpY2Hn9WVzIixJRENfQVBQX0xJU1RWSUVXLCJTeXNMaXN0VmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTFZTX0xJU1QgfCBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMsCiAgICAgICAgICAgICAgICAgICAgMTUsNDAsMjMwLDE0MAogICAgUFVTSEJVVFRPTgkgICAgIkFkaWNvbmFyIGFwbGljYefjby4uLiIsSURDX0FQUF9BRERBUFAsIDkwLDE4NCw3NSwxNAogICAgUFVTSEJVVFRPTgkgICAgIlJlbW92ZXIgYXBsaWNh5+NvIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDE4NCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICJWZXJz428gZG8gV2luZG93czoiLElEQ19TVEFUSUMsMTcsMjA0LDU4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIwMiwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QICAgIAogICAgTFRFWFQgICAgICAgICAgICJWZXJz428gZG8gRE9TOiIsSURDX1NUQVRJQywxNywyMjMsNTcsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ET1NWRVIsODMsMjI0LDE2Myw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKRU5ECgoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX05FVVRSQUwKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTAkgICAgIlByb2dyYW1hcyBEaXJlY3RYIHBvZGVtIGltcGVkaXIgcXVlIG8gbW91c2UgZGVpeGUgYSBqYW5lbGE/IixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDM1LDIzMCw4CiAgICBDT05UUk9MCSAgICAiUGVybWl0aXIgYnVmZmVyIGR1cGxvIGRvIGRlc2t0b3AiLElEQ19ET1VCTEVfQlVGRkVSLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDUsMjMwLDgKICAgIAogICAgR1JPVVBCT1ggICAgICAgICIgQ29uZmlndXJh5/VlcyBkZSBqYW5lbGEgIixJRENfU1RBVElDLDgsMjUsMjQ0LDEyMAoKICAgIC8qIEZJWE1FOiB0aGUgd29yZGluZyBvZiB0aGlzIGV4cGxhbmF0aW9uIGNvdWxkIGJlIGEgbG90IGJldHRlciAqLwogICAgTFRFWFQgICAgICAgICAgICJWb2PqIHBvZGUgZXNjb2xoZXIgZW11bGF0YXIgdW1hIOFyZWEgZGUgdHJhYmFsaG8sIG9uZGUgdG9kYXMgYXMgamFuZWxhcyBz428gY29uZmluYWRhcyBlbSB1bWEgJ3RlbGEgdmlydHVhbCcsIG91IHBvZGUgdGVyIHVtYSBqYW5lbGEgY29sb2NhZGEgbmEgc3VhIOFyZWEgZGUgdHJhYmFsaG8gcGFkcuNvLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSw3MywyMjgsMjgKICAgIExURVhUICAgICAgICAgICAiVGFtYW5obyBkYSDhcmVhIGRlIHRyYWJhbGhvOiIsSURDX0RFU0tUT1BfU0laRSwxNSwxMTUsMTAwLDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTY0LDExNSw4LDgsV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAiRW11bGFyIHVtYSDhcmVhIGRlIHRyYWJhbGhvIHZpcnR1YWwiLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEwMCwyMjgsMTAKCQkgICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfV0lEVEgsMTIwLDExNSw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDE3MywxMTUsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoJCSAgICAKRU5ECgoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX0RFRkFVTFQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiU29icmVlc2NyZXZlciBETExzIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIkJpYmxpb3RlY2FzIHBvZGVtIHNlciBlc3BlY2lmaWNhZGFzIGluZGl2aWR1YWxtZW50ZSBjb21vICdidWlsdGluJyBvdSAnbmF0aXZlJy4gVW1hIGVudHJhZGEgRExMIGNvbW8gIiIqIiIg6SBwZXJ0aW5lbnRlIGEgdG9kYXMgYXMgRExMcyBu428gZXNwZWNpZmljYWRhcyBleHBsaWNpdGFtZW50ZS4iCiAgICAgICAgICAgICAgICAgICAgLCAgSURDX1NUQVRJQywxNSwxNywyMjgsMzIKICAgIENPTlRST0wgICAgICAgICAiU29icmVlc2NyZXZlciBETExzIiwgSURDX1RSRUVfRExMUywgIlN5c1RyZWVWaWV3MzIiLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgVFZTX0xJTkVTQVRST09UIHwgVFZTX0hBU0xJTkVTIHwgVFZTX1NIT1dTRUxBTFdBWVMgfCBUVlNfSEFTQlVUVE9OUywgMTUsNTAsMTQyLDE4NwogICAgTFRFWFQgICAgICAgICAgICJPcmRlbSBkZSBjYXJnYToiLElEQ19TVEFUSUMsMTYzLDUwLDYwLDgKICAgIENPTlRST0wgICAgICAgICAiQnVpbHRpbiAoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYzLDY1LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIk5hdGl2ZSAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYzLDgwLDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkJ1aWx0aW4sIE5hdGl2ZSIsSURDX1JBRF9CVUlMVElOX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2Myw5NSw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJOYXRpdmUsIEJ1aWx0aW4iLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNjMsMTEwLDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkRlc2FiaWxpdGFkYSIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYzLDEyNSw3NSwxMAogICAgUFVTSEJVVFRPTgkgICAgIkFkaWNpb25hciBhcGxpY2Hn428uLi4iLElEQ19ETExTX0FEREFQUCwxNjMsMTQ0LDgyLDE0CiAgICBQVVNIQlVUVE9OCSAgICAiUmVtb3ZlciBhcGxpY2Hn428iLElEQ19ETExTX1JFTU9WRUFQUCwgMTYzLDE2NCw4MiwxNAogICAgUFVTSEJVVFRPTgkgICAgIkFkaWNpb25hciBjYXJnYSBkZSBETEw6IixJRENfRExMU19BRERETEwsIDE2MywxODQsODIsMTQKICAgIENPTUJPQk9YICAgICAgICBJRENfRExMTElTVCwxNjMsMjA0LDgyLDE0LENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQgfCBDQlNfTE9XRVJDQVNFCiAgICBQVVNIQlVUVE9OCSAgICAiUmVtb3ZlciBjYXJnYSBkZSBETEwiLElEQ19ETExTX1JFTU9WRURMTCwxNjMsMjI0LDgyLDE0CkVORAoKCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ORVVUUkFMCgpJRERfU1lTVEVNQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJVbmlkYWRlcyIsSURDX1NUQVRJQyw4LDQsMjQ0LDEyMAogICAgTElTVEJPWCAgICAgICAgIElEQ19MSVNUX0RSSVZFUywxNSwyMywxNzksOTAsV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICImQWRpY2lvbmFyIixJRENfRFJJVkVfQURELDE5NywyMiw1MCwyMgogICAgUFVTSEJVVFRPTiAgICAgICImUmVtb3ZlciIsSURDX0RSSVZFX1JFTU9WRSwxOTcsNTEsNTAsMjIKICAgIFBVU0hCVVRUT04gICAgICAiJkVkaXRhciIsSURDX0RSSVZFX0VESVQsMTk3LDgwLDUwLDIyCkVORAoKCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19QT1JUVUdVRVNFX0JSQVpJTElBTgoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIk91dHJhcyB1bmlkYWRlcyIsSURDX1NUQVRJQyw3LDEwNywyNDYsMTEyCiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfRFJJVkVTLDE0LDExOCwyMzIsNzYsTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIkFkaWNpb25hci4uLiIsSURDX0JVVFRPTl9BREQsMTQsMTk5LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIlJlbW92ZXIiLElEQ19CVVRUT05fUkVNT1ZFLDU1LDE5OSwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJFZGl0YXIuLi4iLElEQ19CVVRUT05fRURJVCw5NywxOTksMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXV0b2RldGVjdGFyLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk3LDE5OSw0OSwxNAogICAgTFRFWFQJICAgICJBVklTTzogUGFyZWNlIHF1ZSB2b2PqIG7jbyB0ZW0gdW1hIHVuaWRhZGUgQyBkZWZpbmlkYS4gQ2xpcXVlIGVtICdBZGljaW9uYXInIHBhcmEgYWRpY2lvbmFyIHVtYS4iLCBJRFNfRFJJVkVfTk9fQywgNywyMjMsMjUwLDExMApFTkQKCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19QT1JUVUdVRVNFCgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiT3V0cmFzIHVuaWRhZGVzIixJRENfU1RBVElDLDcsMTA3LDI0NiwxMTIKICAgIExJU1RCT1ggICAgICAgICBJRENfTElTVF9EUklWRVMsMTQsMTE4LDIzMiw3NixMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiQWRpY2lvbmFyLi4uIixJRENfQlVUVE9OX0FERCwxNCwxOTksMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiUmVtb3ZlciIsSURDX0JVVFRPTl9SRU1PVkUsNTUsMTk5LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkVkaXRhci4uLiIsSURDX0JVVFRPTl9FRElULDk3LDE5OSwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdXRvZGV0ZWN0YXIuLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxOTcsMTk5LDQ5LDE0CiAgICBMVEVYVAkgICAgIkFWSVNPOiBQYXJlY2UgcXVlIG7jbyB0ZW0gdW1hIHVuaWRhZGUgQyBkZWZpbmlkYS4gQ2xpcXVlIGVtICdBZGljaW9uYXInIHBhcmEgYWRpY2lvbmFyIHVtYS4iLCBJRFNfRFJJVkVfTk9fQywgNywyMjMsMjUwLDExMApFTkQKCgpMQU5HVUFHRSBMQU5HX1BPUlRVR1VFU0UsIFNVQkxBTkdfTkVVVFJBTAoKSUREX0RSSVZFX0VESVQgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyMDMsIDE2OQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJDb25maWd1cmHn428gZGUgdW5pZGFkZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICImT0siLElEX0JVVFRPTl9PSywxNDUsMTUwLDUwLDEzCiAgICBMVEVYVCAgICAgICAgICAgIkxldHJhOiIsSURDX1NUQVRJQyw1LDIzLDI2LDkKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywxMTQsNzgsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiUvN0dWxvOiIsSURDX1NUQVRJQ19MQUJFTCwzMywxMTcsMjksMTIKICAgIExURVhUICAgICAgICAgICAiU+lyaWU6IixJRENfU1RBVElDX1NFUklBTCwzMywxMjcsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMTI0LDc4LDEzLEVTX0FVVE9IU0NST0xMCiAgICBMVEVYVCAgICAgICAgICAgIlRpcG86IixJRENfU1RBVElDLDUsNTQsMjEsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDMxLDUsMTE3LDEzLEVTX0FVVE9IU0NST0xMCiAgICBMVEVYVCAgICAgICAgICAgIkNhbWluaG86IixJRENfU1RBVElDLDUsMTAsMjAsOQogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19MRVRURVIsMzEsMjAsNzcsNjAsQ0JTX0RST1BET1dOTElTVCAgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJQcm9jdXJhci4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwxNTQsNSw0MCwxMwogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDMxLDM2LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCAKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJNb3N0cmFyIEF2YW7nYWRvIixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxMzQsMzQsNjAsMTYKICAgIENPTlRST0wgICAgICAgICAiQXV0b2RldGVjdGFyIGRvIGRpc3Bvc2l0aXZvOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDIxLDc5LDkzLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDMzLDg5LDEwOCwxMyxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICJQcm9jdXJhci4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDE0OCw4OSw0MCwxMwogICAgQ09OVFJPTCAgICAgICAgICJBc3NvY2lhciBtYW51YWxtZW50ZToiLElEQ19SQURJT19BU1NJR04sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDIxLDEwNCw2OSwxMAogICAgR1JPVVBCT1ggICAgICAgICJS83R1bG8gZSBu+m1lcm8gZGUgc+lyaWUiLElEQ19CT1hfTEFCRUxTRVJJQUwsNiw2OCwxODksNzkKCkVORAogCgpMQU5HVUFHRSBMQU5HX1BPUlRVR1VFU0UsIFNVQkxBTkdfREVGQVVMVAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVAkiRHJpdmVyIGRlIOF1ZGlvOiAiLElEQ19TVEFUSUMsMTAsMjAsNjAsOAogICAgQ09NQk9CT1gJSURDX0FVRElPX0RSSVZFUiw3MCwxOCw4NSw4NSxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04JIkF1dG9kZXRlY3RhciIsSURDX0FVRElPX0FVVE9ERVRFQ1QsMTcwLDIwLDQ5LDE0CkVORAoKCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ORVVUUkFMCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRSAKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0dFTkVSQUwgICAgICAgICAiR2VyYWwiCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAiQmlibGlvdGVjYXMiCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiVW5pZGFkZXMiCkVORAo=