LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogQnVsZ2FyaWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDUgTWlsa28gS3JhY2hvdW5vdgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICoKICovCgpMQU5HVUFHRSBMQU5HX0JVTEdBUklBTiwgU1VCTEFOR19ERUZBVUxUCgpJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAizeDx8vDu6ergIiwgSURDX0FVRElPX0NPTkZJR1VSRQogICAgRU5ECkVORAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjcwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX1NUUklORyxJRENfU1RBVElDLDExOSwxNywxMjAsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQICwxNSwxNywxNTcsMTExCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4Ci8qCiAgICBMVEVYVCAgICAgICAgICAgItLg5+gg4ejh6+ju8uXq4CDlIPHi7uHu5OXtIPHu9PLz5fAuIMzu5uXy5SDk4CD/IPDg5+/w7vHy8ODt/+Lg8uUg6C/o6+gg7/Du7OXt//LlIO/w6CDz8evu4uj/8uAg7eAgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCDv8+Hr6Orz4uDtIO7yIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiAtIOLl8PHo/yAyLjEg7eAg6+j25e3n4CDo6+ggKO/uIOLg+CDo5+Hu8CksIOru//LuIOgg5OAg5SDx6+Xk4uD54CDi5fDx6P8uIiwKKi8KICAgIExURVhUICAgICAgICAgICAiVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDt4CDv8Ojr7ubl7ej/8uAgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogCiAgICAvKiBGSVhNRTogTWFrZSB0aGUgZXhwbGFuYXRpb24gY29tcHJlaGVuc2libGUgKi8KICAgIExURVhUICAgICAgICAgICAiV2luZSDs7ublIOTgIOjs6PLo8OAg8ODn6+j37egg4uXw8ejoIO3gIFdpbmRvd3Mg5+Ag4vH/6u4g8ODn6+j37e4g7/Do6+7m5e3o5S4g0uDn6CDx8vDg7ej24CDlIPHi+vDn4O3gIPEg7eDx8vDu6ero8uUg4iDB6OHr6O7y5eroIOggw/Dg9Ojq4Cwg5+Ag5OAg7O7m5fLlIOTgIO/w7uzl7f/y5Swg7vHi5e0g7uH57vHo8fLl7O3o8uUsIOgg8e/l9uj06Pft6PLlIOfgIO/w6Ovu5uXt6P/y4CDt4PHy8O7p6uguIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNyw1MAogICAgQ09OVFJPTCAgICAgICAgICJBcHBsaWNhdGlvbnMiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw3MCwyMzAsMTEwCiAgICBQVVNIQlVUVE9OCSAgICAiJsTu4eDi/+3lIO3gIO/w6Ovu5uXt6OUuLi4iLElEQ19BUFBfQUREQVBQLCAxNSwyMDQsMTEyLDE0CiAgICBQVVNIQlVUVE9OCSAgICAiz/DlJuzg9eLg7eUg7eAg7/Do6+7m5e3o5S4uLiIsSURDX0FQUF9SRU1PVkVBUFAsIDEzMiwyMDQsMTEzLDE0CiAgICBMVEVYVCAgICAgICAgICAgIibC5fDx6P8g7eAgV2luZG93czoiLElEQ19TVEFUSUMsMTcsMjI2LDg4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDExMywyMjQsMTMzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDt4CDv8O7n7vD26PLlICIsSURDX1NUQVRJQyw4LDAsMjQ0LDE5NQoKICAgIENPTlRST0wJICAgICLQ4Ofw5fjoIO3gIERpcmVjdFgg7/Do6+7m5e3o//LgIOTgIOfg6uv+9+Lg8iDs6Pjq4PLgIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEwLDIzMCw4CiAgICAvKiBGSVhNRTogdGhlIHdvcmRpbmcgaXMgdGVycmlibGUgKi8KICAgIExURVhUICAgICAgICAgICAiwOruIO/w7ufu8Pbo8uUg7eAgV2luZSDx5SDz7/D/4uv/4uDyIO7yIOLg+Oj/IOzl7ejk5vrwIO3gIO/w7ufu8PboLCDy5SD55SDo5+Pr5ebk4PIg6CD55SDx5SDk+vDm4PIg6uDy7iDu8fLg7eDr6PLlIO3gIPDg4e7y7ej/IOLoIO/r7vIsIOgg+eUg8eUg7+7q4Ofi4PIg4iDx7+jx+urgIPEg7/Du5+7w9uguIFxuXG7A6u4g6Ofh5fDl8uUg5OAg7eUg8eUg8+/w4OLr/+Lg8iDu8iDt5ePuLCDy5SDt/+zgIOTgIOH65ODyIOjt8uXj8Ojw4O3oIPEg8ODh7vLt6P8g4ugg7+vu8iwg7e4g5ezz6+D26P/y4CD55SDlIO/uLfLu9+3gIOgg5SDi+ufs7ubt7iDt/+ru6CDv8O7j8ODs6CDk4CDw4OHu8v/yIO/uLeTu4fDlLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwzMywyMjgsODAKICAgIENPTlRST0wgICAgICAgICAi0+/w4OLr5e3o5fLuIO3gIO/w7ufu8Pbo8uUg7vIg7OXt6OTm+vDgIO3gIO/w7ufu8PboIixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxMDcsMjMwLDgKICAgIAogICAgLyogRklYTUU6IHRoZSB3b3JkaW5nIG9mIHRoaXMgZXhwbGFuYXRpb24gY291bGQgYmUgYSBsb3QgYmV0dGVyICovCiAgICBMVEVYVCAgICAgICAgICAgIszu5uXy5SDk4CDo5+/u6+fi4PLlIOXs8+vg9uj/IO3gIOLo8PLz4Ovl7SDw4OHu8uXtIO/r7vIsIOIg6u7p8u4g5OAg8WUg8ODn7+7r4OPg8iDv8O7n7vD26PLlLCDo6+gg7O7m5SDk4CDj6CDu8fLg4ujy5SDk4CDo5+vo5+DyIO3gIOLg+Oj/IPHy4O3k4PDy5e0g8ODh7vLl7SDv6+7yLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwxMzYsMjI4LDI4CiAgICBMVEVYVCAgICAgICAgICAgItDg5+zl8CDt4CDw4OHu8u3o/yDv6+7yOiIsSURDX0RFU0tUT1BfU0laRSwxNSwxNzgsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDgsMTc4LDgsOCxXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICLF7PPr6PDg6SDi6PDy8+Dr5e0g8ODh7vLl7SDv6+7yIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxNjMsMjMwLDEwCgkJICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDE3OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNywxNzgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdDNEICIsSURDX1NUQVRJQyw4LDE5NSwyNDQsNDUKCiAgICBMVEVYVAkgICAgIs/u5OTw+ubq4CDt4CBWZXJ0ZXggU2hhZGVyOiAiLElEQ19TVEFUSUMsMTUsMjA1LDEwNSwzMAogICAgQ09NQk9CT1gJICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDExNSwyMDMsMTI1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAi0ODn8OX46CBQaXhlbCBTaGFkZXIgKODq7iDx5SDv7uTk+vDm4CDu8iD14PDk8+Xw4CkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjIyLDIzMCwxMAogICAgR1JPVVBCT1ggICAgICAgICIgU2NyZWVuIFJlc29sdXRpb24gIixJRENfU1RBVElDLDgsMjQyLDI0NCwyNQogICAgQ09OVFJPTCAgICAgICAgICIiLCBJRENfUkVTX1RSQUNLQkFSLCAibXNjdGxzX3RyYWNrYmFyMzIiLFdTX1RBQlNUT1AsMTIsMjUwLDE4NywxNQogICAgRURJVFRFWFQgICAgICAgIElEQ19SRVNfRFBJRURJVCwyMDQsMjUwLDIzLDEzLEVTX05VTUJFUnxXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgImRwaSIsSURDX1NUQVRJQywyMzUsMjUyLDEwLDgKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBETEwg5+Ds5e3oICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICLC8f/q4CDk6O3g7Oj37e4g8eL68Ofg7eAg4ejh6+ju8uXq4CDs7ublIOTgIOH65OUg7urg5+Dt4CDq4PLuIOLj8ODk5e3gICju8ejj8/Dl7eAg7vIgV2luZSkg6OvoIPHu4fHy4uXt4CAo4ufl8uAg7vIgV2luZG93cyDo6+gg7vHo4/Pw5e3gIO7yIO/w6Ovu5uXt6OXy7ikuIgogICAgICAgICAgICAgICAgICAgICxJRENfU1RBVElDLDE2LDE2LDIyMCwzMgogICAgTFRFWFQgICAgICAgICAgICLN7uLgIOHo4evo7vLl9+3gIOfg7P/t4DoiLElEQ19TVEFUSUMsMTYsNTgsMTAwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRExMQ09NQk8sMTYsNjgsMTQwLDE0LENCU19EUk9QRE9XTiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQgfCBDQlNfTE9XRVJDQVNFCiAgICBQVVNIQlVUVE9OICAgICAgIibE7uHg4ugiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzLEJTX0RFRlBVU0hCVVRUT04gCiAgICBMVEVYVCAgICAgICAgICAgItH6+eXx8uLz4uD56CDn4Ozl7eg6IixJRENfU1RBVElDLDE2LDg2LDEwMCw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX0RMTFNfTElTVCwxNiw5NiwxNDAsMTQwLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19WU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIibQ5eTg6vLo8ODpIixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICLP8OUm7OD17egiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTYwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi0OXk4Ory6PDg7eUg7eAg5+Ds/+3gIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDQ5eQg7eAg5+Dw5ebk4O3lICIsSURDX1NUQVRJQyw4LDQsMTQ0LDY2CiAgICBDT05UUk9MICAgICAgICAgIibC4/Dg5OXt4CAoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYsMTQsMTE1LDEwCiAgICBDT05UUk9MICAgICAgICAgIibR7uHx8uLl7eAgKFdpbmRvd3MpIixJRENfUkFEX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI0LDExNSwxMAogICAgQ09OVFJPTCAgICAgICAgICLCJuPw4OTl7eAsIO/u8evlIPHu4fHy4uXt4CIsSURDX1JBRF9CVUlMVElOX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDM0LDExNSwxMAogICAgQ09OVFJPTCAgICAgICAgICLR7ibh8fLi5e3gLCDv7vHr5SDi4/Dg5OXt4CIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDExNSwxMAogICAgQ09OVFJPTCAgICAgICAgICImx+Dh8ODt6CIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsMTE1LDEwCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDI4LDc0LDQ1LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIs7y7OXt6CIsSURDQU5DRUwsNzcsNzQsNDUsMTQsV1NfR1JPVVAKRU5ECgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM/w5e3g8e734uDt5SDt4CDz8fLw7unx8uLg8uAgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIibE7uHg4uguLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDQ3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIs/w5Sbs4PXt6CIsSURDX0JVVFRPTl9SRU1PVkUsNjYsOTgsNDcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJs7y6vDo6S4uLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE5Nyw5OCw0OSwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICImz/ryOiIsSURDX1NUQVRJQywxNSwxMjMsMjAsOSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9QQVRILDQxLDEyMCwxNjAsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIibI5+Hl8OguLi4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMjA2LDEyMCw0MCwxMwogICAgCiAgICBMVEVYVCAgICAgICAgICAgIibS6O86IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDEsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIsXy6Orl8iDoIPHl8Ojl7SDt7uzl8CIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsOTUsMTAKICAgIAogICAgUFVTSEJVVFRPTiAgICAgICLk7u/66+3o8uXr7egg7eDx8vDu6eroIixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxNDYsMTM2LDEwMCwxMwogICAgQ09OVFJPTCAgICAgICAgICLO8urw6Okg7vIgJvPx8vDu6fHy4u7y7joiLElEQ19SQURJT19BVVRPREVURUNULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxNjYsOTMsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsMjcsMTc2LDE3NCwxMyxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICLI5ybh5fDoLi4uIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMjA2LDE3Niw0MCwxMwogICAgQ09OVFJPTCAgICAgICAgICLH4OTg6SAm8Pr37e46IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNjksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIibF8ujq5fI6IixJRENfU1RBVElDX0xBQkVMLDMzLDIwOCwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDYzLDIwNSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJs3u7OXwOiIsSURDX1NUQVRJQ19TRVJJQUwsMzMsMjI1LDI5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDYzLDIyMSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIs/u6uDn4uDpIPTg6evu4uXy5Swg5+Dv7vfi4PnoIPEg8u736uAiLElEQ19TSE9XX0RPVF9GSUxFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDgsMjYwLDIzMCw4CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDI5+Hu8CDt4CDk8ODp4uXwICIsSURDX1NUQVRJQyw4LDQsMjQ0LDE5NQogICAgTFRFWFQgICAgICAgICAgICLI5+Hl8OXy5SDn4vPq7uIg5PDg6eLl8CDq4PLuIPHr7ubo8uUg7vLs5fLq4CDt4CDm5evg7ej/IO7yIOLg8SDk8ODp4uXwLiDM7ublIOTgIOfg4fDg7ejy5SDn4vPq4CDq4PLuIO3lIOjn4eXw5fLlIO3o6uDq+uIg5PDg6eLl8C4gyOfh6PDg7eXy7iDt4CDv7uLl9+Ug7vIg5eTo7SDk8ODp4uXwIO3lIOUg7/Dl7+7w+vfo8uXr7e4uIMzu5uUg5OAg7eDx8vDu6PLlIOTw4Oni5fDgIOrg8u4g+fDg6u3l8uUg4vrw9fMg7eXj7iDxIOTl8e3o/yDh8/Lu7SDt4CDs6Pjq4PLgLiIsSURDX1NUQVRJQywxNSwyMCwyMjcsNTAKICAgIENPTlRST0wgICAgICAgICAi0/Hy8O7p8fLi4CIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNzAsMTQwLDEyMAogICAgUFVTSEJVVFRPTiAgICAgICImVGVzdCBTb3VuZCIsSURDX0FVRElPX1RFU1QsMTcwLDUwLDU5LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiyu7t8vDu6+XtIO/g7eXrIixJRENfQVVESU9fQ09OVFJPTF9QQU5FTCwxNzAsNzAsNjksMTQKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdFNvdW5kICIsSURDX1NUQVRJQyw4LDIwNSwyNDQsNjAKICAgIExURVhUCSAgICAi1eDw5PPl8O3uIPPx6u7w5e3o5TogIixJRENfU1RBVElDLDE1LDIxNSw5MCwxMAogICAgQ09NQk9CT1gJICAgIElEQ19EU09VTkRfSFdfQUNDRUwsMTAwLDIxMywxNTAsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgItHu9PLz5fDt4CDl7PPr4Pbo/yIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIzMCwyMzAsMTAKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgwvrt+OXtIOLo5CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAi0uXs4DoiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIsjt8fLg6+jw4Okg8uXs4C4uLiIsSURDX1RIRU1FX0lOU1RBTEwsMTUyLDIzLDkzLDE0CiAgICBMVEVYVCAgICAgICAgICAgItbi//I6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLQ4Ofs5fA6IixJRENfVEhFTUVfU0laRVRFWFQsMTM1LDQwLDExMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxMzUsNDgsMTEwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJJdGVtOiIsSURDX1NUQVRJQywxNSw2NCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19TWVNQQVJBTV9DT01CTywxNSw3NCwxMTIsMTIwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUCiAgICBMVEVYVCAgICAgICAgICAgIkNvbG9yOiIsSURDX1NZU1BBUkFNX0NPTE9SX1RFWFQsMTM1LDY0LDI1LDgsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiIixJRENfU1lTUEFSQU1fQ09MT1IsMTM1LDc0LDI1LDEzLFdTX0RJU0FCTEVEIHwgQlNfT1dORVJEUkFXCiAgICBMVEVYVCAgICAgICAgICAgIlNpemU6IixJRENfU1lTUEFSQU1fU0laRV9URVhULDE2Niw2NCwzMCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX1NZU1BBUkFNX1NJWkUsMTY2LDc0LDIzLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1NZU1BBUkFNX1NJWkVfVUQsVVBET1dOX0NMQVNTLFVEU19TRVRCVUREWUlOVCB8IFdTX0RJU0FCTEVELDE4Nyw3NCwxNSwxMwogICAgUFVTSEJVVFRPTiAgICAgICJGb250IixJRENfU1lTUEFSQU1fRk9OVCwyMDgsNzQsMzcsMTMsV1NfRElTQUJMRUQKICAgIEdST1VQQk9YICAgICAgICAiIM/g7+roICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIsLw+ufq4CDq+uw6IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDU1LDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw3MCwxOTUsMTQwLDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiyOfh7vAiLElEQ19CUk9XU0VfU0ZQQVRILDIxNSwxOTUsMzAsMTMsV1NfRElTQUJMRUQKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1dJTkVfVkVSU0lPTiAgICAgICAgIkNWUyIKICAgIElEU19UQUJfQVBQTElDQVRJT05TICAgICLP8Ojr7ubl7ej/IgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIsHo4evo7vLl6ugiCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAi0/Hy8O7p8fLi4CIKICAgIElEU19DSE9PU0VfUEFUSCAgICAgICAgICLI5+Hl8OXy5SBVbml4IOTo8OXq8u7w6P8iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAi0erw6Okg5O7v+uvt6PLl6+3o8uUiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiz+7q4OboIOTu7/rr7ejy5evt6PLlIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIijh5ecg8uXs4CkiCiAgICBJRFNfVEFCX0dSQVBISUNTICAgICAgICAiw/Dg9Ojq4CIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAiyO3y5ePw4Pbo/yIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICLH4vPqIgogICAgSURTX1RBQl9BQk9VVCAgICAgICAgICAgIs7y7e7x7e4iCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAizeDx8vDu6eroIO3gIFdpbmUiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAizeDx8vDu6eroIO3gIFdpbmUg5+AgJXMiCiAgICBJRFNfVEhFTUVGSUxFICAgICAgICAgICAi1ODp6+7i5SDxIPLl7OgiCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAiyOfh5fDl8uUg9ODp6yDxIPLl7OAiCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAizf/s4CDt4PHy8O7l7SDn4vPq7uIg5PDg6eLl8C5cblxux+Ag4uDxIOHl+OUg6Ofh8ODtIOTw4Oni5fAg7+4g7+7k8ODn4ejw4O3lLlxuzO7m5SDk4CDj7iDo5+/u6+fi4PLlIOjr6CDk4CDo5+Hl8OXy5SDk8PPjLlxuXG7S8P/h4uAg5OAg+fDg6u3l8uUg7eAgz+7y4vrw5OgsIOfgIOTgIOLr5eflIOIg8ejr4CDo5+Hu8OAuIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIs/g7+rgIgogICAgSURTX0xJTktTX1RPICAgICAgICAgICAgIsLw+ufq4CDq+uwiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICLP8O7s/+3g8uAg7eAg8OXk4CDt4CDn4PDl5uTg7eUg7eUg5SDv8OXv7vD69+jy5evt4C4g0ejj8/Dt6CDr6CDx8uUsIPflIOjx6uDy5SDk4CDt4O/w4OLo8uUg8u7i4D8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAiwu3o7ODt6OU6IPHo8fLl7O3gIOHo4evo7vLl6uAiCiAgICBJRFNfRExMX05BVElWRSAgICAgICAgICAi8e7h8fLi5e3gIgogICAgSURTX0RMTF9CVUlMVElOICAgICAgICAgIuLj8ODk5e3gIgogICAgSURTX0RMTF9OQVRJVkVfQlVJTFRJTiAgIvHu4fHy4uXt4Cwg4uPw4OTl7eAiCiAgICBJRFNfRExMX0JVSUxUSU5fTkFUSVZFICAi4uPw4OTl7eAsIPHu4fHy4uXt4CIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICLn4OHw4O3l7eAiCiAgICBJRFNfREVGQVVMVF9TRVRUSU5HUyAgICAiRGVmYXVsdCBTZXR0aW5ncyIKICAgIElEU19FWEVDVVRBQkxFX0ZJTFRFUiAgICJXaW5lIFByb2dyYW1zICgqLmV4ZSwqLmV4ZS5zbylcMCouZXhlOyouZXhlLnNvXDAiCiAgICBJRFNfVVNFX0dMT0JBTF9TRVRUSU5HUyAiVXNlIGdsb2JhbCBzZXR0aW5ncyIKICAgIElEU19TRUxFQ1RfRVhFQ1VUQUJMRSAgICJTZWxlY3QgYW4gZXhlY3V0YWJsZSBmaWxlIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfU0hBREVSX01PREVfSEFSRFdBUkUgICAgIkhhcmR3YXJlIgogICAgSURTX1NIQURFUl9NT0RFX05PTkUgICAgICAgICJOb25lIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRFJJVkVfVU5LTk9XTiAgICAgICAgICAgIkF1dG9kZXRlY3QiCiAgICBJRFNfRFJJVkVfRklYRUQgICAgICAgICAgICAgIkxvY2FsIGhhcmQgZGlzayIKICAgIElEU19EUklWRV9SRU1PVEUgICAgICAgICAgICAiTmV0d29yayBzaGFyZSIKICAgIElEU19EUklWRV9SRU1PVkFCTEUgICAgICAgICAiRmxvcHB5IGRpc2siCiAgICBJRFNfRFJJVkVfQ0RST00gICAgICAgICAgICAgIkNELVJPTSIKICAgIElEU19EUklWRV9MRVRURVJTX0VYQ0VFREVEICAiWW91IGNhbm5vdCBhZGQgYW55IG1vcmUgZHJpdmVzLlxuXG5FYWNoIGRyaXZlIG11c3QgaGF2ZSBhIGxldHRlciwgZnJvbSBBIHRvIFosIHNvIHlvdSBjYW5ub3QgaGF2ZSBtb3JlIHRoYW4gMjYiCiAgICBJRFNfU1lTVEVNX0RSSVZFX0xBQkVMICAgICAgIlN5c3RlbSBkcml2ZSIKICAgIElEU19DT05GSVJNX0RFTEVURV9DICAgICAgICAiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBkcml2ZSBDP1xuXG5Nb3N0IFdpbmRvd3MgYXBwbGljYXRpb25zIGV4cGVjdCBkcml2ZSBDIHRvIGV4aXN0LCBhbmQgd2lsbCBkaWUgbWVzc2lseSBpZiBpdCBkb2Vzbid0LiBJZiB5b3UgcHJvY2VlZCByZW1lbWJlciB0byByZWNyZWF0ZSBpdCEiCiAgICBJRFNfQ09MX0RSSVZFTEVUVEVSICAgICAgICAgIkxldHRlciIKICAgIElEU19DT0xfRFJJVkVNQVBQSU5HICAgICAgICAiRHJpdmUgTWFwcGluZyIKICAgIElEU19OT19EUklWRV9DICAgICAgICAgICAgICAiWW91IGRvbid0IGhhdmUgYSBkcml2ZSBDLiBUaGlzIGlzIG5vdCBzbyBncmVhdC5cblxuUmVtZW1iZXIgdG8gY2xpY2sgJ0FkZCcgaW4gdGhlIERyaXZlcyB0YWIgdG8gY3JlYXRlIG9uZSFcbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FDQ0VMX0ZVTEwgICAgICAgICAgICAgICJGdWxsIgogICAgSURTX0FDQ0VMX1NUQU5EQVJEICAgICAgICAgICJTdGFuZGFyZCIKICAgIElEU19BQ0NFTF9CQVNJQyAgICAgICAgICAgICAiQmFzaWMiCiAgICBJRFNfQUNDRUxfRU1VTEFUSU9OICAgICAgICAgIkVtdWxhdGlvbiIKICAgIElEU19EUklWRVJfQUxTQSAgICAgICAgICAgICAiQUxTQSBEcml2ZXIiCiAgICBJRFNfRFJJVkVSX0VTT1VORCAgICAgICAgICAgIkVzb3VuRCBEcml2ZXIiCiAgICBJRFNfRFJJVkVSX09TUyAgICAgICAgICAgICAgIk9TUyBEcml2ZXIiCiAgICBJRFNfRFJJVkVSX0pBQ0sgICAgICAgICAgICAgIkpBQ0sgRHJpdmVyIgogICAgSURTX0RSSVZFUl9OQVMgICAgICAgICAgICAgICJOQVMgRHJpdmVyIgogICAgSURTX0RSSVZFUl9BVURJT0lPICAgICAgICAgICJBdWRpbyBJTyAoU29sYXJpcykgRHJpdmVyIgogICAgSURTX0RSSVZFUl9DT1JFQVVESU8gICAgICAgICJDb3JlQXVkaW8gRHJpdmVyIgogICAgSURTX09QRU5fRFJJVkVSX0VSUk9SICAgICAgICJDb3VsZG4ndCBvcGVuICVzISIKICAgIElEU19TT1VORERSSVZFUlMgICAgICAgICAgICAiU291bmQgRHJpdmVycyIKICAgIElEU19ERVZJQ0VTX1dBVkVPVVQgICAgICAgICAiV2F2ZSBPdXQgRGV2aWNlcyIKICAgIElEU19ERVZJQ0VTX1dBVkVJTiAgICAgICAgICAiV2F2ZSBJbiBEZXZpY2VzIgogICAgSURTX0RFVklDRVNfTUlESU9VVCAgICAgICAgICJNSURJIE91dCBEZXZpY2VzIgogICAgSURTX0RFVklDRVNfTUlESUlOICAgICAgICAgICJNSURJIEluIERldmljZXMiCiAgICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIkF1eCBEZXZpY2VzIgogICAgSURTX0RFVklDRVNfTUlYRVIgICAgICAgICAgICJNaXhlciBEZXZpY2VzIgogICAgSURTX1VOQVZBSUxBQkxFX0RSSVZFUiAgICAgICJGb3VuZCBkcml2ZXIgaW4gcmVnaXN0cnkgdGhhdCBpcyBub3QgYXZhaWxhYmxlIVxuXG5SZW1vdmUgXCIlc1wiIGZyb20gcmVnaXN0cnk/IgogICAgSURTX1dBUk5JTkcgICAgICAgICAgICAgICAgICJXYXJuaW5nIgpFTkQK