LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogUnVzc2lhbiBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDAzIElnb3IgU3RlcGluCiAqIENvcHlyaWdodCAyMDA2IFZpdGFsaXkgTWFyZ29sZW4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqCiAqLwoKTEFOR1VBR0UgTEFOR19SVVNTSUFOLCBTVUJMQU5HX0RFRkFVTFQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKSURSX1dJTkVDRkcgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIkNvbmZpZ3VyZSIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAovKgogICAgTFRFWFQgICAgICAgICAgICLd8uAg4ejh6+ju8uXq4CD/4uv/5fLx/yDx4u7h7uTt++wg7/Du4/Dg7Ozt++wg7uHl8e/l9+Xt6OXsOyDi+yDs7ubl8uUg8ODx7/Du8fLw4O3/8vwg5bgg6C/o6+gg7O7k6PTo9ujw7uLg8vwg8e7j6+Dx7e4g8/Hr7uLo/+wg6+j25e3n6OggR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCDu7/Ph6+jq7uLg7e3u6SBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IOLl8PHo6CAyLjEg6+j25e3n6Ogg6OvoICjt4CDi4PjlIPPx7O7y8OXt6OUpIOv+4e7pIOHu6+XlIO/u5+Tt5ekuIiwKKi8KICAgIExURVhUICAgICAgICAgICAiVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDv8Ojr7ubl7ejpICIsSURDX1NUQVRJQywgOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiV2luZSDs7ubl8iDo7Ojy6PDu4uDy/CDw4Oft++Ug4uXw8ejoIFdpbmRvd3Mg5Ov/IPDg5+379SDv8Ojr7ubl7ejpLiDd8uAg4urr4OTq4CDx4v/n4O3gIPEg4urr4OTq4OzoIMHo4evo7vLl6ugg6CDD8OD06OrgLCDk6/8g8u7j7iD38u7h+yDv7ufi7uvo8vwg4uDsIOjn7OXt6PL8IOPr7uHg6/zt++Ug7eDx8vDu6eroIOjr6CDt4PHy8O7p6ugg8u7r/OruIOTr/yDu7/Dl5OXruO3t7uPuIO/w6Ovu5uXt6P8g8uDq5uUg6CDiIP3y6PUg4urr4OTq4PUuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNyw2MAogICAgQ09OVFJPTCAgICAgICAgICLP8Ojr7ubl7ej/IixJRENfQVBQX0xJU1RWSUVXLCJTeXNMaXN0VmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTFZTX0xJU1QgfCBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMsCiAgICAgICAgICAgICAgICAgICAgMTUsNjUsMjMwLDEzNAogICAgUFVTSEJVVFRPTgkgICAgIibE7uHg4ujy/CDv8Ojr7ubl7ejlLi4uIixJRENfQVBQX0FEREFQUCwgNjgsMjA0LDk0LDE0CiAgICBQVVNIQlVUVE9OCSAgICAiJtPk4Ovo8vwg7/Do6+7m5e3o5SIsSURDX0FQUF9SRU1PVkVBUFAsIDE2NCwyMDQsNzgsMTQKICAgIExURVhUICAgICAgICAgICAiJsLl8PHo/yBXaW5kb3dzOiIsSURDX1NUQVRJQywxNywyMjYsNTgsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19XSU5WRVIsODMsMjI0LDE2Myw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgICAgCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDN4PHy8O7p6ugg7urt4CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxODAKCiAgICBDT05UUk9MCSAgICAi0ODn8OX46PL8IO/w6Ovu5uXt6P4gRGlyZWN0WCDz5OXw5uji4PL8IOz7+Pwg4iDx4u647CDu6u3lIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE0LDIzNSw4CiAgICBDT05UUk9MCSAgICAiwurr/vfo8vwg5OLu6e3z/iDh8/Tl8Ojn4Pbo/iDw4OHu9+Xj7iDx8u7r4CIsSURDX0RPVUJMRV9CVUZGRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyNCwyMzAsOAogICAgQ09OVFJPTAkgICAgItDg5/Dl+Ojy/CDs5e3l5Obl8PMg7uru7SDz7/Dg4uv/8vwg7urt4OzoIixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzNCwyMzAsOAoKICAgIC8qIEZJWE1FOiB0aGUgd29yZGluZyBvZiB0aGlzIGV4cGxhbmF0aW9uIGNvdWxkIGJlIGEgbG90IGJldHRlciAqLwogICAgTFRFWFQgICAgICAgICAgICLF8evoIOLq6/736PL8IP3s8+v/9uj+IPDg4e735ePuIPHy7uvgLCDy7iDi8eUg7urt4CDh8+Tz8iDu8u7h8ODm4PL88f8g4iDu5O3u7CAn4ujw8vPg6/zt7uwg/erw4O3lJywg6O3g9+Ug7urt4CDw4Ofs5fng/vLx/yDq4Oog7uH79+375Swg7eAg8fLg7eTg8PLt7uwg8ODh7vfl7CDx8u7r5S4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMTI1LDIyOCwyOAogICAgTFRFWFQgICAgICAgICAgICLQ4Ofs5fAg8ODh7vfl4+4g8fLu6+A6IixJRENfREVTS1RPUF9TSVpFLDE1LDE2Nyw0NCw4LFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDEwOCwxNjcsOCw4LFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIt3s8+vo8O7i4PL8IOLo8PLz4Ov87fvpIPDg4e736Okg8fLu6yIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTUyLDIzMCwxMAoKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9XSURUSCw2NCwxNjcsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMTcsMTY3LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3QzRCAiLElEQ19TVEFUSUMsOCwxODksMjQ0LDU1CgogICAgTFRFWFQJICAgICLC5fD46O3t++Ug+OXp5OXw+zogIixJRENfU1RBVElDLDE1LDE5OSwxMjAsMzAKICAgIENPTUJPQk9YCSAgICBJRENfRDNEX1ZTSEFERVJfTU9ERSwxMjAsMTk3LDEyNSw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIsLq6/736PL8IFBpeGVsIFNoYWRlciAo5fHr6CDv7uTk5fDm6OLg5fLx/yDu4e7w8+Tu4uDt6OXsKSIsSURDX0QzRF9QU0hBREVSX01PREUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMTYsMjMwLDEwCkVORAoKSUREX0RMTENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgx+Ds5fnl7ej/IERMTCAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAixOjt4Ozo9+Xx6ugg7+7k6uv+9+Dl7PvlIOHo4evo7vLl6ugg7O7j8/Ig4fvy/CDi8fLw7uXt7fvs6CBidWlsdGluICjv8OXk7vHy4OLr//7y8f8gV2luZSkg6OvoIPDu5O377OggbmF0aXZlICjh5fDz8vH/IOjnIFdpbmRvd3Mg6OvoIO/w5eTu8fLg4uv//vLx/yDv8Ojr7ubl7ejl7CkuIgogICAgICAgICAgICAgICAgICAgICxJRENfU1RBVElDLDE2LDE2LDIyMCwzMgogICAgTFRFWFQgICAgICAgICAgICLN7uLu5SDn4Ozl+eXt6OUg5Ov/IOHo4evo7vLl6ug6IixJRENfU1RBVElDLDE2LDU4LDE2MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICImxO7h4OLo8vwiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzLEJTX0RFRlBVU0hCVVRUT04gCiAgICBMVEVYVCAgICAgICAgICAgItHz+eXx8uLz/vno5SDn4Ozl+eXt6P86IixJRENfU1RBVElDLDE2LDg2LDEwMCw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX0RMTFNfTElTVCwxNiw5NiwxNDAsMTQwLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19WU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIibQ5eTg6vLo8O7i4PL8IixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICIm0+Tg6+jy/CIsSURDX0RMTFNfUkVNT1ZFRExMLDE2NCwxMTQsODIsMTQgCkVORAoKSUREX0xPQURPUkRFUiBESUFMT0cgRElTQ0FSREFCTEUgODAsIDkwLCAxMzAsIDkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLQ5eTg6vLo8O7i4PL8IOfg7OX55e3o5SIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgz+7w/+Tu6iDn4OPw8+fq6CAiLElEQ19TVEFUSUMsOCw0LDExNSw2NgogICAgQ09OVFJPTCAgICAgICAgICImwvHy8O7l7e3g/yAoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYsMTQsMTA1LDEwCiAgICBDT05UUk9MICAgICAgICAgIibQ7uTt4P8gKFdpbmRvd3MpIixJRENfUkFEX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI0LDEwNSwxMAogICAgQ09OVFJPTCAgICAgICAgICLCJvHy8O7l7e3g/yDn4PLl7CDw7uTt4P8iLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCwxMDUsMTAKICAgIENPTlRST0wgICAgICAgICAi0O7kJu3g/yDn4PLl7CDi8fLw7uXt7eD/IixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNDQsMTA1LDEwCiAgICBDT05UUk9MICAgICAgICAgIibB6+7q6PDu4uDy/CIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsMTA1LDEwCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDgsNzQsNDUsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3gIixJRENBTkNFTCw1Nyw3NCw0NSwxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgzeDx8vDu6ergIOTo8eru4iAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiJsTu4eDi6PL8Li4uIixJRENfQlVUVE9OX0FERCwxNSw5OCw0NSwxNAogICAgUFVTSEJVVFRPTiAgICAgICIm0+Tg6+jy/CIsSURDX0JVVFRPTl9SRU1PVkUsNjYsOTgsNDcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJsDi8u7u7/Dl5OXr5e3o5S4uLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE2NSw5OCw4MCwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICImz/Py/DoiLElEQ19TVEFUSUMsMTUsMTIzLDIwLDkgICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCw0MSwxMjAsMTYwLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImzuHn7vAuLi4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMjA2LDEyMCw0MCwxMwogICAgCiAgICBMVEVYVCAgICAgICAgICAgIibS6O86IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDEsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIszl8urgIOgg8eXw6Ont++kg7e7s5fAiLElEQ19MQUJFTFNFUklBTF9TVEFUSUMsMTUsMTU1LDk1LDEwCiAgICAKICAgIFBVU0hCVVRUT04gICAgICAixO7v7uvt6PLl6/zt7i4uLiIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTUwLDEzNiw5NiwxMwogICAgQ09OVFJPTCAgICAgICAgICLA4vLu7u/w5eTl6+jy/CAmYyDz8fLw7unx8uLgOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2NiwxNTAsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsMjcsMTc2LDE3NCwxMyxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICLO4Sbn7vAuLi4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwyMDYsMTc2LDQwLDEzCiAgICBDT05UUk9MICAgICAgICAgIibN4Oft4Pfo8vwg4vDz9+3z/joiLElEQ19SQURJT19BU1NJR04sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE5NSwxMDAsMTAKCiAgICBMVEVYVCAgICAgICAgICAgIibM5fLq4DoiLElEQ19TVEFUSUNfTEFCRUwsMzMsMjA4LDI5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsMTAzLDIwNSwxMTgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgItHl8Ojp7fvpIO3u7OXwOiIsSURDX1NUQVRJQ19TRVJJQUwsMzMsMjI1LDgwLDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDEwMywyMjEsMTE4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiz+7q4Of74uDy/CD04Onr+ywg7eD36O3g/vno5fH/IPEg8u736ugiLElEQ19TSE9XX0RPVF9GSUxFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDgsMjYwLDIzMCw4CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDC++Hu8CDk8ODp4uXw4CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUCSAgICAix+Lz6u7i7ukg5PDg6eLl8DogIixJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJEZXZpY2VzIixJRENfQVVESU9fVFJFRSwiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwxNSw1MCwxNDAsMTQwCiAgICBQVVNIQlVUVE9OCSAgICAiz+Dt5ev8IPPv8ODi6+Xt6P8iLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE3MCw1MCw4MCwxNAogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0U291bmQgIixJRENfU1RBVElDLDgsMjA1LDI0NCw2MAogICAgTFRFWFQJICAgICLA7+/g8ODy7e7lIPPx6u7w5e3o5TogIixJRENfU1RBVElDLDE1LDIxNSw5MCwxMAogICAgQ09NQk9CT1gJICAgIElEQ19EU09VTkRfSFdfQUNDRUwsMTAwLDIxMywxNDUsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgItfg8fLu8uAgKOPl8PYpOiIsSURDX1NUQVRJQywxNSwyMzIsNzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfUkFURVMsMTAwLDIzMCw0Miw3NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiyu7k6PDu4uDt6OUgKOHo8ik6IixJRENfU1RBVElDLDE0NCwyMzIsODAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfQklUUywyMTYsMjMwLDMwLDUyLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgICAgICLd7PPr//bo/yDk8ODp4uXw4CIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDI1MCwyMzAsMTAKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgwu3l+O3o6SDi6OQgIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBMVEVYVCAgICAgICAgICAgItLl7OA6IixJRENfU1RBVElDLDE1LDE2LDIzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1RIRU1FQ09NQk8sMTUsMjQsMjMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICLT8fLg7e7i6PL8IPLl7PMuLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwzOCw5MywxNAogICAgTFRFWFQgICAgICAgICAgICLW4uXyOiIsSURDX1RIRU1FX0NPTE9SVEVYVCwxNSw1NCwyMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9DT0xPUkNPTUJPLDE1LDYyLDIzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi0ODn7OXwOiIsSURDX1RIRU1FX1NJWkVURVhULDE1LDgwLDIzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxNSw4OCwyMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIiDR8uDt5ODw8u375SDv4O/q6CAiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfU0ZQQVRIUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICAgQ09OVFJPTCAgICAgICAgICLN4O/w4OLo8vwg4joiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICLC++Hw4PL8IixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiz/Do6+7m5e3o/yIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICLB6OHr6O7y5eroIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIsTo8eroIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIsL74eXw6PLlIPbl6+Xi7ukg6uDy4Ovu4yDiIPHo8fLl7OUuIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgItHq8Pvy/CDk7u/u6+3o8uXr/O375SIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICLP7urg5+Dy/CDk7u/u6+3o8uXr/O375SIKICAgIElEU19OT1RIRU1FICAgICAgICAgICAgICIo4eXnIPLl7PspIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIsPw4PTo6uAiCiAgICBJRFNfVEFCX0RFU0tUT1BfSU5URUdSQVRJT04gIkRlc2t0b3AgSW50ZWdyYXRpb24iCiAgICBJRFNfVEFCX0FVRElPICAgICAgICAgICAiwPPk6O4iCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiziDv8O7j8ODs7OUiCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAizeDx8vDu6ergIFdpbmUiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAizeDx8vDu6ergIFdpbmUg5Ov/ICVzIgogICAgSURTX1RIRU1FRklMRSAgICAgICAgICAgItTg6ev7IPLl7CIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICLC++Hl8Ojy5SD04OnrIPEg8uXs7ukiCiAgICBJRFNfU0hFTExfRk9MREVSICAgICAgICAi0fLg7eTg8PLt++Ug7+Dv6ugiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAi0eL/5+Dt7iDxIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRExMX1dBUk5JTkcgICAgICAgICAgICAgIsjn7OXt5e3o5SDv7vD/5OrgIOfg4/Dz5+roIP3y7ukg4ejh6+ju8uXq6CDt5SDw5eru7OXt5PPl8vH/Llxuwvsg5OXp8fLi6PLl6/zt7iD17vLo8uUg6Ofs5e3o8vwg7+7w/+Tu6j8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAgICAgIsLt6Ozg7ejlOiDx6PHy5ezt4P8g4ejh6+ju8uXq4CIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICAgICAi8O7k7eD/IgogICAgSURTX0RMTF9CVUlMVElOICAgICAgICAgICAgICLi8fLw7uXt7eD/IgogICAgSURTX0RMTF9OQVRJVkVfQlVJTFRJTiAgICAgICLw7uTt4P8sIOLx8vDu5e3t4P8iCiAgICBJRFNfRExMX0JVSUxUSU5fTkFUSVZFICAgICAgIuLx8vDu5e3t4P8sIPDu5O3g/yIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICAgICAi7vLq6/735e3gIgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgICAgICLT8fLg7e7i6ugg7+4g8+zu6/fg7ej+IgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgICAgICLP8O7j8ODs7PsgV2luZSAoKi5leGUsKi5leGUuc28pXDAqLmV4ZTsqLmV4ZS5zb1wwIgogICAgSURTX1VTRV9HTE9CQUxfU0VUVElOR1MgICAgICLI8e/u6/zn7uLg8vwg7+4g8+zu6/fg7ej+IgogICAgSURTX1NFTEVDVF9FWEVDVVRBQkxFICAgICAgICLC++Hl8Ojy5SDo8e/u6+3/5ez76SD04OnrIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfU0hBREVSX01PREVfSEFSRFdBUkUgICAgIsLq6/735e37IgogICAgSURTX1NIQURFUl9NT0RFX05PTkUgICAgICAgICLC++rr/vfl7fsiCiAgICBJRFNfU0hBREVSX01PREVfRU1VTEFUSU9OICAgIt3s8+v/9uj/IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRFJJVkVfVU5LTk9XTiAgICAgICAgICAgIsDi8u7u7/Dl5OXr6PL8IgogICAgSURTX0RSSVZFX0ZJWEVEICAgICAgICAgICAgICLG5fHy6ujpIOTo8eoiCiAgICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgItHl8uXi7ukg5Ojx6iIKICAgIElEU19EUklWRV9SRU1PVkFCTEUgICAgICAgICAixOjx6u7i7uQiCiAgICBJRFNfRFJJVkVfQ0RST00gICAgICAgICAgICAgIkNELVJPTSIKICAgIElEU19EUklWRV9MRVRURVJTX0VYQ0VFREVEICAizeXi7ufs7ubt7iDx7ufk4PL8IO3u4vvpIOTo8eouXG5cbtMg6uDm5O7j7iDk6PHq4CDk7uvm7eAg4fvy/CDh8+ri4CAtIO7yIEEg5O4gWiwg6CDzIMLg8SDz5uUgMjYg5Ojx6u7iLiIKICAgIElEU19TWVNURU1fRFJJVkVfTEFCRUwgICAgICAi0ejx8uXs7fvpIOTo8eoiCiAgICBJRFNfQ09ORklSTV9ERUxFVEVfQyAgICAgICAgIsL7IOTl6fHy4ujy5ev87e4g9e7y6PLlIPPk4Ovo8vwg5Ojx6iBDP1xuXG7B7uv8+Ojt8fLi7iBXaW5kb3dzIO/w7uPw4OzsIO/l8OXx8uDt8/Ig8ODh7vLg8vwg4eXnIOTo8ergIEMuIMXx6+ggwvsg4vHlIOblIPDl+Ojr6CDz5ODr6PL8IOTo8eosIO3lIOfg4fPk/PLlIPHu5+Tg8vwg7e7i++khIgogICAgSURTX0NPTF9EUklWRUxFVFRFUiAgICAgICAgICLE6PHqIgogICAgSURTX0NPTF9EUklWRU1BUFBJTkcgICAgICAgICLP8/L8IgogICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICLC+yDt5SDt4Oft4Pfo6+gg5Ojx6iBDLlxuXG7N5SDn4OHz5Pzy5SDl4+4g8e7n5ODy/CFcbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FDQ0VMX0ZVTEwgICAgICAgICAgICAgICLP7uvt7uUiCiAgICBJRFNfQUNDRUxfU1RBTkRBUkQgICAgICAgICAgItHy4O3k4PDy7e7lIgogICAgSURTX0FDQ0VMX0JBU0lDICAgICAgICAgICAgICLM6O3o7ODr/O3u5SIKICAgIElEU19BQ0NFTF9FTVVMQVRJT04gICAgICAgICAi3ezz6//26P8iCiAgICBJRFNfRFJJVkVSX0FMU0EgICAgICAgICAgICAgIkFMU0Eg5PDg6eLl8CIKICAgIElEU19EUklWRVJfQVJUUyAgICAgICAgICAgICAiYVJ0cyDk8ODp4uXwIgogICAgSURTX0RSSVZFUl9FU09VTkQgICAgICAgICAgICJFc291bkQg5PDg6eLl8CIKICAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTIOTw4Oni5fAiCiAgICBJRFNfRFJJVkVSX0pBQ0sgICAgICAgICAgICAgIkpBQ0sg5PDg6eLl8CIKICAgIElEU19EUklWRVJfTkFTICAgICAgICAgICAgICAiTkFTIOTw4Oni5fAiCiAgICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvIElPIChTb2xhcmlzKSDk8ODp4uXwIgogICAgSURTX0RSSVZFUl9DT1JFQVVESU8gICAgICAgICJDb3JlQXVkaW8g5PDg6eLl8CIKICAgIElEU19PUEVOX0RSSVZFUl9FUlJPUiAgICAgICAizeXi7ufs7ubt7iDu8urw+/L8ICVzISIKICAgIElEU19TT1VORERSSVZFUlMgICAgICAgICAgICAiwPPk6O4g5PDg6eLl8OAiCiAgICBJRFNfREVWSUNFU19XQVZFT1VUICAgICAgICAgItPx8vDu6fHy4u4g4vvi7uTgIOfi8+rgIgogICAgSURTX0RFVklDRVNfV0FWRUlOICAgICAgICAgICLT8fLw7unx8uLuIOLi7uTgIOfi8+rgIgogICAgSURTX0RFVklDRVNfTUlESU9VVCAgICAgICAgICLT8fLw7unx8uLuIOL74u7k4CBNSURJIgogICAgSURTX0RFVklDRVNfTUlESUlOICAgICAgICAgICLT8fLw7unx8uLuIOLi7uTgIE1JREkiCiAgICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIsTu7+7r7ejy5ev87e7lIPPx8vDu6fHy4u4iCiAgICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgItPx8vDu6fHy4u4g7Ojq+Ojw7uLg7ej/IgogICAgSURTX1VOQVZBSUxBQkxFX0RSSVZFUiAgICAgICLE8ODp4uXwLCDz6uDn4O3t++kg4iDw5eXx8vDlLCDt5SDt4Onk5e0hXG5cbtPk4Ovo8vwgXCIlc1wiIOjnIPDl5fHy8OA/IgogICAgSURTX1dBUk5JTkcgICAgICAgICAgICAgICAgICLC7ejs4O3o5SIKRU5ECg==