LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogSXRhbGlhbiBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA0IEl2YW4gTGVvIFBpb3RpCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfSVRBTElBTiwgU1VCTEFOR19ERUZBVUxUCgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJWZXJzaW9uZSBkaSBXaW5lOiIsSURDX1NUQVRJQywxMTksMTcsNTUsOAogICAgTFRFWFQgICAgICAgICAgICJDVlMiLElEQ19XSU5FVkVSLDE3OSwxNyw1Niw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgfCBTU19DRU5URVJJTUFHRSB8IAogICAgICAgICAgICAgICAgICAgIFNTX1JFQUxTSVpFSU1BR0UgfCBXU19CT1JERVIsMTUsMTcsMTU3LDExMSwgV1NfRVhfVFJBTlNQQVJFTlQKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKICAgIEdST1VQQk9YICAgICAgICAiSW5mb3JtYXppb25pIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBDVEVYVCAgICAgICAgICAgIlRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIkltcG9zdGF6aW9uaSBkZWxsZSBhcHBsaWNhemlvbmkiLElEQ19TVEFUSUMsIDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIldpbmUgcHXyIHNpbXVsYXJlIGRpdmVyc2UgdmVyc2lvbmkgZSBzdGlsaSBkaSBXaW5kb3dzIHBlciBsZSBhcHBsaWNhemlvbmkgcGVyIFdpbmRvd3MiLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMjAsMjI3LDIwCiAgICBDT05UUk9MICAgICAgICAgIkFwcGxpY2F6aW9uaSIsSURDX0FQUF9UUkVFVklFVywiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFRWU19MSU5FU0FUUk9PVCB8IFRWU19IQVNMSU5FUyB8IFRWU19TSE9XU0VMQUxXQVlTIHwgVFZTX0hBU0JVVFRPTlMsIDE1LDQwLDE0MiwxNDUKICAgIFBVU0hCVVRUT04JICAgICJBZ2dpdW5naSBhcHBsaWNhemlvbmUuLi4iLElEQ19BUFBfQUREQVBQLCAxNjMsNDAsODIsNjAKICAgIFBVU0hCVVRUT04JICAgICJSaW11b3ZpIGFwcGxpY2F6aW9uZSIsSURDX0FQUF9SRU1PVkVBUFAsIDE2MywxMjUsODIsNjAKICAgIExURVhUICAgICAgICAgICAiVmVyc2lvbmUgZGkgV2luZG93czoiLElEQ19TVEFUSUMsMTcsMTkyLDU4LDgKICAgIExURVhUICAgICAgICAgICAiVmVyc2lvbiBkZWwgRE9TOiIsSURDX1NUQVRJQywxNywyMTEsNTcsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsODMsMTkwLDE1OCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTUJPQk9YICAgICAgICBJRENfRE9TVkVSLDgzLDIwOCwxNTgsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MCSAgICAiRGlyZWN0WCBwdfIgaW1wZWRpcmEgYWwgbW91c2UgZGkgbGFzY2lhcmUgbGEgbG9ybyBmaW5lc3RyYT8iLElEQ19EWF9NT1VTRV9HUkFCLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzUsMjMwLDgKICAgIENPTlRST0wJICAgICJBYmlsaXRhIGlsIGRvcHBpbyBidWZmZXJpbmcgZGVsIGRlc2t0b3AiLElEQ19ET1VCTEVfQlVGRkVSLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDUsMjMwLDgKICAgIAogICAgR1JPVVBCT1ggICAgICAgICIgSW1wb3N0YXppb25pIGRlbGxhIGZpbmVzdHJhICIsSURDX1NUQVRJQyw4LDI1LDI0NCwxMjAKCiAgICAvKiBGSVhNRTogdGhlIHdvcmRpbmcgb2YgdGhpcyBleHBsYW5hdGlvbiBjb3VsZCBiZSBhIGxvdCBiZXR0ZXIgKi8KICAgIExURVhUICAgICAgICAgICAiUHVvaSBlbXVsYXJlIGlsIGRlc2t0b3AgZGkgd2luZG93cywgZG92ZSBvZ25pIGZpbmVzdHJhIGhhIGlsIHN1byBzY2hlcm1vIHZpcnR1YWxlLCBvIHB1b2kgYXZlcmUgbGUgZmluZXN0cmUgc3VsIHR1byBkZXNrdG9wIHN0YW5kYXJkLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSw3MywyMjgsMjgKICAgIExURVhUICAgICAgICAgICAiRGltZW5zaW9uZSBkZWwgRGVrdG9wOiIsSURDX0RFU0tUT1BfU0laRSwxNSwxMTUsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDgsMTE1LDgsOCxXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICJFbXVsYSB1biBkZXNrdG9wIHZpcnR1YWxlIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxMDAsMjMwLDEwCgkJICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDExNSw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNywxMTUsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiRExMIE92ZXJyaWRlcyIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJTaSBwdfIgc3BlY2lmaWNhcmUgcGVyIG9nbmkgbGlicmVyaWEgc2UgZGV2ZSBlc3NlcmUgYnVpbHRpbiBvIG5hdGl2YS4gVW5hIHZvY2Ugc3BlY2lmaWNhdGEgY29tZSAiIioiIiBzaSBhcHBsaWNhIGEgdHV0dGUgbGUgZGxsIGNoZSBub24gaGFubm8gdW4naW1wb3N0YXppb25lIHNwZWNpZmljYS4iCiAgICAgICAgICAgICAgICAgICAgLCAgSURDX1NUQVRJQywxNSwxNywyMjgsMzIKICAgIENPTlRST0wgICAgICAgICAiRExMIE92ZXJyaWRlcyIsIElEQ19UUkVFX0RMTFMsICJTeXNUcmVlVmlldzMyIiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFRWU19MSU5FU0FUUk9PVCB8IFRWU19IQVNMSU5FUyB8IFRWU19TSE9XU0VMQUxXQVlTIHwgVFZTX0hBU0JVVFRPTlMsIDE1LDUwLDE0MiwxODcKICAgIExURVhUICAgICAgICAgICAiT3JkaW5lIGRpIGNhcmljYW1lbnRvOiIsSURDX1NUQVRJQywxNjMsNTAsMzcsOAogICAgQ09OVFJPTCAgICAgICAgICJCdWlsdGluIChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNjMsNjUsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiTmF0aXZlIChXaW5kb3dzKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNjMsODAsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiQnVpbHRpbiwgTmF0aXZlIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYzLDk1LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIk5hdGl2ZSwgQnVpbHRpbiIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2MywxMTAsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiRGlzYWJpbGl0YSIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYzLDEyNSw3NSwxMAogICAgUFVTSEJVVFRPTgkgICAgIkFnZ2l1bmdpIGFwcGxpY2F6aW9uZS4uLiIsSURDX0RMTFNfQUREQVBQLDE2MywxNDQsODIsMTQKICAgIFBVU0hCVVRUT04JICAgICJSaW11b3ZpIGFwcGxpY2F6aW9uZSIsSURDX0RMTFNfUkVNT1ZFQVBQLCAxNjMsMTY0LDgyLDE0CiAgICBQVVNIQlVUVE9OCSAgICAiQWdnaXVuZ2kgRExMIG92ZXJyaWRlIHBlcjoiLElEQ19ETExTX0FERERMTCwgMTYzLDE4NCw4MiwxNAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExMSVNULDE2MywyMDQsODIsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04JICAgICJSaW11b3ZpIERMTCBvdmVycmlkZSIsSURDX0RMTFNfUkVNT1ZFRExMLDE2MywyMjQsODIsMTQKRU5ECgpJRERfU1lTVEVNQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJEcml2ZXMiLElEQ19TVEFUSUMsOCw0LDI0NCwxMjAKICAgIExJU1RCT1ggICAgICAgICBJRENfTElTVF9EUklWRVMsMTUsMjMsMTc5LDkwLFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJkFnZ2l1bmdpIixJRENfRFJJVkVfQURELDE5NywyMiw1MCwyMgogICAgUFVTSEJVVFRPTiAgICAgICImUmltdW92aSIsSURDX0RSSVZFX1JFTU9WRSwxOTcsNTEsNTAsMjIKICAgIFBVU0hCVVRUT04gICAgICAiJk1vZGlmaWNhIixJRENfRFJJVkVfRURJVCwxOTcsODAsNTAsMjIKRU5ECgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiQWx0cmkgRHJpdmUiLElEQ19TVEFUSUMsNywxMDcsMjQ2LDExMgogICAgTElTVEJPWCAgICAgICAgIElEQ19MSVNUX0RSSVZFUywxNCwxMTgsMjMyLDc2LExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJBZ2dpdW5naS4uLiIsSURDX0JVVFRPTl9BREQsMTQsMTk5LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIlJpbXVvdmkiLElEQ19CVVRUT05fUkVNT1ZFLDU1LDE5OSwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJNb2RpZmljYS4uLiIsSURDX0JVVFRPTl9FRElULDk3LDE5OSwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJSaWxldmEgYXV0b21hdGljYW1lbnRlLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk3LDE5OSw0OSwxNAogICAgTFRFWFQJICAgICJBVFRFTlpJT05FOiBOb24g6CBzdGF0byBkZWZpbml0byB1biBkcml2ZXIgQy4gQ2xpY2NhIHN1ICdBZ2dpdW5naSBEcml2ZXInIHBlciBhZ2dpdW5nZXJuZSB1bm8uIiwgSURTX0RSSVZFX05PX0MsIDcsMjIzLDI1MCwxMTAKRU5ECgpJRERfRFJJVkVfRURJVCBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDIwMywgMTY5ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNvbmZpZ3VyYXpvbmUgZGVpIERyaXZlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIiZPayIsSURfQlVUVE9OX09LLDE0NSwxNTAsNTAsMTYKICAgIExURVhUICAgICAgICAgICAiTGV0dGVyYToiLElEQ19TVEFUSUMsNSwyMywyNiw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsNjMsMTA4LDc4LDEzLEVTX0FVVE9IU0NST0xMCiAgICBMVEVYVCAgICAgICAgICAgIkV0aWNoZXR0YToiLElEQ19TVEFUSUNfTEFCRUwsMzMsMTExLDI5LDEyCiAgICBMVEVYVCAgICAgICAgICAgIlNlcmlhbGU6IixJRENfU1RBVElDX1NFUklBTCwzMywxMjcsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMTI0LDc4LDEzLEVTX0FVVE9IU0NST0xMCiAgICBMVEVYVCAgICAgICAgICAgIlRpcG86IixJRENfU1RBVElDX1RZUEUsNSwzOSwyMSwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsMzEsNSwxMTcsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiUGVyY29yc286IixJRENfU1RBVElDLDUsOCwyMCw5CiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX0xFVFRFUiwzMSwyMCw3Nyw2MCxDQlNfRFJPUERPV05MSVNUICB8IAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIlNmb2dsaWEuLi4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMTU0LDUsNDAsMTMKICAgIENPTUJPQk9YICAgICAgICBJRENfQ09NQk9fVFlQRSwzMSwzNiw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgCiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiTW9zdHJhIEF2YW56YXRlIixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxMzQsMzQsNjAsMTYKICAgIENPTlRST0wgICAgICAgICAiUmlsZXZhIGF1dG9tYXRpY2FtZW50ZSBkYWwgZGlzcG9zaXRpdm86IixJRENfUkFESU9fQVVUT0RFVEVDVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMjEsNjksOTMsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsMzMsNzksMTA4LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIlNmb2dsaWEuLi4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwxNDgsNzksNDAsMTMKICAgIENPTlRST0wgICAgICAgICAiQXNzZWduYSBtYW51YWxtZW50ZToiLElEQ19SQURJT19BU1NJR04sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDIxLDk4LDY5LDEwCiAgICBHUk9VUEJPWCAgICAgICAgIkV0aWNoZXR0YSBlIG51bWVybyBzZXJpYWxlIixJRENfQk9YX0xBQkVMU0VSSUFMLDYsNTgsMTg5LDg1CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVAkiRHJpdmVyIGF1ZGlvOiAiLElEQ19TVEFUSUMsMTAsMjAsNjAsOAogICAgQ09NQk9CT1gJSURDX0FVRElPX0RSSVZFUiw3MCwxOCw4NSw4NSxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04JIlJpbGV2YSBhdXRvbWF0aWNhbWVudGUiLElEQ19BVURJT19BVVRPREVURUNULDE3MCwyMCw0OSwxNApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfV0lORV9WRVJTSU9OICAgICAgICAiQ1ZTIgogICAgSURTX1RBQl9HRU5FUkFMICAgICAgICAgIkdlbmVyYWxlIgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIkxpYnJlcmllIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIkRyaXZlIgpFTkQK