LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogS29yZWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDIgSmFjbyBHcmVlZmYKICogQ29weXJpZ2h0IDIwMDMgRGltaXRyaWUgTy4gUGF1bgogKiBDb3B5cmlnaHQgMjAwMy0yMDA0IE1pa2UgSGVhcm4KICogQ29weXJpZ2h0IDIwMDUsMjAwNiBZdW5Tb25nIEh3YW5nCiAqIENvcHlyaWdodCAyMDA2IEJ5ZW9uZy1TaWsgSmVvbiAKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqCiAqLwoKTEFOR1VBR0UgTEFOR19LT1JFQU4sIFNVQkxBTkdfREVGQVVMVAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAivLPBpCIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAogICAgTFRFWFQgICAgICAgICAgICLAzCC288DMuuq3r7iutMIgwNrAryC80sfBxq6//r7uwNS0z7TZLiC0573FwLogwNrAryC80sfBxq6//r7uIMDntNwoRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uKb+hvK0guLi15yBHTlUgTEdQTChMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSkgvsa3ob+hvK0gwMwgx8G3zrHXt6XAuyDA57noxvcgtse0wiC89sGkx9IgvPYgwNa9wLTPtNkuILbzwMy8vr26wMcgufbA/MC6IDIuMSC2x7TCICi8scXDwPvAuLfOKSCx1yDAzMjEILn2wPzAuyC1+7ijuOkgtcu0z7TZLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxMTksNDQsMTI0LDcyCkVORAoKSUREX0FQUENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgx8G3zrHXt6UgvLPBpCAiLElEQ19TVEFUSUMsIDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIldpbmXAuiCworCiwMcgx8G3zrHXt6W/oSC068fYvK0gtNm4pSC59sD8wMcgwKm1tb/swe64piDI5LO7s74gvPYgwNa9wLTPtNkuIMDMIMXHwLogtvPAzLrqt6+4riwgsde3ocfIIMXHtemw+iC/rLDhtce+7iDA1r7uvK0gwMwgxce16bD6IMfUsrIgvcO9usXbIMD8w7wgtse0wiDHwbfOsde3pbqwILyzwaTAuyC52bLcILz2IMDWvcC0z7TZLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiQXBwbGljYXRpb25zIixJRENfQVBQX0xJU1RWSUVXLCJTeXNMaXN0VmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTFZTX0xJU1QgfCBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMsCiAgICAgICAgICAgICAgICAgICAgMTUsNTAsMjMwLDE1MAogICAgUFVTSEJVVFRPTgkgICAgIsfBt86x17elILT1x8+x4igmQSkuLi4iLElEQ19BUFBfQUREQVBQLCA5MCwyMDQsNzUsMTQKICAgIFBVU0hCVVRUT04JICAgICLHwbfOsde3pSDBprDFx8+x4igmUikiLElEQ19BUFBfUkVNT1ZFQVBQLCAxNzAsMjA0LDc1LDE0CiAgICBMVEVYVCAgICAgICAgICAgIsCptbW/7MHuILn2wa8oJlcpOiIsSURDX1NUQVRJQywxNiwyMjcsNzUsMTQKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIyNCwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QICAgIApFTkQKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgw6IgvLPBpCAiLElEQ19TVEFUSUMsOCwyNSwyNDQsMTgwCgogICAgQ09OVFJPTAkgICAgIkRpcmVjdFggx8G3zrHXt6W16cDMILi2v+y9uiDEv7ytuKYgsde16cDHIMOivsi/oSDA4r7Gtc6w1CDH1CIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzNSwyMzAsOAogICAgQ09OVFJPTAkgICAgIrWlvbrFqcW+IMDMwd8gufbG27i1wLsgsKG0ycfPsNQgx9QiLElEQ19ET1VCTEVfQlVGRkVSLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDUsMjMwLDgKICAgIExURVhUIAkgICAgIldpbmXDorXpwMwgw6Kw/LiuwNq/oSDAx8fYvK0gsPy4rrXItNm46SwgV2luZcOitenAuiDHpcHYIMOixrLAuyCwocH6ILDNwMy45ywgwNu+97D4sKMgsPy4rsDav80gwN8gvu6/77ixILDNwNS0z7TZLiCx17iusO0gw6K48bfPv6G1tSCzqsW4s68gsM3A1LTPtNkuXG5cbri4vuC/oSBXaW5lw6K16cDMIMOisPy4rsDav6EgwMfH2CCw/LiutcfB9iC+yrTCtNm46SwgV2llbsOitenAuiDDorD8uK7A2r/NIL+ssOG1x8H2IL7KwLsgsM3A1LTPtNkuIMDMsM3AuiBXaW5lw6K16cDMILWlvbrFqcW+sPogudDBosfPsNQgxevH1bXHwfYgvsq0wrTZtMIgsM3AuyDAx7nMx9W0z7TZLiDHz8H2uLggV2luZcDHIMCptbW/7MHuIMjks7uzu7HisKEgtPUgwaS50MfYwa68rSC47rjuIMfBt86x17eltenAzCDBuyC09SDA3yC1v8Dbx9IgvPYgwNa1tbfPILW1v83B3bTPtNkuIiwKICAgIAkJICAgIElEQ19TVEFUSUMsMTUsNTgsMjI4LDgwCiAgICBDT05UUk9MCSAgICAiw6Kw/LiuwNqwoSBXaW5lw6LAuyCw/Liux8+1tbfPIMfUIixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxMzIsMjMwLDgKICAgIAogICAgLyogRklYTUU6IHRoZSB3b3JkaW5nIG9mIHRoaXMgZXhwbGFuYXRpb24gY291bGQgYmUgYSBsb3QgYmV0dGVyICovCiAgICBMVEVYVCAgICAgICAgICAgIldpbmXAuiC48LXnIFdpbmXDorXpwMwgx8+zqsDHICewobvzIMituOknv6EgxvfH1LXHtbW3zywgwKm1tb/swe4gtaW9usWpxb7AuyDI5LO7s74gvPYgwNa9wLTPtNkuILbHtMIgV2luZcC6IFdpbmXDorXpwLsgtOe9xcDHIMelwdggtaW9usWpxb4gwKe/oSDAp8Shx8+1tbfPIMfSILz2IMDWvcC0z7TZLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwxNDYsMjI4LDI4CiAgICBMVEVYVCAgICAgICAgICAgIrWlvbrFqcW+xamx4joiLElEQ19ERVNLVE9QX1NJWkUsMTUsMTg4LDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTA4LDE4OCw4LDgsV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAisKG78yC1pb26xanFviDI5LO7s7ux4iIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTczLDIzMCwxMAoJCSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9XSURUSCw2NCwxODgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMTcsMTg4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAgICAgIiC02cDMt7rGriAzRCAiLElEQ19TVEFUSUMsOCwyMTAsMjQ0LDUwCgogICAgTFRFWFQJICAgICK59sXYvbogvabAzLT1IMH2v/g6ICIsSURDX1NUQVRJQywxNSwyMjAsODAsMzAKICAgIENPTUJPQk9YCSAgICBJRENfRDNEX1ZTSEFERVJfTU9ERSwxMDAsMjE4LDE0Niw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIsfIvL8gvabAzLT1IMfjv+sgKMfPteW//r7uv6G8rSDB9r/4x9G02bjpKSIsSURDX0QzRF9QU0hBREVSX01PREUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMzcsMjMwLDEwCkVORAoKSUREX0RMTENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgRExMIL/Aufa288DMteUgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIrW/wPsguLXFqSC288DMuuq3r7iutMIgsLO6sMD7wLi3ziCzu8DlKFdpbmW/oSDAx8fYIMGmsPgpwMyzqiCz18DMxry66ijAqbW1v+zB7rOqIMfBt86x17elv6EgwMfH2CDBprD4KcC4t84gwfbBpLXJvPYgwNa9wLTPtNkuIgogICAgICAgICAgICAgICAgICAgICxJRENfU1RBVElDLDE2LDE2LDIyMCwzMgogICAgTFRFWFQgICAgICAgICAgICK79bfOIL/Aufa288DMteXH0iC288DMuuq3r7iuOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAitPXHz7HiKCZBKSIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAix/bA5yC/wLn2tvPAzLXlILjxt886IixJRENfU1RBVElDLDE2LDg2LDEwMCw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX0RMTFNfTElTVCwxNiw5NiwxNDAsMTQwLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19WU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIrDtxKGx4igmRSkiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsH2v+yx4igmUikiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTEwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiv8C59rbzwMy15SC89sGkIgpGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiC3zrXlILz4vK0gIixJRENfU1RBVElDLDgsNCw5NCw2NgogICAgQ09OVFJPTCAgICAgICAgICKzu8DlKCZCKShXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICKz18DMxry66igmTikoV2luKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICKzu8DlLCCz18DMxry66igmbCkiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICKz18DMxry66iwgs7vA5SgmdikiLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICK757/rx8/B9iC+ysC9KCZEKSIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsNzUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiyK7AziIsSURPSyw4LDc0LDQ1LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIsPrvNIiLElEQ0FOQ0VMLDU3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiC15bbzwMy66iC4ysfOICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfRFJJVkVTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDE4LDIzMiw3NgogICAgUFVTSEJVVFRPTiAgICAgICLD37ChKCZBKS4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiwaawxSgmUikiLElEQ19CVVRUT05fUkVNT1ZFLDU2LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsDatb+wy8PiKCZEKS4uLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE5NSw5OCw1MSwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICKw5rfOKCZQKToiLElEQ19TVEFUSUMsMTUsMTIzLDMwLDEwICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCw1MCwxMjAsMTQwLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICLDo77Gurix4igmQikuLi4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMTk1LDEyMCw1MSwxMwogICAgCiAgICBMVEVYVCAgICAgICAgICAgIsG+t/koJlQpOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwzMCwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDUwLDEzNSw3MCw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQgICAgICAgICAgICK287qnsPogvcO4rr7zILn4yKMiLElEQ19MQUJFTFNFUklBTF9TVEFUSUMsMTUsMTU1LDk1LDEwCiAgICAKICAgIFBVU0hCVVRUT04gICAgICAiw9+wob/JvMcgurjAzLHiKCZTKSIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTg2LDEzNiw2MCwxMwogICAgQ09OVFJPTCAgICAgICAgICLA5cSht866zsXNIMDatb+wy8PiKCZmKToiLElEQ19SQURJT19BVVRPREVURUNULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxNjYsOTMsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsMjcsMTc2LDE2MywxMyxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICLDo77Gurix4igmdykuLi4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwxOTUsMTc2LDUxLDEzCiAgICBDT05UUk9MICAgICAgICAgIrz2tb/AuLfOIMH2waQoJk0pOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDY5LDEwCgogICAgTFRFWFQgICAgICAgICAgICK287qnKCZMKToiLElEQ19TVEFUSUNfTEFCRUwsMjcsMjA4LDM1LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsNjMsMjA1LDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICK9w7iuvvMoJmUpOiIsSURDX1NUQVRJQ19TRVJJQUwsMjcsMjI1LDM1LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDYzLDIyMSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIrz7seggxsTAzyguwLi3ziC9w8Dbx8+0wiDGxMDPKSC6uL+pwdax4iIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyNjAsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiILXltvPAzLn2ILyxxcMgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIr/4x8+0wiC15bbzwMy59sDHILnavbq4piDDvMWpx8+/qSC757/uteUgteW288DMufa4piC8scXDx9W0z7TZLiC+7rayILXltvPAzLn2tbUgvLHFw8fPwfYgvsrAuLjpILvnv+615bChIMfYwaa1y7TPtNkuIL+pt68gteW288DMufa4piC8scXDx8+0wiCwzcC6IMPfw7XHz8H2IL7KvcC0z7TZLiC15bbzwMy59iDAp7+hvK0guLa/7L26IL/AuKXCyiC59sawIMWsuK/Hz7+pILXltvPAzLn2uKYgvLPBpMfVtM+02S4iLElEQ19TVEFUSUMsMTUsMjAsMjI3LDQwCiAgICBDT05UUk9MICAgICAgICAgIsDlxKEiLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDYwLDE2MCwxMzAgCiAgICBQVVNIQlVUVE9OCSAgICAiwaa+7sbHIixJRENfQVVESU9fQ09OVFJPTF9QQU5FTCwxODAsNjAsNjYsMTMKICAgIEdST1VQQk9YICAgICAgICAiILTZwMy3usauILvnv+615SAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwCiAgICBMVEVYVAkgICAgIsfPteW//r7uILChvNM6ICIsSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YCSAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwyMTMsMTQ2LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICKx4rq7ILv5x8MguvHAsjoiLElEQ19TVEFUSUMsMTUsMjMyLDcwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDkwLDIzMCw0Miw3NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiu/nHw7+hILTrx9EgseK6uyC68cCyOiIsSURDX1NUQVRJQywxMzcsMjMyLDgwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0JJVFMsMjIwLDIzMCwzMCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICAgICAiteW288DMufYgyOSzu7O7seIiLElEQ19EU09VTkRfRFJWX0VNVUwsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMzAsMjMwLDIzCkVORAoKSUREX0RFU0tUT1BfSU5URUdSQVRJT04gRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIL/csPwgIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBMVEVYVCAgICAgICAgICAgIsXXuLY6IixJRENfU1RBVElDLDE1LDE2LDIzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1RIRU1FQ09NQk8sMTUsMjQsMjMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICLF17i2ILyzxKEuLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwzOCw5MywxNAogICAgTFRFWFQgICAgICAgICAgICK79rvzOiIsSURDX1RIRU1FX0NPTE9SVEVYVCwxNSw1NCwyMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9DT0xPUkNPTUJPLDE1LDYyLDIzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAixamx4joiLElEQ19USEVNRV9TSVpFVEVYVCwxNSw4MCwyMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTUsODgsMjMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICIgvakgxvq09SAiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfU0ZQQVRIUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICAgQ09OVFJPTCAgICAgICAgICK/qbHiv6Egv6yw4ToiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICLDo7HiIixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAix8G3zrHXt6UiCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAitvPAzLrqt6+4riIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICK15bbzwMy66iIKICAgIElEU19DSE9PU0VfUEFUSCAgICAgICAgICLAr7TQvboguPHA+yDG+rT1uKYgvLHFw8fPvcq9w7/ALiIKICAgIElEU19ISURFX0FEVkFOQ0VEICAgICAgICLD37Chv8m8xyC8+7HiseIiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiw9+wob/JvMcgurjAzLHiIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIijF17i2IL74wL0pIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIrHXt6HHyCIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAitaW9usWpxb4gvLPBpCIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICK/wLXwv8AiCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiwaS6uCIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJXaW5lILyzwaQiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAiJXO4piDAp8fRIFdpbmUgvLPBpCIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICLF17i2IMbEwM8iCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAixde4tiDGxMDPILyxxcMiCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAix/bA5yC3ucH2vbrGrriuv6Egv8C18L/AILXltvPAzLn2sKEgwfbBpLXHvu4gwNbB9iC+yr3AtM+02S5cblxuw9/DtSC15bbzwMy59rChILyxxcO++r3AtM+02S5cbsDMILXltvPAzLn2uKYgu+e/68fPsMWzqiCwobTJx9EgtNm4pSC15bbzwMy59rimILyxxcPH0iC89iDA1r3AtM+02S5cblxuvLHFwyC758fXwMwgyL+w+rimILOqxbizu7HiIMCnx9i8rbTCIMD7v+sgufbGsMC7ILStt6++3yDH1bTPtNkuIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIr2pIMb6tPUiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiv6mx4r+hIL+ssOEiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICLAzCC288DMuuq3r7iuwMcgt8615SC8+LytuKYgudmy2bTCILDNwLsgw9/DtcfPwfYgvsq9wLTPtNkuLlxuwaS4u7fOILnZstm9w7DavcC0z7HuPyIKICAgIElEU19ETExfV0FSTklOR19DQVBUSU9OICKw5rDtOiC9w726xdsgtvPAzLrqt6+4riIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICKz18DMxry66iIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICKzu8DlIgogICAgSURTX0RMTF9OQVRJVkVfQlVJTFRJTiAgIrPXwMzGvLrqLCCzu8DlIgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgIrO7wOUsILPXwMzGvLrqIgogICAgSURTX0RMTF9ESVNBQkxFRCAgICAgICAgIrvnv+vHz8H2IL7KwL0iCkVORAo=