LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogRGFuaXNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDggSmVucyBBbGJyZXRzZW4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqCiAqLwoKTEFOR1VBR0UgTEFOR19EQU5JU0gsIFNVQkxBTkdfREVGQVVMVAoKSURSX1dJTkVDRkcgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIktvbmZpZ3Vy6XIiLCBJRENfQVVESU9fQ09ORklHVVJFCiAgICBFTkQKRU5ECgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNzAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HLElEQ19TVEFUSUMsMTE5LDE3LDEyMCw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgLDE1LDE3LDE1NywxMTEKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKICAgIExURVhUICAgICAgICAgICAiRGV0dGUgYmlibGlvdGVrIGVyIGZyaSBzb2Z0d2FyZTsgZHUgbeUgcmUtZGlzdHJpYnVlcmUgZGV0IG9nL2VsbGVyIG1vZGlmaWNlcmUgZGV0IHVuZGVyIGJldGluZ2Vsc2VybmUgZ2l2ZXQgaSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ugc29tICBwdWJsaWNlcmV0IGFmIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZW50ZW4gdmVyc2lvbiAyLjEsIGVsbGVyIChlZnRlciBkaXQgdmFsZykgZW4gc2VuZXJlIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBQcm9ncmFtIGluZHN0aWxsaW5nZXIgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lIGthbiBlZnRlcmxpZ25lIGZvcnNrZWxsaWdlIHZlcnNpb25lciBhZiBXaW5kb3dzIGZvciBodmVydCBwcm9ncmFtLiAgVGFiYmVuIGjmbmdlciBzYW1tZW4gbWVkIEJpYmxpb3Rla2VyIG9nIEdyYWZpayB0YWJiZW5lIGZvciBhdCB0aWxsYWRlIOZuZHJpbmcgYWYgc3lzdGVtIGVsbGVyIHBlciBwcm9ncmFtIGluZHN0aWxsaW5nZXIuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9ncmFtbWVyIixJRENfQVBQX0xJU1RWSUVXLCJTeXNMaXN0VmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTFZTX0xJU1QgfCBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMsCiAgICAgICAgICAgICAgICAgICAgMTUsNTAsMjMwLDE1MAogICAgUFVTSEJVVFRPTgkgICAgIiZUaWxm+CBwcm9ncmFtLi4uIixJRENfQVBQX0FEREFQUCwgOTAsMjA0LDc1LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiJkZqZXJuIHByb2dyYW0iLElEQ19BUFBfUkVNT1ZFQVBQLCAxNzAsMjA0LDc1LDE0CiAgICBMVEVYVCAgICAgICAgICAgIiZXaW5kb3dzIHZlcnNpb246IixJRENfU1RBVElDLDE3LDIyNiw1OCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMjQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUApFTkQKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgIiBWaW5kdWVzIGluZHN0aWxsaW5nZXIgIixJRENfU1RBVElDLDgsNCwyNDQsODQKICAgIENPTlRST0wgICAgICJUaWxsYWQgRGlyZWN0WCBwcm9ncmFtbWVyIGF0IHN0b3BwZSAmbXVzZW4gaSBhdCBmb3JsYWRlIGRlcmVzIHZpbmR1ZSIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMCwyMzAsOAogICAgQ09OVFJPTCAgICAgIlRpbGxhZCB2aW5kdWVzIG1hbmFnZXJlbiBhdCAmZGVrb3JlcmUgdmluZHVlcm5lIixJRENfRU5BQkxFX0RFQ09SQVRFRCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDMyLDIzMCw4CiAgICBDT05UUk9MICAgICAiVGlsbGFkIHZpbmR1ZXMgbWFuYWdlcmVuIGF0IHN0eXJlIHZpbmR1ZXJuZSIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDQsMjMwLDgKICAgIENPTlRST0wgICAgICJFbXVs6XIgZXQgdmlydHVlbCAmc2tyaXZlYm9yZCIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw1NiwyMzAsOAogICAgTFRFWFQgICAgICAgIlNrcml2ZWJvcmRzICZzdPhycmVsc2U6IixJRENfREVTS1RPUF9TSVpFLDE1LDcwLDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDksNzAsOCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9XSURUSCw2NCw2OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAiIERpcmVjdDNEICIsSURDX1NUQVRJQyw4LDk1LDI0NCw0OQogICAgTFRFWFQgICAgICAgIiZWZXJ0ZXhzaGFkZXIgdW5kZXJzdPh0dGVsc2U6ICIsSURDX1NUQVRJQywxNSwxMTAsMTAwLDMyCiAgICBDT01CT0JPWCAgICBJRENfRDNEX1ZTSEFERVJfTU9ERSwxMjAsMTA4LDEyNSw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICJUaWxsYWQgJlBpeGVsc2hhZGVyIChodmlzIGRldCBlciB1bmRlcnN0+HR0ZXQgYWYgaGFyZHdhcmUpIixJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEyNiwyMzAsMTAKCiAgICBHUk9VUEJPWCAgICAiIFNr5nJtICZPcGz4c25pbmcgIixJRENfU1RBVElDLDgsMTUxLDI0NCw5MwogICAgQ09OVFJPTCAgICAgIiIsIElEQ19SRVNfVFJBQ0tCQVIsICJtc2N0bHNfdHJhY2tiYXIzMiIsV1NfVEFCU1RPUCwxMiwxNjEsMTg3LDE1CiAgICBFRElUVEVYVCAgICBJRENfUkVTX0RQSUVESVQsMjA0LDE2MSwyMywxMyxFU19OVU1CRVJ8V1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgImRwaSIsSURDX1NUQVRJQywyMzUsMTYzLDEwLDgKICAgIExURVhUICAgICAgICJEZXR0ZSBlciBlbiBla3NlbXBlbCB0ZWtzdCBtZWQgMTAgcHVua3RzIFRhaG9tYSIsSURDX1JFU19GT05UX1BSRVZJRVcsMTUsMTgxLDIzMCw1NQpFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCBwcmlvcml0ZXR0ZXIiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiRHluYW1pc2tlIExpbmsgQmlibGlvdGVrZXIga2FuIHNwZWNpZmljZXJlcyBpbmRpdmlkdWVsdCBmb3IgZW50ZW4gaW5kYnlnZ2V0IChmcmEgV2luZSkgZWxsZXIgaW5kZvhkdCAodGFnZXQgZnJhIFdpbmRvd3MgZWxsZXIgcHJvZ3JhbSkuIgogICAgICAgICAgICAgICAgICAgICxJRENfU1RBVElDLDE2LDE2LDIyMCwzMgogICAgTFRFWFQgICAgICAgICAgICImTnllIHByaW9yaXRldHRlciBmb3IgYmlibGlvdGVrOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiJlRpbGb4aiIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTgogICAgTFRFWFQgICAgICAgICAgICJFa3Npc3RlcmVuZGUgaW5kbOZzbmluZ3MgJnByaW9yaXRldHRlcjoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJkVkaXTpciIsSURDX0RMTFNfRURJVERMTCwxNjQsOTYsODIsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkZqZXJuIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTEwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRWRpdOlyIGluZGzmc25pbmdzIHByaW9yaXRldCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgSW5kbOZzbmluZ3MgcuZra2Vm+GxnZSAiLElEQ19TVEFUSUMsOCw0LDk0LDY2CiAgICBDT05UUk9MICAgICAgICAgIkluZCZieWdnZXQgKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2LDE0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkluZCZm+GR0IChXaW5kb3dzKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJJbmRiJnlnZ2V0IGRlcmVmdGVyIGluZGb4ZHQiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJJJm5kZvhkdCBkZXJlZnRlciBpbmRieWdnZXQiLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImRGlzYWJsZSIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsNzUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssOCw3NCw0NSwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJBbm51bGxlciIsSURDQU5DRUwsNTcsNzQsNDUsMTQsV1NfR1JPVVAKRU5ECgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEVuaGVkc292ZXJz5nR0ZWxzZSAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiJlRpbGb4ai4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkZqZXJuIixJRENfQlVUVE9OX1JFTU9WRSw1Niw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdXRvJmRldGVrdGVyLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTg3LDk4LDU5LDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIiZTdGk6IixJRENfU1RBVElDLDE1LDEyMywyMCw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCw0MSwxMjAsMTUwLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImR2VubmVtc2UuLi4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMTk2LDEyMCw1MCwxMwoKICAgIExURVhUICAgICAgICAgICAiVCZ5cGU6IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDEsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIExURVhUICAgICAgICAgICAiTGFiZWwgYW5kIHNlcmllbCBudW1tZXIiLElEQ19MQUJFTFNFUklBTF9TVEFUSUMsMTUsMTU1LDk1LDEwCgogICAgUFVTSEJVVFRPTiAgICAgICJWaXMgJmFkdmFuY2VyZXQiLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDE4NiwxMzYsNjAsMTMKICAgIENPTlRST0wgICAgICAgICAiQSZ1dG9kZXRla3QgZnJhIGVuaGVkOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTY0LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIkcmZW5uZW1zZS4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDE5NiwxNzYsNTAsMTMKICAgIENPTlRST0wgICAgICAgICAiJkluZHN0aWwgbWFudWVsdDoiLElEQ19SQURJT19BU1NJR04sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE5NSw2OSwxMAoKICAgIExURVhUICAgICAgICAgICAiJkxhYmVsOiIsSURDX1NUQVRJQ19MQUJFTCwzMywyMDgsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywyMDUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlNlJnJpZWw6IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiVmlzICZwdW5rdHVtIGZpbGVyIixJRENfU0hPV19ET1RfRklMRVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw4LDI2MCwyMzAsOApFTkQKCklERF9BVURJT0NGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgRHJpdmVyIHZhbGcgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIlbmbGcgZW4gbHlkIGRyaXZlciB2ZWQgYXQgYWZrcnlkc2UgZGVuIPhuc2tlZGUgZHJpdmVyLiAgU2zlIGx5ZGVuIGZyYSB2ZWQgYXQgZnJhduZsZ2UgYWxsZSBkcml2ZXJlLiBWYWxnIGFmIGZsZXJlIGRyaXZlcmUgZXIgaWtrZSByZWtvbW1lbmRlcmV0LiBLb25maWd1culyIGRyaXZlciB2ZWQgYXQgaPhqcmUga2xpa2tlIHDlIGRlbi4iLElEQ19TVEFUSUMsMTUsMjAsMjI3LDMwCiAgICBDT05UUk9MICAgICAgICAgIkVuaGVkZXIiLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDUwLDE0MCwxNDAKICAgIFBVU0hCVVRUT04gICAgICAiJlRlc3QgbHlkIixJRENfQVVESU9fVEVTVCwxNzAsNTAsNTksMTQKICAgIFBVU0hCVVRUT04JICAgICImS29udHJvbCBwYW5lbCIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDcwLDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwCiAgICBMVEVYVAkgICAgIiZIYXJkd2FyZSBBY2NlbGVyZXJpbmc6ICIsSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwyMTMsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTdGQuIHNhbXBsZSAmZnJla3ZlbnM6IixJRENfU1RBVElDLDE1LDIzMiw3MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9SQVRFUyw5MCwyMzAsNDIsNzYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlN0ZC4gJmJpdHMgcHIuIHNhbXBsZToiLElEQ19TVEFUSUMsMTM3LDIzMiw4MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIyMCwyMzAsMzAsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgIkRyaXZlciAmZW11bOlyaW5nIixJRENfRFNPVU5EX0RSVl9FTVVMLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjUwLDIzMCwxMApFTkQKCklERF9ERVNLVE9QX0lOVEVHUkFUSU9OIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBVZHNlZW5kZSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAiJlRlbWE6IixJRENfU1RBVElDLDE1LDE2LDEzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1RIRU1FQ09NQk8sMTUsMjQsMTMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImSW5zdGFsbGVyIHRlbWEuLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwyMyw5MywxNAogICAgTFRFWFQgICAgICAgICAgICImRmFydmU6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImU3T4cnJlbHNlOiIsSURDX1RIRU1FX1NJWkVURVhULDEzNSw0MCwxMTAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTM1LDQ4LDExMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJkVsZW1lbnQ6IixJRENfU1RBVElDLDE1LDY0LDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1NZU1BBUkFNX0NPTUJPLDE1LDc0LDExMiwxMjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQKICAgIExURVhUICAgICAgICAgICAiRiZhcnZlOiIsSURDX1NZU1BBUkFNX0NPTE9SX1RFWFQsMTM1LDY0LDI1LDgsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiIixJRENfU1lTUEFSQU1fQ09MT1IsMTM1LDc0LDI1LDEzLFdTX0RJU0FCTEVEIHwgQlNfT1dORVJEUkFXCiAgICBMVEVYVCAgICAgICAgICAgIlMmdPhycmVsc2U6IixJRENfU1lTUEFSQU1fU0laRV9URVhULDE2Niw2NCwzMCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX1NZU1BBUkFNX1NJWkUsMTY2LDc0LDIzLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1NZU1BBUkFNX1NJWkVfVUQsVVBET1dOX0NMQVNTLFVEU19TRVRCVUREWUlOVCB8IFdTX0RJU0FCTEVELDE4Nyw3NCwxNSwxMwogICAgUFVTSEJVVFRPTiAgICAgICImRm9udCIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiBTJmhlbGwgRm9sZGVyICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIiZMaW5rIHRvOiIsSURDX0xJTktfU0ZQQVRILCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QfFdTX0RJU0FCTEVELDE1LDE5NSw1MCwxMwogICAgRURJVFRFWFQgICAgICAgICBJRENfRURJVF9TRlBBVEgsNjUsMTk1LDE0NSwxMyxFU19BVVRPSFNDUk9MTHxXU19UQUJTVE9QfFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIiZHZW5uZW1zZSIsSURDX0JST1dTRV9TRlBBVEgsMjE1LDE5NSwzMCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiUHJvZ3JhbW1lciIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICJCaWJsaW90ZWtlciIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICJFbmhlZGVyIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIlbmbGcgdmVubGlnaHQgZW4gdW5peCBmb2xkZXIuIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgIkdlbSAmYWR2YW5jZXJldCIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICJWaXMgJmFkdmFuY2VyZXQiCiAgICBJRFNfTk9USEVNRSAgICAgICAgICAgICAiKEludGV0IHRlbWEpIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIkdyYWZpayIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAiRGVza3RvcCBpbnRlZ3JlcmluZyIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICJMeWQiCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiT20iCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAiV2luZSBjb25maWd1cmVyaW5nIgogICAgSURTX1dJTkVDRkdfVElUTEVfQVBQICAgIldpbmUgY29uZmlndXJlcmluZyBmb3IgJXMiCiAgICBJRFNfVEhFTUVGSUxFICAgICAgICAgICAiVGVtYSBmaWxlciIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICJW5mxnIGVuIHRlbWEgZmlsIgogICAgSURTX0FVRElPX01JU1NJTkcgICAgICAgIkRlciBlciBpa2tlIG5vZ2VuIGx5ZCBkcml2ZXIgdmFsZ3QgaSByZWdpc3RyaW5ncyBkYXRhYmFzZW4uXG5cbkVuIHJla29tbWVuZGVyZXQgZHJpdmVyIGVyIGJsZXZldCB2YWxndCBmb3IgZGlnLlxuRHUga2FuIGJydWdlIGRlbm5lIGRyaXZlciBlbGxlciB25mxnZSBlbiBhbmRlbi5cbkR1IHNrYWwga2xpa2tlIGFudmVuZCBmb3IgYXQgdmFsZ2V0IGJsaXZlciB0YWdldCBpIGJydWcuIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIlNoZWxsIGZvbGRlciIKICAgIElEU19MSU5LU19UTyAgICAgICAgICAgICJMaW5rcyB0byIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0RMTF9XQVJOSU5HICAgICAgICAgIkF0IOZuZHJlIGluZGzmc25pbmdzIHLma2tlZvhsZ2UgYWYgZGV0dGUgYmlibGlvdGVrIGVyIGlra2UgcmVjb21tZW5kZXJldC5cbkVyIGR1IHNpa2tlciBw5SBhdCBkdSB2aWwgZ/hyZSBkZXR0ZT8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAiQWR2YXJzZWw6IHN5c3RlbSBiaWJsaW90ZWsiCiAgICBJRFNfRExMX05BVElWRSAgICAgICAgICAiaW5kZvhkdCIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICJpbmRieWdnZXQiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAiaW5kZvhkdCwgaW5kYnlnZ2V0IgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgImluZGJ5Z2dldCwgaW5kZvhkdCIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICJkaXNhYmxlZCIKICAgIElEU19ERUZBVUxUX1NFVFRJTkdTICAgICJTdGFuZGFyZCBpbmRzdGlsbGluZ2VyIgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgIldpbmUgcHJvZ3JhbW1lciAoKi5leGUsKi5leGUuc28pXDAqLmV4ZTsqLmV4ZS5zb1wwIgogICAgSURTX1VTRV9HTE9CQUxfU0VUVElOR1MgIkJydWcgZ2xvYmFsZSBpbmRzdGlsbGluZ2VyIgogICAgSURTX1NFTEVDVF9FWEVDVVRBQkxFICAgIlbmbGcgZW4gcHJvZ3JhbSBmaWwiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19TSEFERVJfTU9ERV9IQVJEV0FSRSAgICAiSGFyZHdhcmUiCiAgICBJRFNfU0hBREVSX01PREVfTk9ORSAgICAgICAgIkluZ2VuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRFJJVkVfVU5LTk9XTiAgICAgICAgICAgIkF1dG9kZXRla3RlciIKICAgIElEU19EUklWRV9GSVhFRCAgICAgICAgICAgICAiTG9rYWwgaGFyZGRpc2siCiAgICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgIk5ldHdvcmtyZXNvdXJzZSIKICAgIElEU19EUklWRV9SRU1PVkFCTEUgICAgICAgICAiRGlza2V0dGVkcmV2IgogICAgSURTX0RSSVZFX0NEUk9NICAgICAgICAgICAgICJDRC1ST00iCiAgICBJRFNfRFJJVkVfTEVUVEVSU19FWENFRURFRCAgIkR1IGthbiBpa2tlIHRpbGb4amUgZmxlcmUgZHJldi5cblxuSHZlcnQgZHJldiBza2FsIGhhdmUgZXQgYm9nc3RhdiwgZnJhIEEgdG8gWiwgc+UgZHUga2FuIGlra2UgaGF2ZSBtZXJlIGVuZCAyNi4iCiAgICBJRFNfU1lTVEVNX0RSSVZFX0xBQkVMICAgICAgIlN5c3RlbWRyZXYiCiAgICBJRFNfQ09ORklSTV9ERUxFVEVfQyAgICAgICAgIkVyIGR1IHNpa2tlciBw5SBhdCBkdSB2aWwgc2xldHRlIEMgZHJldmVyP1xuXG5EZSBmbGVzdGUgV2luZG93cyBwcm9ncmFtbWVyIHJlZ25lciBtZWQgYXQgQyBkcmV2ZXQgZWtzaXN0ZXJlLCBvZyB2aWwgZ+UgbmVkIGh2aXMgZGV0IGlra2UgZ/hyLiBIdmlzIGR1IGZvcnPmdHRlciwgc+UgaHVzayBhdCBsYXZlIGRldCBpZ2VuISIKICAgIElEU19DT0xfRFJJVkVMRVRURVIgICAgICAgICAiQm9nc3RhdiIKICAgIElEU19DT0xfRFJJVkVNQVBQSU5HICAgICAgICAiUGVnZXIgcOUiCiAgICBJRFNfTk9fRFJJVkVfQyAgICAgICAgICAgICAgIkR1IGhhciBpa2tlIGV0IEMgZHJldi4gRGV0dGUgZXIgaWtrZSBz5SBnb2R0LlxuXG5IdXNrIGF0IGtsaWtrZSBUaWxm+GogaSBEcmV2IHRhYmJlbiBmb3IgbGF2ZSBlbiFcbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FDQ0VMX0ZVTEwgICAgICAgICAgICAgICJGdWxkIgogICAgSURTX0FDQ0VMX1NUQU5EQVJEICAgICAgICAgICJTdGFuZGFyZCIKICAgIElEU19BQ0NFTF9CQVNJQyAgICAgICAgICAgICAiR3J1bmRs5mdnZW5kZSIKICAgIElEU19BQ0NFTF9FTVVMQVRJT04gICAgICAgICAiRW11bOlyaW5nIgogICAgSURTX0RSSVZFUl9BTFNBICAgICAgICAgICAgICJBTFNBLWRyaXZlciIKICAgIElEU19EUklWRVJfRVNPVU5EICAgICAgICAgICAiRXNvdW5ELWRyaXZlciIKICAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTLWRyaXZlciIKICAgIElEU19EUklWRVJfSkFDSyAgICAgICAgICAgICAiSkFDSy1kcml2ZXIiCiAgICBJRFNfRFJJVkVSX05BUyAgICAgICAgICAgICAgIk5BUy1kcml2ZXIiCiAgICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvIElPIChTb2xhcmlzKS1kcml2ZXIiCiAgICBJRFNfRFJJVkVSX0NPUkVBVURJTyAgICAgICAgIkNvcmVBdWRpby1kcml2ZXIiCiAgICBJRFNfT1BFTl9EUklWRVJfRVJST1IgICAgICAgIkt1bm5lIGlra2Ug5WJuZSAlcyEiCiAgICBJRFNfU09VTkREUklWRVJTICAgICAgICAgICAgImx5ZGRyaXZlcmUiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgIkx5ZCB1ZCBlbmhlZGVyIgogICAgSURTX0RFVklDRVNfV0FWRUlOICAgICAgICAgICJMeWQgaW5kIGVuaGVkZXIiCiAgICBJRFNfREVWSUNFU19NSURJT1VUICAgICAgICAgIk1JREkgdWQgZW5oZWRlciIKICAgIElEU19ERVZJQ0VTX01JRElJTiAgICAgICAgICAiTUlESSBpbmQgZW5oZWRlciIKICAgIElEU19ERVZJQ0VTX0FVWCAgICAgICAgICAgICAiQXV4IGVuaGVkZXIiCiAgICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgIk1peGVyZW5oZWRlciIKICAgIElEU19VTkFWQUlMQUJMRV9EUklWRVIgICAgICAiRmFuZHQgZHJpdmVyIGkgcmVnaXN0cmVyaW5nIGRhdGFiYXNlbiwgZGVyIGlra2UgZXIgdGlsZ+ZuZ2VsaWchXG5cbkZqZXJuICVzIGZyYSByZWdpc3RyZXJpbmcgZGF0YWJhc2VuPyIKICAgIElEU19XQVJOSU5HICAgICAgICAgICAgICAgICAiQWR2YXJzZWwiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEQ19TWVNQQVJBTVNfQlVUVE9OICAgICAgICAgICAgIkNvbnRyb2xzIGJhZ2dydW5kIgogICAgSURDX1NZU1BBUkFNU19CVVRUT05fVEVYVCAgICAgICAiQ29udHJvbHMgdGVrc3QiCiAgICBJRENfU1lTUEFSQU1TX0RFU0tUT1AgICAgICAgICAgICJTa3JpdmVib3JkIgogICAgSURDX1NZU1BBUkFNU19NRU5VICAgICAgICAgICAgICAiTWVudWJhZ2dydW5kIgogICAgSURDX1NZU1BBUkFNU19NRU5VX1RFWFQgICAgICAgICAiTWVudXRla3N0IgogICAgSURDX1NZU1BBUkFNU19TQ1JPTExCQVIgICAgICAgICAiU2Nyb2xsYmFyIgogICAgSURDX1NZU1BBUkFNU19TRUxFQ1RJT04gICAgICAgICAiTWFya2VyZXQgYmFnZ3J1bmQiCiAgICBJRENfU1lTUEFSQU1TX1NFTEVDVElPTl9URVhUICAgICJNYXJrZXJldCB0ZWtzdCIKICAgIElEQ19TWVNQQVJBTVNfVE9PTFRJUCAgICAgICAgICAgIkJhZ2dydW5kIGkgduZya3T4anN0aXAiCiAgICBJRENfU1lTUEFSQU1TX1RPT0xUSVBfVEVYVCAgICAgICJUZWtzdCBpIHbmcmt0+GpzdGlwIgogICAgSURDX1NZU1BBUkFNU19XSU5ET1cgICAgICAgICAgICAidmluZHVlc2JhZ2dydW5kIgogICAgSURDX1NZU1BBUkFNU19XSU5ET1dfVEVYVCAgICAgICAidmluZHVlc3Rla3N0IgogICAgSURDX1NZU1BBUkFNU19BQ1RJVkVfVElUTEUgICAgICAiQWt0aXYgdGl0ZWxsaW5pZSIKICAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFX1RFWFQgIkFrdGl2IHRpdGVsdGVrc3QiCiAgICBJRENfU1lTUEFSQU1TX0lOQUNUSVZFX1RJVExFICAgICJJbmFrdGl2IHRpdGVsbGluaWUiCiAgICBJRENfU1lTUEFSQU1TX0lOQUNUSVZFX1RJVExFX1RFWFQgIkluYWt0aXYgdGl0ZWx0ZWtzdCIKICAgIElEQ19TWVNQQVJBTVNfTVNHQk9YX1RFWFQgICAgICAgIk1lbGRpbmdzdmluZHVlc3Rla3N0IgogICAgSURDX1NZU1BBUkFNU19BUFBXT1JLU1BBQ0UgICAgICAiQXJiZWpkc29tcuVkZSBpIHByb2dyYW0iCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPV19GUkFNRSAgICAgICJWaW5kdWVzcmFtbWUiCiAgICBJRENfU1lTUEFSQU1TX0FDVElWRV9CT1JERVIgICAgICJBa3RpdiBrYW50IgogICAgSURDX1NZU1BBUkFNU19JTkFDVElWRV9CT1JERVIgICAiSW5ha3RpdiBrYW50IgogICAgSURDX1NZU1BBUkFNU19CVVRUT05fU0hBRE9XICAgICAiQ29udHJvbHMgc2t5Z2dlIgogICAgSURDX1NZU1BBUkFNU19HUkFZX1RFWFQgICAgICAgICAiR3LlIHRla3N0IgogICAgSURDX1NZU1BBUkFNU19CVVRUT05fSElMSUdIVCAgICAiTWFya2VyZXQgY29udHJvbHMiCiAgICBJRENfU1lTUEFSQU1TX0JVVFRPTl9EQVJLX1NIQURPVyAiQ29udHJvbHMgbfhyayBza3lnZ2UiCiAgICBJRENfU1lTUEFSQU1TX0JVVFRPTl9MSUdIVCAgICAgICJDb250cm9scyBseXMiCiAgICBJRENfU1lTUEFSQU1TX0JVVFRPTl9BTFRFUk5BVEUgICJCYWdncnVuZCBmb3Igc2tpZnRlbmRlIGNvbnRyb2xzIgogICAgSURDX1NZU1BBUkFNU19IT1RfVFJBQ0tJTkcgICAgICAiTWFya2VyZXQgZWxlbWVudCIKICAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFX0dSQURJRU5UICJHcmFkaWVudCBmb3IgYWt0aXYgdGl0ZWxsaW5pZSIKICAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEVfR1JBRElFTlQgIkdyYWRpZW50IGZvciBJbmFrdGl2IHRpdGVsbGluaWUiCiAgICBJRENfU1lTUEFSQU1TX01FTlVfSElMSUdIVCAgICAgICJNYXJrZXJldCBtZW51IgogICAgSURDX1NZU1BBUkFNU19NRU5VQkFSICAgICAgICAgICAiTWVudWxpbmllIgpFTkQK