LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogR2VybWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDUsIDIwMDYgSGVubmluZyBHZXJoYXJkdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICoKICovCgpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ORVVUUkFMCgpJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiS29uZmlndXJpZXJlbiIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAogICAgTFRFWFQgICAgICAgICAgICJUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxMTksNDQsMTI0LDcyCiAgICBMVEVYVCAgICAgICAgICAgIkRpZXNlIEJpYmxpb3RoZWsgaXN0IGZyZWllIFNvZnR3YXJlOyBTaWUgZPxyZmVuIHNpZSB1bnRlciBkZW4gQmVkaW5ndW5nZW4gZGVyIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2llIHZvbiBkZXIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHZlcvZmZmVudGxpY2h0LCB3ZWl0ZXJ2ZXJ0ZWlsZW4gdW5kL29kZXIgbW9kaWZpemllcmVuOyBlbnR3ZWRlciBnZW3k3yBWZXJzaW9uIDIuMSBkZXIgTGl6ZW56IG9kZXIgKG5hY2ggSWhyZXIgT3B0aW9uKSBqZWRlciBzcOR0ZXJlbiBWZXJzaW9uLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxMTksMTI0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEFud2VuZHVuZ3NlaW5zdGVsbHVuZ2VuICIsSURDX1NUQVRJQywgOCw0LDI0NCwyNTAKICAgIExURVhUICAgICAgICAgICAiV2luZSBrYW5uIGb8ciBqZWRlIEFud2VuZHVuZyBlaW5lIHVudGVyc2NoaWVkbGljaGUgV2luZG93cy1WZXJzaW9uIG5hY2hhaG1lbi4gRGllc2VyIFJlaXRlciBpc3QgbWl0IGRlbiBCaWJsaW90aGVrLSB1bmQgR3JhZmlrLVJlaXRlciB2ZXJrbvxwZnQsIGRhbWl0IGVudHdlZGVyIHN5c3RlbXdlaXRlIG9kZXIgYW53ZW5kdW5nc2FiaORuZ2lnZSBFaW5zdGVsbHVuZ2VuIGluIGRpZXNlbiBSZWl0ZXJuIHZvcmdlbm9tbWVuIHdlcmRlbiBr9m5uZW4uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDE1LDIyNyw0MwogICAgQ09OVFJPTCAgICAgICAgICJBbndlbmR1bmdlbiIsSURDX0FQUF9MSVNUVklFVywiU3lzTGlzdFZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExWU19MSVNUIHwgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTLAogICAgICAgICAgICAgICAgICAgIDE1LDU4LDIzMCwxNTIKICAgIFBVU0hCVVRUT04JICAgICJBbncuICZoaW56dWb8Z2VuIixJRENfQVBQX0FEREFQUCwgOTAsMjE0LDc1LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiQW53LiAmZW50ZmVybmVuIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIxNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICImV2luZG93cyBWZXJzaW9uOiIsSURDX1NUQVRJQywxNywyMzYsNTgsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsODMsMjM0LDE2Myw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgICAgCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBGZW5zdGVyZWluc3RlbGx1bmdlbiAiLElEQ19TVEFUSUMsOCw0LDI0NCwxODAKCiAgICBDT05UUk9MICAgICAgICAgIkRpcmVjdFgtQW53ZW5kdW5nZW4ga/ZubmVuIE1hdXMgZWluZmFuZ2VuIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE0LDIzMCw4CiAgICBDT05UUk9MICAgICAgICAgIkRlc2t0b3AtRG9wcGVscHVmZmVydW5nIGFrdGl2aWVyZW4iLElEQ19ET1VCTEVfQlVGRkVSLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjQsMjMwLDgKICAgIExURVhUICAgICAgICAgICAiV2VubiBkaWUgRmVuc3RlciBkdXJjaCBkZWluZW4gRmVuc3Rlcm1hbmFnZXIga29udHJvbGxpZXJ0IHdlcmRlbiwgZGFubiB3ZXJkZW4gc2llIGRpZSBnbGVpY2hlbiBS5G5kZXIgaGFiZW4sIGRlciBlaW5nZXN0ZWxsdGUgdmlydHVlbGxlIERlc2t0b3Agd2lyZCByZXNwZWt0aWVydCB1bmQgc2llIHdlcmRlbiBpbiBkZXIgRmVuc3Rlcmxpc3RlIGF1ZnRhdWNoZW4uXG5XZW5uIGRpZSBGZW5zdGVyIG5pY2h0IGtvbnRyb2xsaWVydCB3ZXJkZW4sIHdlcmRlbiBzaWUgdW5hYmjkbmdpZyB2b20gdmVyd2VyZGV0ZW4gRmVuc3Rlcm1hbmFnZXIgc2Vpbi4gRGFzIGJlZGV1dGV0LCBkYXNzIGRpZSBGZW5zdGVyIHNpY2ggbmljaHQgYW4gZGVuIERlc2t0b3AgYW5wYXNzZW4gd2VyZGVuLiBEZXIgVm9ydGVpbCBpc3QsIGRhc3MgZGFubiBkaWUgRW11bGF0aW9uIGFra3VyYXRlciBpc3QsIHdhcyBlaW5pZ2VuIEFud2VuZHVuZ2VuIGhpbGZ0LCBiZXNzZXIgenUgYXJiZWl0ZW4uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDM3LDIyOCw4MAogICAgQ09OVFJPTCAgICAgICAgICJFcmxhdWJlIGRlbSBGZW5zdGVybWFuYWdlciBkaWUgRmVuc3RlciB6dSBrb250cm9sbGllcmVuLiIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTExLDIzMCw4CgogICAgTFRFWFQgICAgICAgICAgICJTaWUga/ZubmVuIGVudHdlZGVyIGFsbGUgQW53ZW5kdW5nZW4gYXVmIGVpbmVuICd2aXJ0dWVsbGVuIEJpbGRzY2hpcm0nIGluIGVpbmVtIGVpbnppZ2VuIEZlbnN0ZXIgYmVncmVuemVuLCBvZGVyIFNpZSB2ZXJoYWx0ZW4gc2ljaCB3aWUgSWhyZSBhbmRlcmVuIEFud2VuZHVuZ2VuLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwxMjUsMjI4LDI4CiAgICBDT05UUk9MICAgICAgICAgIkVtdWxpZXJlIGVpbmVuIHZpcnR1ZWxsZW4gQmlsZHNjaGlybSIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTUyLDIzMCwxMAogICAgTFRFWFQgICAgICAgICAgICJEZXNrdG9wLUdy9t9lOiIsSURDX0RFU0tUT1BfU0laRSwxNSwxNjcsNTAsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX1dJRFRILDcwLDE2Nyw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDExNCwxNjcsOCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDEyMywxNjcsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgCiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3QzRCAiLElEQ19TVEFUSUMsOCwxODksMjQ0LDM4CiAgICAKICAgIExURVhUICAgICAgICAgICAiVW50ZXJzdPx0enVuZyBm/HIgVmVydGV4IFNoYWRlcjogIixJRENfU1RBVElDLDE1LDE5OSwxMjAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDE0MCwxOTcsMTA1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBDT05UUk9MICAgICAgICAgIlBpeGVsIFNoYWRlciBha3RpdmllcmVuICh3ZW5uIHZvbiBIYXJkd2FyZSB1bnRlcnN0/HR6dCkiLCBJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIxMiwyMzAsMTAKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBETEwg3GJlcnNjaHJlaWJ1bmcgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIkRMTHMgKER5bmFtaWMgTGluayBMaWJyYXJpZXMpIGv2bm5lbiBlaW56ZWxuIGVpbmdlc3RlbGx0IHdlcmRlbiwgZW50d2VkZXIgQnVpbHRpbiAoZ2VzdGVsbHQgZHVyY2ggV2luZSkgb2RlciBOYXRpdmUgKHZvbiBXaW5kb3dzIG9kZXIgZHVyY2ggZGllIEFud2VuZHVuZyBnZXN0ZWxsdCkuIgogICAgICAgICAgICAgICAgICAgICwgIElEQ19TVEFUSUMsMTUsMTcsMjI4LDMyCiAgICBMVEVYVCAgICAgICAgICAgIk5ldWUg3GJlcnNjaHJlaWJ1bmcgZvxyOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiJkhpbnp1ZvxnZW4gIixJRENfRExMU19BRERETEwsIDE2NCw2OCw4MiwxMyxCU19ERUZQVVNIQlVUVE9OIAogICAgTFRFWFQgICAgICAgICAgICJCZXN0ZWhlbmRlINxiZXJzY2hyZWlidW5nZW46IixJRENfU1RBVElDLDE2LDg2LDEwMCw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX0RMTFNfTElTVCwxNiw5NiwxNDAsMTQwLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19WU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIiZCZWFyYmVpdGVuIixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICImRW50ZmVybmVuIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDExMCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkJlYXJiZWl0ZSDcYmVyc2NocmVpYnVuZyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgTGFkZXJlaWhlbmZvbGdlICIsSURDX1NUQVRJQyw4LDQsOTQsNjYKICAgIENPTlRST0wgICAgICAgICAiJkJ1aWx0aW4gKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2LDE0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZOYXRpdmUgKFdpbmRvd3MpIixJRENfUkFEX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkJ1aSZsdGluIGRhbm4gTmF0aXZlIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiTmF0aSZ2ZSBkYW5uIEJ1aWx0aW4iLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImQXVzc2NoYWx0ZW4iLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDc1LDEwCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDgsNzQsNDUsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiQWJicmVjaGVuIixJRENBTkNFTCw1Nyw3NCw0NSwxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgTGF1ZndlcmtzenVvcmRudW5nICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfRFJJVkVTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDE4LDIzMiw3NgogICAgUFVTSEJVVFRPTiAgICAgICImSGluenVm/GdlbiIsSURDX0JVVFRPTl9BREQsMTUsOTgsNDEsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkVudGZlcm5lbiIsSURDX0JVVFRPTl9SRU1PVkUsNjAsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkF1dG9tYXRpc2NoIiwgSURDX0JVVFRPTl9BVVRPREVURUNULDE5Nyw5OCw0OSwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICImUGZhZDoiLElEQ19TVEFUSUMsMTUsMTIzLDIwLDkKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDQxLDEyMCwxNTUsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIiZEdXJjaHN1Y2hlbiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwyMDEsMTIwLDQ1LDEzCgogICAgTFRFWFQgICAgICAgICAgICImVHlwOiIsSURDX1NUQVRJQ19UWVBFLDE0LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBMVEVYVCAgICAgICAgICAgIkJlemVpY2hudW5nIHVuZCBTZXJpZW5udW1tZXIiLElEQ19MQUJFTFNFUklBTF9TVEFUSUMsMTUsMTU1LDEyNSwxMAoKICAgIFBVU0hCVVRUT04gICAgICAiJlplaWdlIEVyd2VpdGVydCIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTc4LDEzNiw2OCwxMwogICAgQ09OVFJPTCAgICAgICAgICJBdXRvbWF0aXNjaCAmdm9tIEdlcuR0OiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTY5LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIkR1cmNoJnN1Y2hlbiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDIwMSwxNzYsNDUsMTMKICAgIENPTlRST0wgICAgICAgICAiJk1hbnVlbGxlcyAgWnV3ZWlzZW46IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNzksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIiZCZXplaWNobnVuZzoiLElEQ19TVEFUSUNfTEFCRUwsMzMsMjA4LDQxLDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsNzgsMjA1LDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTJmVyaWVubnI6IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsNDEsMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNzgsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiWmVpZ2UgRG90LURhdGVpZW4gYW4iLElEQ19TSE9XX0RPVF9GSUxFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDgsMjYwLDIzMCw4CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBUcmVpYmVyIEF1c3dhaGwgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIlfkaGxlbiBTaWUgZWluZW4gU291bmQtVHJlaWJlciBkdXJjaCBhbmtyZXV6ZW4gZGVzIGdld/xuc2NodGVuIFRyZWliZXJzLiBJc3Qga2VpbiBUcmVpYmVyIGF1c2dld+RobHQsIHdpcmQgZGVyIFNvdW5kIGRlYWt0aXZpZXJ0LiBEaWUgQXVzd2FobCBtZWhyZXJlciBUcmVpYmVyIGlzdCBuaWNodCBlbXBmb2hsZW4uIEVpbiBUcmVpYmVyIGthbm4gZHVyY2ggUmVjaHRza2xpY2tlbiBrb25maWd1cmllcnQgd2VyZGVuLiIsSURDX1NUQVRJQywxNSwxNSwyMjcsMzUKICAgIENPTlRST0wgICAgICAgICAiR2Vy5HRlIixJRENfQVVESU9fVFJFRSwiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwxNSw1MCwxNDAsMTQwCiAgICBQVVNIQlVUVE9OICAgICAgIkVpbnN0ZWxsdW5nZW4iLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE3MCw1MCw1OSwxNAogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0U291bmQgIixJRENfU1RBVElDLDgsMjA1LDI0NCw2MCAgICAKICAgIExURVhUICAgICAgICAgICAiSGFyZHdhcmUtQmVzY2hsZXVuaWd1bmc6ICIsIElEQ19TVEFUSUMsMTUsMjE1LDkwLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9IV19BQ0NFTCwxMDUsMjEzLDE0MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiQWJ0YXN0cmF0ZToiLElEQ19TVEFUSUMsMTUsMjMyLDcwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDkwLDIzMCw0Miw3NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiQml0cyBwcm8gQWJ0YXN0dW5nOiIsSURDX1NUQVRJQywxMzcsMjMyLDgwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0JJVFMsMjIwLDIzMCwzMCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICAgICAiVHJlaWJlci1FbXVsYXRpb24iLElEQ19EU09VTkRfRFJWX0VNVUwsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyNTAsMjMwLDEwCkVORAoKSUREX0RFU0tUT1BfSU5URUdSQVRJT04gRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgR1JPVVBCT1ggICAgICAgICIgRGFyc3RlbGx1bmcgIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgIExURVhUICAgICAgICAgICAiTW90aXY6IixJRENfU1RBVElDLDE1LDE2LDIzMCw4CiAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwyMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgIFBVU0hCVVRUT04gICAgICAiTW90aXYgaW5zdGFsbGllcmVuLi4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMzgsOTMsMTQKICAgTFRFWFQgICAgICAgICAgICJGYXJiZToiLElEQ19USEVNRV9DT0xPUlRFWFQsMTUsNTQsMjMwLDgKICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9DT0xPUkNPTUJPLDE1LDYyLDIzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgTFRFWFQgICAgICAgICAgICJHcvbfZToiLElEQ19USEVNRV9TSVpFVEVYVCwxNSw4MCwyMzAsOAogICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxNSw4OCwyMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgIEdST1VQQk9YICAgICAgICAiIFNoZWxsLU9yZG5lciAiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDEyNiwyMzAsNjQKICAgQ09OVFJPTCAgICAgICAgICJWZXJrbvxwZmU6IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDUwLDEzCiAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICBQVVNIQlVUVE9OICAgICAgIlfkaGxlbiIsSURDX0JST1dTRV9TRlBBVEgsMjE1LDE5NSwzMCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfV0lORV9WRVJTSU9OICAgICAgICAiQ1ZTIgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIkFud2VuZHVuZ2VuIgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIkJpYmxpb3RoZWtlbiIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICJMYXVmd2Vya2UiCiAgICBJRFNfQ0hPT1NFX1BBVEggICAgICAgICAiQml0dGUgd+RobGVuIFNpZSBkYXMgWmllbC1Vbml4LVZlcnplaWNobmlzLiIKICAgIElEU19ISURFX0FEVkFOQ0VEICAgICAgICJWZXJzdGVja2UgRXJ3ZWl0ZXJ0IgogICAgSURTX1NIT1dfQURWQU5DRUQgICAgICAgIlplaWdlIEVyd2VpdGVydCIKICAgIElEU19OT1RIRU1FICAgICAgICAgICAgICIoS2VpbiBNb3RpdikiCiAgICBJRFNfVEFCX0dSQVBISUNTICAgICAgICAiR3JhZmlrIgogICAgSURTX1RBQl9ERVNLVE9QX0lOVEVHUkFUSU9OICJEZXNrdG9wLUludGVncmF0aW9uIgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIkF1ZGlvIgogICAgSURTX1RBQl9BQk9VVCAgICAgICAgICAgItxiZXIiCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAiV2luZS1Lb25maWd1cmF0aW9uIgogICAgSURTX1dJTkVDRkdfVElUTEVfQVBQICAgIldpbmUtS29uZmlndXJhdGlvbiBm/HIgJXMiCiAgICBJRFNfVEhFTUVGSUxFICAgICAgICAgICAiTW90aXYtRGF0ZWllbiIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICJNb3Rpdi1EYXRlaSBhdXN35GhsZW4iCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAiWnVyIFplaXQgaXN0IGtlaW4gQXVkaW8gVHJlaWJlciBpbiBkZXIgUmVnaXN0cnkgZWluZ2V0cmFnZW4uXG5cbkVpbiBiZXZvcnp1Z3RlciBUcmVpYmVyIHd1cmRlIGb8ciBTaWUgYXVzZ2V35GhsdC5cblNpZSBr9m5uZW4gZGllc2VuIFRyZWliZXIgbnV0emVuIG9kZXIgZWluZW4gYW5kZXJlbiB2ZXJm/GdiYXJlbiBUcmVpYmVyIGF1c3fkaGxlbi5cblxuU2llIG38c3NlbiBhdWYgQW53ZW5kZW4ga2xpY2tlbiwgZGFtaXQgZGllIMRuZGVydW5nIPxiZXJub21tZW4gd2lyZC4iCiAgICBJRFNfU0hFTExfRk9MREVSICAgICAgICAiU2hlbGwtT3JkbmVyIgogICAgSURTX0xJTktTX1RPICAgICAgICAgICAgIlZlcmtu/HBmdCBtaXQiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICJEYXMgxG5kZXJuIGRlciBMYWRlcmVpaGVuZm9sZ2UgZGllc2VyIEJpYmxpb3RoZWsgd2lyZCBuaWNodCBlbXBmb2hsZW4uXG5TaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgZGllcyBt9mNodGVuPyIKICAgIElEU19ETExfV0FSTklOR19DQVBUSU9OICJBY2h0dW5nOiBTeXN0ZW1iaWJsaW90aGVrIgogICAgSURTX0RMTF9OQVRJVkUgICAgICAgICAgIk5hdGl2ZSAoV2luZG93cykiCiAgICBJRFNfRExMX0JVSUxUSU4gICAgICAgICAiQnVpbHRpbiAoV2luZSkiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAiTmF0aXZlLCBCdWlsdGluIgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgIkJ1aWx0aW4sIE5hdGl2ZSIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICJhdXNnZXNjaGFsdGV0IgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgIlN0YW5kYXJkZWluc3RlbGx1bmdlbiIKICAgIElEU19FWEVDVVRBQkxFX0ZJTFRFUiAgICJXaW5lLVByb2dyYW1tZSAoKi5leGUsKi5leGUuc28pXDAqLmV4ZTsqLmV4ZS5zb1wwIgogICAgSURTX1VTRV9HTE9CQUxfU0VUVElOR1MgIkdsb2JhbGUgRWluc3RlbGx1bmcgYmVudXR6ZW4iCiAgICBJRFNfU0VMRUNUX0VYRUNVVEFCTEUgICAiQXVzZvxocmJhcmVzIFByb2dyYW1tIGF1c3fkaGxlbiIKRU5EIAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19TSEFERVJfTU9ERV9IQVJEV0FSRSAgICAiSGFyZHdhcmUiCiAgICBJRFNfU0hBREVSX01PREVfTk9ORSAgICAgICAgIkF1cyIKICAgIElEU19TSEFERVJfTU9ERV9FTVVMQVRJT04gICAiRW11bGllcnQiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19EUklWRV9VTktOT1dOICAgICAgICAgICAiQXV0b21hdGlzY2giCiAgICBJRFNfRFJJVkVfRklYRUQgICAgICAgICAgICAgIkxva2FsZSBGZXN0cGxhdHRlIgogICAgSURTX0RSSVZFX1JFTU9URSAgICAgICAgICAgICJOZXR6d2Vya2ZyZWlnYWJlIgogICAgSURTX0RSSVZFX1JFTU9WQUJMRSAgICAgICAgICJEaXNrZXR0ZSIKICAgIElEU19EUklWRV9DRFJPTSAgICAgICAgICAgICAiQ0QtUk9NIgogICAgSURTX0RSSVZFX0xFVFRFUlNfRVhDRUVERUQgICJTaWUga/ZubmVuIGtlaW5lIHdlaXRlcmVuIExhdWZ3ZXJrZSBtZWhyIGhpbnp1ZvxnZW4uXG5cbkplZGVzIExhdWZ3ZXJrIG11c3MgZWluZW4gQnVjaHN0YWJlbiBiZXNpdHplbiwgdm9uIEEgYmlzIFosIGRlc2hhbGIga/ZubmVuIFNpZSBuaWNodCBtZWhyIGFscyAyNiBoYWJlbi4iCiAgICBJRFNfU1lTVEVNX0RSSVZFX0xBQkVMICAgICAgIlN5c3RlbWxhdWZ3ZXJrIgogICAgSURTX0NPTkZJUk1fREVMRVRFX0MgICAgICAgICJTaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgTGF1ZndlcmsgQyBlbnRmZXJuZW4gbfZjaHRlbj9cblxuRGllIG1laXN0ZW4gV2luZG93cy1BbndlbmR1bmdlbiBlcndhcnRlbiwgZGFzcyBlaW4gTGF1ZndlcmsgQyBleGlzdGllcnQgdW5kIGZ1bmt0aW9uaWVyZW4gb2huZSBuaWNodCByaWNodGlnLiBXZW5uIFNpZSBmb3J0ZmFocmVuLCB2ZXJnZXNzZW4gU2llIG5pY2h0LCBMYXVmd2VyayBDIG5ldSB6dSBlcnN0ZWxsZW4hIgogICAgSURTX0NPTF9EUklWRUxFVFRFUiAgICAgICAgICJCdWNoc3QuIgogICAgSURTX0NPTF9EUklWRU1BUFBJTkcgICAgICAgICJadW9yZG51bmciCiAgICBJRFNfTk9fRFJJVkVfQyAgICAgICAgICAgICAgIlNpZSBoYWJlbiBrZWluIExhdWZ3ZXJrIEMuIERhcyBpc3QgbmljaHQgc28gZ3V0LlxuXG5WZXJnZXNzZW4gU2llIG5pY2h0LCBpbSBMYXVmd2Vya2UtUmVpdGVyIIRIaW56dWb8Z2VukyB6dSBrbGlja2VuIHVtIGVpbnMgenUgZXJzdGVsbGVuIVxuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIlZvbGwiCiAgICBJRFNfQUNDRUxfU1RBTkRBUkQgICAgICAgICAgIlN0YW5kYXJkIgogICAgSURTX0FDQ0VMX0JBU0lDICAgICAgICAgICAgICJFaW5mYWNoIgogICAgSURTX0FDQ0VMX0VNVUxBVElPTiAgICAgICAgICJFbXVsYXRpb24iCiAgICBJRFNfRFJJVkVSX0FMU0EgICAgICAgICAgICAgIkFMU0EtVHJlaWJlciIKICAgIElEU19EUklWRVJfQVJUUyAgICAgICAgICAgICAiYVJ0cy1UcmVpYmVyIgogICAgSURTX0RSSVZFUl9FU09VTkQgICAgICAgICAgICJFc291bkQtVHJlaWJlciIKICAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTLVRyZWliZXIiCiAgICBJRFNfRFJJVkVSX0pBQ0sgICAgICAgICAgICAgIkpBQ0stVHJlaWJlciIKICAgIElEU19EUklWRVJfTkFTICAgICAgICAgICAgICAiTkFTLVRyZWliZXIiCiAgICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvLUlPLVRyZWliZXIgKFNvbGFyaXMpIgogICAgSURTX0RSSVZFUl9DT1JFQVVESU8gICAgICAgICJDb3JlQXVkaW8tVHJlaWJlciIKICAgIElEU19PUEVOX0RSSVZFUl9FUlJPUiAgICAgICAiS29ubnRlICVzIG5pY2h0IPZmZm5lbiEiCiAgICBJRFNfU09VTkREUklWRVJTICAgICAgICAgICAgIlNvdW5kX1RyZWliZXIiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgIldhdmUtQXVzZ2FiZS1HZXLkdGUiCiAgICBJRFNfREVWSUNFU19XQVZFSU4gICAgICAgICAgIldhdmUtRWluZ2FiZS1HZXLkdGUiCiAgICBJRFNfREVWSUNFU19NSURJT1VUICAgICAgICAgIk1JREktQXVzZ2FiZS1HZXLkdGUiCiAgICBJRFNfREVWSUNFU19NSURJSU4gICAgICAgICAgIk1JREktQXVzZ2FiZS1HZXLkdGUiCiAgICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIkF1eC1HZXLkdGUiCiAgICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgIk1peGVyLUdlcuR0ZSIKICAgIElEU19VTkFWQUlMQUJMRV9EUklWRVIgICAgICAiSW4gZGVyIFJlZ2lzdHJ5IHd1cmRlIGVpbiBUcmVpYmVyIGdlZnVuZGVuLCBkZXIgbmljaHQgdmVyZvxnYmFyIGlzdCFcblxuU29sbCCEJXOTIGF1cyBkZXIgUmVnaXN0cnkgZW50ZmVybnQgd2VyZGVuPyIKICAgIElEU19XQVJOSU5HICAgICAgICAgICAgICAgICAiV2FybnVuZyIKRU5ECg==