UNPKG

@chessle/chess.js-extended

Version:

A powerful browser-only chess engine package that bundles Stockfish for position evaluation and analysis on top of chess.js

1 lines 2.67 MB
export declare const STOCKFISH_JS_BASE64 = "LyohCiAqIFN0b2NrZmlzaCBjb3B5cmlnaHQgVC4gUm9tc3RhZCwgTS4gQ29zdGFsYmEsIEouIEtpaXNraSwgRy4gTGluc2NvdHQKICogYW5kIG90aGVyIGNvbnRyaWJ1dG9ycy4KICoKICogTXVsdGktdmFyaWFudCBzdXBwb3J0IGJ5IERhbmllbCBEdWdvdmljIGFuZCBjb250cmlidXRvcnM6CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kZHVnb3ZpYy9TdG9ja2Zpc2gKICoKICogUmVsZWFzZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLgogKgogKiBDb21waWxlZCB0byBKYXZhU2NyaXB0IGFuZCBXZWJhc3NlbWJseSBieSBOaWtsYXMgRmlla2FzCiAqIDxuaWtsYXMuZmlla2FzQGJhY2tzY2F0dGVyaW5nLmRlPiB1c2luZyBFbXNjcmlwdGVuIGFuZCBCaW5hcnllbi4KICoKICogaHR0cHM6Ly9naXRodWIuY29tL25pa2xhc2Yvc3RvY2tmaXNoLmpzCiAqLwoKdmFyIE1vZHVsZT10eXBlb2YgTW9kdWxlIT09InVuZGVmaW5lZCI/TW9kdWxlOnt9O3ZhciBNb2R1bGU9e3ByaW50OihmdW5jdGlvbihzdGRvdXQpe3Bvc3RNZXNzYWdlKHN0ZG91dCl9KX07dmFyIG1vZHVsZU92ZXJyaWRlcz17fTt2YXIga2V5O2ZvcihrZXkgaW4gTW9kdWxlKXtpZihNb2R1bGUuaGFzT3duUHJvcGVydHkoa2V5KSl7bW9kdWxlT3ZlcnJpZGVzW2tleV09TW9kdWxlW2tleV19fU1vZHVsZVsiYXJndW1lbnRzIl09W107TW9kdWxlWyJ0aGlzUHJvZ3JhbSJdPSIuL3RoaXMucHJvZ3JhbSI7TW9kdWxlWyJxdWl0Il09KGZ1bmN0aW9uKHN0YXR1cyx0b1Rocm93KXt0aHJvdyB0b1Rocm93fSk7TW9kdWxlWyJwcmVSdW4iXT1bXTtNb2R1bGVbInBvc3RSdW4iXT1bXTt2YXIgRU5WSVJPTk1FTlRfSVNfV0VCPWZhbHNlO3ZhciBFTlZJUk9OTUVOVF9JU19XT1JLRVI9ZmFsc2U7dmFyIEVOVklST05NRU5UX0lTX05PREU9ZmFsc2U7dmFyIEVOVklST05NRU5UX0lTX1NIRUxMPWZhbHNlO2lmKE1vZHVsZVsiRU5WSVJPTk1FTlQiXSl7aWYoTW9kdWxlWyJFTlZJUk9OTUVOVCJdPT09IldFQiIpe0VOVklST05NRU5UX0lTX1dFQj10cnVlfWVsc2UgaWYoTW9kdWxlWyJFTlZJUk9OTUVOVCJdPT09IldPUktFUiIpe0VOVklST05NRU5UX0lTX1dPUktFUj10cnVlfWVsc2UgaWYoTW9kdWxlWyJFTlZJUk9OTUVOVCJdPT09Ik5PREUiKXtFTlZJUk9OTUVOVF9JU19OT0RFPXRydWV9ZWxzZSBpZihNb2R1bGVbIkVOVklST05NRU5UIl09PT0iU0hFTEwiKXtFTlZJUk9OTUVOVF9JU19TSEVMTD10cnVlfWVsc2V7dGhyb3cgbmV3IEVycm9yKCJNb2R1bGVbJ0VOVklST05NRU5UJ10gdmFsdWUgaXMgbm90IHZhbGlkLiBtdXN0IGJlIG9uZSBvZjogV0VCfFdPUktFUnxOT0RFfFNIRUxMLiIpfX1lbHNle0VOVklST05NRU5UX0lTX1dFQj10eXBlb2Ygd2luZG93PT09Im9iamVjdCI7RU5WSVJPTk1FTlRfSVNfV09SS0VSPXR5cGVvZiBpbXBvcnRTY3JpcHRzPT09ImZ1bmN0aW9uIjtFTlZJUk9OTUVOVF9JU19OT0RFPXR5cGVvZiBwcm9jZXNzPT09Im9iamVjdCImJnR5cGVvZiByZXF1aXJlPT09ImZ1bmN0aW9uIiYmIUVOVklST05NRU5UX0lTX1dFQiYmIUVOVklST05NRU5UX0lTX1dPUktFUjtFTlZJUk9OTUVOVF9JU19TSEVMTD0hRU5WSVJPTk1FTlRfSVNfV0VCJiYhRU5WSVJPTk1FTlRfSVNfTk9ERSYmIUVOVklST05NRU5UX0lTX1dPUktFUn1pZihFTlZJUk9OTUVOVF9JU19OT0RFKXt2YXIgbm9kZUZTO3ZhciBub2RlUGF0aDtNb2R1bGVbInJlYWQiXT1mdW5jdGlvbiBzaGVsbF9yZWFkKGZpbGVuYW1lLGJpbmFyeSl7dmFyIHJldDtyZXQ9dHJ5UGFyc2VBc0RhdGFVUkkoZmlsZW5hbWUpO2lmKCFyZXQpe2lmKCFub2RlRlMpbm9kZUZTPXJlcXVpcmUoImZzIik7aWYoIW5vZGVQYXRoKW5vZGVQYXRoPXJlcXVpcmUoInBhdGgiKTtmaWxlbmFtZT1ub2RlUGF0aFsibm9ybWFsaXplIl0oZmlsZW5hbWUpO3JldD1ub2RlRlNbInJlYWRGaWxlU3luYyJdKGZpbGVuYW1lKX1yZXR1cm4gYmluYXJ5P3JldDpyZXQudG9TdHJpbmcoKX07TW9kdWxlWyJyZWFkQmluYXJ5Il09ZnVuY3Rpb24gcmVhZEJpbmFyeShmaWxlbmFtZSl7dmFyIHJldD1Nb2R1bGVbInJlYWQiXShmaWxlbmFtZSx0cnVlKTtpZighcmV0LmJ1ZmZlcil7cmV0PW5ldyBVaW50OEFycmF5KHJldCl9YXNzZXJ0KHJldC5idWZmZXIpO3JldHVybiByZXR9O2lmKHByb2Nlc3NbImFyZ3YiXS5sZW5ndGg+MSl7TW9kdWxlWyJ0aGlzUHJvZ3JhbSJdPXByb2Nlc3NbImFyZ3YiXVsxXS5yZXBsYWNlKC9cXC9nLCIvIil9TW9kdWxlWyJhcmd1bWVudHMiXT1wcm9jZXNzWyJhcmd2Il0uc2xpY2UoMik7aWYodHlwZW9mIG1vZHVsZSE9PSJ1bmRlZmluZWQiKXttb2R1bGVbImV4cG9ydHMiXT1Nb2R1bGV9cHJvY2Vzc1sib24iXSgidW5jYXVnaHRFeGNlcHRpb24iLChmdW5jdGlvbihleCl7aWYoIShleCBpbnN0YW5jZW9mIEV4aXRTdGF0dXMpKXt0aHJvdyBleH19KSk7cHJvY2Vzc1sib24iXSgidW5oYW5kbGVkUmVqZWN0aW9uIiwoZnVuY3Rpb24ocmVhc29uLHApe3Byb2Nlc3NbImV4aXQiXSgxKX0pKTtNb2R1bGVbImluc3BlY3QiXT0oZnVuY3Rpb24oKXtyZXR1cm4iW0Vtc2NyaXB0ZW4gTW9kdWxlIG9iamVjdF0ifSl9ZWxzZSBpZihFTlZJUk9OTUVOVF9JU19TSEVMTCl7aWYodHlwZW9mIHJlYWQhPSJ1bmRlZmluZWQiKXtNb2R1bGVbInJlYWQiXT1mdW5jdGlvbiBzaGVsbF9yZWFkKGYpe3ZhciBkYXRhPXRyeVBhcnNlQXNEYXRhVVJJKGYpO2lmKGRhdGEpe3JldHVybiBpbnRBcnJheVRvU3RyaW5nKGRhdGEpfXJldHVybiByZWFkKGYpfX1Nb2R1bGVbInJlYWRCaW5hcnkiXT1mdW5jdGlvbiByZWFkQmluYXJ5KGYpe3ZhciBkYXRhO2RhdGE9dHJ5UGFyc2VBc0RhdGFVUkkoZik7aWYoZGF0YSl7cmV0dXJuIGRhdGF9aWYodHlwZW9mIHJlYWRidWZmZXI9PT0iZnVuY3Rpb24iKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkocmVhZGJ1ZmZlcihmKSl9ZGF0YT1yZWFkKGYsImJpbmFyeSIpO2Fzc2VydCh0eXBlb2YgZGF0YT09PSJvYmplY3QiKTtyZXR1cm4gZGF0YX07aWYodHlwZW9mIHNjcmlwdEFyZ3MhPSJ1bmRlZmluZWQiKXtNb2R1bGVbImFyZ3VtZW50cyJdPXNjcmlwdEFyZ3N9ZWxzZSBpZih0eXBlb2YgYXJndW1lbnRzIT0idW5kZWZpbmVkIil7TW9kdWxlWyJhcmd1bWVudHMiXT1hcmd1bWVudHN9aWYodHlwZW9mIHF1aXQ9PT0iZnVuY3Rpb24iKXtNb2R1bGVbInF1aXQiXT0oZnVuY3Rpb24oc3RhdHVzLHRvVGhyb3cpe3F1aXQoc3RhdHVzKX0pfX1lbHNlIGlmKEVOVklST05NRU5UX0lTX1dFQnx8RU5WSVJPTk1FTlRfSVNfV09SS0VSKXtNb2R1bGVbInJlYWQiXT1mdW5jdGlvbiBzaGVsbF9yZWFkKHVybCl7dHJ5e3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKCJHRVQiLHVybCxmYWxzZSk7eGhyLnNlbmQobnVsbCk7cmV0dXJuIHhoci5yZXNwb25zZVRleHR9Y2F0Y2goZXJyKXt2YXIgZGF0YT10cnlQYXJzZUFzRGF0YVVSSSh1cmwpO2lmKGRhdGEpe3JldHVybiBpbnRBcnJheVRvU3RyaW5nKGRhdGEpfXRocm93IGVycn19O2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7TW9kdWxlWyJyZWFkQmluYXJ5Il09ZnVuY3Rpb24gcmVhZEJpbmFyeSh1cmwpe3RyeXt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3BlbigiR0VUIix1cmwsZmFsc2UpO3hoci5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIjt4aHIuc2VuZChudWxsKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoeGhyLnJlc3BvbnNlKX1jYXRjaChlcnIpe3ZhciBkYXRhPXRyeVBhcnNlQXNEYXRhVVJJKHVybCk7aWYoZGF0YSl7cmV0dXJuIGRhdGF9dGhyb3cgZXJyfX19TW9kdWxlWyJyZWFkQXN5bmMiXT1mdW5jdGlvbiByZWFkQXN5bmModXJsLG9ubG9hZCxvbmVycm9yKXt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3BlbigiR0VUIix1cmwsdHJ1ZSk7eGhyLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiO3hoci5vbmxvYWQ9ZnVuY3Rpb24geGhyX29ubG9hZCgpe2lmKHhoci5zdGF0dXM9PTIwMHx8eGhyLnN0YXR1cz09MCYmeGhyLnJlc3BvbnNlKXtvbmxvYWQoeGhyLnJlc3BvbnNlKTtyZXR1cm59dmFyIGRhdGE9dHJ5UGFyc2VBc0RhdGFVUkkodXJsKTtpZihkYXRhKXtvbmxvYWQoZGF0YS5idWZmZXIpO3JldHVybn1vbmVycm9yKCl9O3hoci5vbmVycm9yPW9uZXJyb3I7eGhyLnNlbmQobnVsbCl9O2lmKHR5cGVvZiBhcmd1bWVudHMhPSJ1bmRlZmluZWQiKXtNb2R1bGVbImFyZ3VtZW50cyJdPWFyZ3VtZW50c31Nb2R1bGVbInNldFdpbmRvd1RpdGxlIl09KGZ1bmN0aW9uKHRpdGxlKXtkb2N1bWVudC50aXRsZT10aXRsZX0pfU1vZHVsZVsicHJpbnQiXT10eXBlb2YgY29uc29sZSE9PSJ1bmRlZmluZWQiP2NvbnNvbGUubG9nOnR5cGVvZiBwcmludCE9PSJ1bmRlZmluZWQiP3ByaW50Om51bGw7TW9kdWxlWyJwcmludEVyciJdPXR5cGVvZiBwcmludEVyciE9PSJ1bmRlZmluZWQiP3ByaW50RXJyOnR5cGVvZiBjb25zb2xlIT09InVuZGVmaW5lZCImJmNvbnNvbGUud2Fybnx8TW9kdWxlWyJwcmludCJdO01vZHVsZS5wcmludD1Nb2R1bGVbInByaW50Il07TW9kdWxlLnByaW50RXJyPU1vZHVsZVsicHJpbnRFcnIiXTtmb3Ioa2V5IGluIG1vZHVsZU92ZXJyaWRlcyl7aWYobW9kdWxlT3ZlcnJpZGVzLmhhc093blByb3BlcnR5KGtleSkpe01vZHVsZVtrZXldPW1vZHVsZU92ZXJyaWRlc1trZXldfX1tb2R1bGVPdmVycmlkZXM9dW5kZWZpbmVkO3ZhciBTVEFDS19BTElHTj0xNjtmdW5jdGlvbiBzdGF0aWNBbGxvYyhzaXplKXthc3NlcnQoIXN0YXRpY1NlYWxlZCk7dmFyIHJldD1TVEFUSUNUT1A7U1RBVElDVE9QPVNUQVRJQ1RPUCtzaXplKzE1Ji0xNjtyZXR1cm4gcmV0fWZ1bmN0aW9uIGR5bmFtaWNBbGxvYyhzaXplKXthc3NlcnQoRFlOQU1JQ1RPUF9QVFIpO3ZhciByZXQ9SEVBUDMyW0RZTkFNSUNUT1BfUFRSPj4yXTt2YXIgZW5kPXJldCtzaXplKzE1Ji0xNjtIRUFQMzJbRFlOQU1JQ1RPUF9QVFI+PjJdPWVuZDtpZihlbmQ+PVRPVEFMX01FTU9SWSl7dmFyIHN1Y2Nlc3M9ZW5sYXJnZU1lbW9yeSgpO2lmKCFzdWNjZXNzKXtIRUFQMzJbRFlOQU1JQ1RPUF9QVFI+PjJdPXJldDtyZXR1cm4gMH19cmV0dXJuIHJldH1mdW5jdGlvbiBhbGlnbk1lbW9yeShzaXplLGZhY3Rvcil7aWYoIWZhY3RvcilmYWN0b3I9U1RBQ0tfQUxJR047dmFyIHJldD1zaXplPU1hdGguY2VpbChzaXplL2ZhY3RvcikqZmFjdG9yO3JldHVybiByZXR9ZnVuY3Rpb24gZ2V0TmF0aXZlVHlwZVNpemUodHlwZSl7c3dpdGNoKHR5cGUpe2Nhc2UiaTEiOmNhc2UiaTgiOnJldHVybiAxO2Nhc2UiaTE2IjpyZXR1cm4gMjtjYXNlImkzMiI6cmV0dXJuIDQ7Y2FzZSJpNjQiOnJldHVybiA4O2Nhc2UiZmxvYXQiOnJldHVybiA0O2Nhc2UiZG91YmxlIjpyZXR1cm4gODtkZWZhdWx0OntpZih0eXBlW3R5cGUubGVuZ3RoLTFdPT09IioiKXtyZXR1cm4gNH1lbHNlIGlmKHR5cGVbMF09PT0iaSIpe3ZhciBiaXRzPXBhcnNlSW50KHR5cGUuc3Vic3RyKDEpKTthc3NlcnQoYml0cyU4PT09MCk7cmV0dXJuIGJpdHMvOH1lbHNle3JldHVybiAwfX19fWZ1bmN0aW9uIHdhcm5PbmNlKHRleHQpe2lmKCF3YXJuT25jZS5zaG93bil3YXJuT25jZS5zaG93bj17fTtpZighd2Fybk9uY2Uuc2hvd25bdGV4dF0pe3dhcm5PbmNlLnNob3duW3RleHRdPTE7TW9kdWxlLnByaW50RXJyKHRleHQpfX12YXIgZnVuY3Rpb25Qb2ludGVycz1uZXcgQXJyYXkoMCk7dmFyIGZ1bmNXcmFwcGVycz17fTtmdW5jdGlvbiBnZXRGdW5jV3JhcHBlcihmdW5jLHNpZyl7aWYoIWZ1bmMpcmV0dXJuO2Fzc2VydChzaWcpO2lmKCFmdW5jV3JhcHBlcnNbc2lnXSl7ZnVuY1dyYXBwZXJzW3NpZ109e319dmFyIHNpZ0NhY2hlPWZ1bmNXcmFwcGVyc1tzaWddO2lmKCFzaWdDYWNoZVtmdW5jXSl7aWYoc2lnLmxlbmd0aD09PTEpe3NpZ0NhY2hlW2Z1bmNdPWZ1bmN0aW9uIGR5bkNhbGxfd3JhcHBlcigpe3JldHVybiBkeW5DYWxsKHNpZyxmdW5jKX19ZWxzZSBpZihzaWcubGVuZ3RoPT09Mil7c2lnQ2FjaGVbZnVuY109ZnVuY3Rpb24gZHluQ2FsbF93cmFwcGVyKGFyZyl7cmV0dXJuIGR5bkNhbGwoc2lnLGZ1bmMsW2FyZ10pfX1lbHNle3NpZ0NhY2hlW2Z1bmNdPWZ1bmN0aW9uIGR5bkNhbGxfd3JhcHBlcigpe3JldHVybiBkeW5DYWxsKHNpZyxmdW5jLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfX19cmV0dXJuIHNpZ0NhY2hlW2Z1bmNdfWZ1bmN0aW9uIGR5bkNhbGwoc2lnLHB0cixhcmdzKXtpZihhcmdzJiZhcmdzLmxlbmd0aCl7cmV0dXJuIE1vZHVsZVsiZHluQ2FsbF8iK3NpZ10uYXBwbHkobnVsbCxbcHRyXS5jb25jYXQoYXJncykpfWVsc2V7cmV0dXJuIE1vZHVsZVsiZHluQ2FsbF8iK3NpZ10uY2FsbChudWxsLHB0cil9fXZhciBHTE9CQUxfQkFTRT04O3ZhciBBQk9SVD0wO3ZhciBFWElUU1RBVFVTPTA7ZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbix0ZXh0KXtpZighY29uZGl0aW9uKXthYm9ydCgiQXNzZXJ0aW9uIGZhaWxlZDogIit0ZXh0KX19ZnVuY3Rpb24gZ2V0Q0Z1bmMoaWRlbnQpe3ZhciBmdW5jPU1vZHVsZVsiXyIraWRlbnRdO2Fzc2VydChmdW5jLCJDYW5ub3QgY2FsbCB1bmtub3duIGZ1bmN0aW9uICIraWRlbnQrIiwgbWFrZSBzdXJlIGl0IGlzIGV4cG9ydGVkIik7cmV0dXJuIGZ1bmN9dmFyIEpTZnVuY3M9eyJzdGFja1NhdmUiOihmdW5jdGlvbigpe3N0YWNrU2F2ZSgpfSksInN0YWNrUmVzdG9yZSI6KGZ1bmN0aW9uKCl7c3RhY2tSZXN0b3JlKCl9KSwiYXJyYXlUb0MiOihmdW5jdGlvbihhcnIpe3ZhciByZXQ9c3RhY2tBbGxvYyhhcnIubGVuZ3RoKTt3cml0ZUFycmF5VG9NZW1vcnkoYXJyLHJldCk7cmV0dXJuIHJldH0pLCJzdHJpbmdUb0MiOihmdW5jdGlvbihzdHIpe3ZhciByZXQ9MDtpZihzdHIhPT1udWxsJiZzdHIhPT11bmRlZmluZWQmJnN0ciE9PTApe3ZhciBsZW49KHN0ci5sZW5ndGg8PDIpKzE7cmV0PXN0YWNrQWxsb2MobGVuKTtzdHJpbmdUb1VURjgoc3RyLHJldCxsZW4pfXJldHVybiByZXR9KX07dmFyIHRvQz17InN0cmluZyI6SlNmdW5jc1sic3RyaW5nVG9DIl0sImFycmF5IjpKU2Z1bmNzWyJhcnJheVRvQyJdfTtmdW5jdGlvbiBjY2FsbChpZGVudCxyZXR1cm5UeXBlLGFyZ1R5cGVzLGFyZ3Msb3B0cyl7dmFyIGZ1bmM9Z2V0Q0Z1bmMoaWRlbnQpO3ZhciBjQXJncz1bXTt2YXIgc3RhY2s9MDtpZihhcmdzKXtmb3IodmFyIGk9MDtpPGFyZ3MubGVuZ3RoO2krKyl7dmFyIGNvbnZlcnRlcj10b0NbYXJnVHlwZXNbaV1dO2lmKGNvbnZlcnRlcil7aWYoc3RhY2s9PT0wKXN0YWNrPXN0YWNrU2F2ZSgpO2NBcmdzW2ldPWNvbnZlcnRlcihhcmdzW2ldKX1lbHNle2NBcmdzW2ldPWFyZ3NbaV19fX12YXIgcmV0PWZ1bmMuYXBwbHkobnVsbCxjQXJncyk7aWYocmV0dXJuVHlwZT09PSJzdHJpbmciKXJldD1Qb2ludGVyX3N0cmluZ2lmeShyZXQpO2lmKHN0YWNrIT09MCl7c3RhY2tSZXN0b3JlKHN0YWNrKX1yZXR1cm4gcmV0fWZ1bmN0aW9uIHNldFZhbHVlKHB0cix2YWx1ZSx0eXBlLG5vU2FmZSl7dHlwZT10eXBlfHwiaTgiO2lmKHR5cGUuY2hhckF0KHR5cGUubGVuZ3RoLTEpPT09IioiKXR5cGU9ImkzMiI7c3dpdGNoKHR5cGUpe2Nhc2UiaTEiOkhFQVA4W3B0cj4+MF09dmFsdWU7YnJlYWs7Y2FzZSJpOCI6SEVBUDhbcHRyPj4wXT12YWx1ZTticmVhaztjYXNlImkxNiI6SEVBUDE2W3B0cj4+MV09dmFsdWU7YnJlYWs7Y2FzZSJpMzIiOkhFQVAzMltwdHI+PjJdPXZhbHVlO2JyZWFrO2Nhc2UiaTY0Ijp0ZW1wSTY0PVt2YWx1ZT4+PjAsKHRlbXBEb3VibGU9dmFsdWUsK01hdGhfYWJzKHRlbXBEb3VibGUpPj0rMT90ZW1wRG91YmxlPiswPyhNYXRoX21pbigrTWF0aF9mbG9vcih0ZW1wRG91YmxlLys0Mjk0OTY3Mjk2KSwrNDI5NDk2NzI5NSl8MCk+Pj4wOn5+K01hdGhfY2VpbCgodGVtcERvdWJsZS0gKyh+fnRlbXBEb3VibGU+Pj4wKSkvKzQyOTQ5NjcyOTYpPj4+MDowKV0sSEVBUDMyW3B0cj4+Ml09dGVtcEk2NFswXSxIRUFQMzJbcHRyKzQ+PjJdPXRlbXBJNjRbMV07YnJlYWs7Y2FzZSJmbG9hdCI6SEVBUEYzMltwdHI+PjJdPXZhbHVlO2JyZWFrO2Nhc2UiZG91YmxlIjpIRUFQRjY0W3B0cj4+M109dmFsdWU7YnJlYWs7ZGVmYXVsdDphYm9ydCgiaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTogIit0eXBlKX19dmFyIEFMTE9DX1NUQVRJQz0yO3ZhciBBTExPQ19OT05FPTQ7ZnVuY3Rpb24gYWxsb2NhdGUoc2xhYix0eXBlcyxhbGxvY2F0b3IscHRyKXt2YXIgemVyb2luaXQsc2l6ZTtpZih0eXBlb2Ygc2xhYj09PSJudW1iZXIiKXt6ZXJvaW5pdD10cnVlO3NpemU9c2xhYn1lbHNle3plcm9pbml0PWZhbHNlO3NpemU9c2xhYi5sZW5ndGh9dmFyIHNpbmdsZVR5cGU9dHlwZW9mIHR5cGVzPT09InN0cmluZyI/dHlwZXM6bnVsbDt2YXIgcmV0O2lmKGFsbG9jYXRvcj09QUxMT0NfTk9ORSl7cmV0PXB0cn1lbHNle3JldD1bdHlwZW9mIF9tYWxsb2M9PT0iZnVuY3Rpb24iP19tYWxsb2M6c3RhdGljQWxsb2Msc3RhY2tBbGxvYyxzdGF0aWNBbGxvYyxkeW5hbWljQWxsb2NdW2FsbG9jYXRvcj09PXVuZGVmaW5lZD9BTExPQ19TVEFUSUM6YWxsb2NhdG9yXShNYXRoLm1heChzaXplLHNpbmdsZVR5cGU/MTp0eXBlcy5sZW5ndGgpKX1pZih6ZXJvaW5pdCl7dmFyIHN0b3A7cHRyPXJldDthc3NlcnQoKHJldCYzKT09MCk7c3RvcD1yZXQrKHNpemUmfjMpO2Zvcig7cHRyPHN0b3A7cHRyKz00KXtIRUFQMzJbcHRyPj4yXT0wfXN0b3A9cmV0K3NpemU7d2hpbGUocHRyPHN0b3Ape0hFQVA4W3B0cisrPj4wXT0wfXJldHVybiByZXR9aWYoc2luZ2xlVHlwZT09PSJpOCIpe2lmKHNsYWIuc3ViYXJyYXl8fHNsYWIuc2xpY2Upe0hFQVBVOC5zZXQoc2xhYixyZXQpfWVsc2V7SEVBUFU4LnNldChuZXcgVWludDhBcnJheShzbGFiKSxyZXQpfXJldHVybiByZXR9dmFyIGk9MCx0eXBlLHR5cGVTaXplLHByZXZpb3VzVHlwZTt3aGlsZShpPHNpemUpe3ZhciBjdXJyPXNsYWJbaV07dHlwZT1zaW5nbGVUeXBlfHx0eXBlc1tpXTtpZih0eXBlPT09MCl7aSsrO2NvbnRpbnVlfWlmKHR5cGU9PSJpNjQiKXR5cGU9ImkzMiI7c2V0VmFsdWUocmV0K2ksY3Vycix0eXBlKTtpZihwcmV2aW91c1R5cGUhPT10eXBlKXt0eXBlU2l6ZT1nZXROYXRpdmVUeXBlU2l6ZSh0eXBlKTtwcmV2aW91c1R5cGU9dHlwZX1pKz10eXBlU2l6ZX1yZXR1cm4gcmV0fWZ1bmN0aW9uIFBvaW50ZXJfc3RyaW5naWZ5KHB0cixsZW5ndGgpe2lmKGxlbmd0aD09PTB8fCFwdHIpcmV0dXJuIiI7dmFyIGhhc1V0Zj0wO3ZhciB0O3ZhciBpPTA7d2hpbGUoMSl7dD1IRUFQVThbcHRyK2k+PjBdO2hhc1V0Znw9dDtpZih0PT0wJiYhbGVuZ3RoKWJyZWFrO2krKztpZihsZW5ndGgmJmk9PWxlbmd0aClicmVha31pZighbGVuZ3RoKWxlbmd0aD1pO3ZhciByZXQ9IiI7aWYoaGFzVXRmPDEyOCl7dmFyIE1BWF9DSFVOSz0xMDI0O3ZhciBjdXJyO3doaWxlKGxlbmd0aD4wKXtjdXJyPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLEhFQVBVOC5zdWJhcnJheShwdHIscHRyK01hdGgubWluKGxlbmd0aCxNQVhfQ0hVTkspKSk7cmV0PXJldD9yZXQrY3VycjpjdXJyO3B0cis9TUFYX0NIVU5LO2xlbmd0aC09TUFYX0NIVU5LfXJldHVybiByZXR9cmV0dXJuIFVURjhUb1N0cmluZyhwdHIpfXZhciBVVEY4RGVjb2Rlcj10eXBlb2YgVGV4dERlY29kZXIhPT0idW5kZWZpbmVkIj9uZXcgVGV4dERlY29kZXIoInV0ZjgiKTp1bmRlZmluZWQ7ZnVuY3Rpb24gVVRGOEFycmF5VG9TdHJpbmcodThBcnJheSxpZHgpe3ZhciBlbmRQdHI9aWR4O3doaWxlKHU4QXJyYXlbZW5kUHRyXSkrK2VuZFB0cjtpZihlbmRQdHItaWR4PjE2JiZ1OEFycmF5LnN1YmFycmF5JiZVVEY4RGVjb2Rlcil7cmV0dXJuIFVURjhEZWNvZGVyLmRlY29kZSh1OEFycmF5LnN1YmFycmF5KGlkeCxlbmRQdHIpKX1lbHNle3ZhciB1MCx1MSx1Mix1Myx1NCx1NTt2YXIgc3RyPSIiO3doaWxlKDEpe3UwPXU4QXJyYXlbaWR4KytdO2lmKCF1MClyZXR1cm4gc3RyO2lmKCEodTAmMTI4KSl7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHUwKTtjb250aW51ZX11MT11OEFycmF5W2lkeCsrXSY2MztpZigodTAmMjI0KT09MTkyKXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoKHUwJjMxKTw8Nnx1MSk7Y29udGludWV9dTI9dThBcnJheVtpZHgrK10mNjM7aWYoKHUwJjI0MCk9PTIyNCl7dTA9KHUwJjE1KTw8MTJ8dTE8PDZ8dTJ9ZWxzZXt1Mz11OEFycmF5W2lkeCsrXSY2MztpZigodTAmMjQ4KT09MjQwKXt1MD0odTAmNyk8PDE4fHUxPDwxMnx1Mjw8Nnx1M31lbHNle3U0PXU4QXJyYXlbaWR4KytdJjYzO2lmKCh1MCYyNTIpPT0yNDgpe3UwPSh1MCYzKTw8MjR8dTE8PDE4fHUyPDwxMnx1Mzw8Nnx1NH1lbHNle3U1PXU4QXJyYXlbaWR4KytdJjYzO3UwPSh1MCYxKTw8MzB8dTE8PDI0fHUyPDwxOHx1Mzw8MTJ8dTQ8PDZ8dTV9fX1pZih1MDw2NTUzNil7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHUwKX1lbHNle3ZhciBjaD11MC02NTUzNjtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8Y2g+PjEwLDU2MzIwfGNoJjEwMjMpfX19fWZ1bmN0aW9uIFVURjhUb1N0cmluZyhwdHIpe3JldHVybiBVVEY4QXJyYXlUb1N0cmluZyhIRUFQVTgscHRyKX1mdW5jdGlvbiBzdHJpbmdUb1VURjhBcnJheShzdHIsb3V0VThBcnJheSxvdXRJZHgsbWF4Qnl0ZXNUb1dyaXRlKXtpZighKG1heEJ5dGVzVG9Xcml0ZT4wKSlyZXR1cm4gMDt2YXIgc3RhcnRJZHg9b3V0SWR4O3ZhciBlbmRJZHg9b3V0SWR4K21heEJ5dGVzVG9Xcml0ZS0xO2Zvcih2YXIgaT0wO2k8c3RyLmxlbmd0aDsrK2kpe3ZhciB1PXN0ci5jaGFyQ29kZUF0KGkpO2lmKHU+PTU1Mjk2JiZ1PD01NzM0Myl1PTY1NTM2KygodSYxMDIzKTw8MTApfHN0ci5jaGFyQ29kZUF0KCsraSkmMTAyMztpZih1PD0xMjcpe2lmKG91dElkeD49ZW5kSWR4KWJyZWFrO291dFU4QXJyYXlbb3V0SWR4KytdPXV9ZWxzZSBpZih1PD0yMDQ3KXtpZihvdXRJZHgrMT49ZW5kSWR4KWJyZWFrO291dFU4QXJyYXlbb3V0SWR4KytdPTE5Mnx1Pj42O291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1JjYzfWVsc2UgaWYodTw9NjU1MzUpe2lmKG91dElkeCsyPj1lbmRJZHgpYnJlYWs7b3V0VThBcnJheVtvdXRJZHgrK109MjI0fHU+PjEyO291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1Pj42JjYzO291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1JjYzfWVsc2UgaWYodTw9MjA5NzE1MSl7aWYob3V0SWR4KzM+PWVuZElkeClicmVhaztvdXRVOEFycmF5W291dElkeCsrXT0yNDB8dT4+MTg7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHU+PjEyJjYzO291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1Pj42JjYzO291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1JjYzfWVsc2UgaWYodTw9NjcxMDg4NjMpe2lmKG91dElkeCs0Pj1lbmRJZHgpYnJlYWs7b3V0VThBcnJheVtvdXRJZHgrK109MjQ4fHU+PjI0O291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1Pj4xOCY2MztvdXRVOEFycmF5W291dElkeCsrXT0xMjh8dT4+MTImNjM7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHU+PjYmNjM7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHUmNjN9ZWxzZXtpZihvdXRJZHgrNT49ZW5kSWR4KWJyZWFrO291dFU4QXJyYXlbb3V0SWR4KytdPTI1Mnx1Pj4zMDtvdXRVOEFycmF5W291dElkeCsrXT0xMjh8dT4+MjQmNjM7b3V0VThBcnJheVtvdXRJZHgrK109MTI4fHU+PjE4JjYzO291dFU4QXJyYXlbb3V0SWR4KytdPTEyOHx1Pj4xMiY2MztvdXRVOEFycmF5W291dElkeCsrXT0xMjh8dT4+NiY2MztvdXRVOEFycmF5W291dElkeCsrXT0xMjh8dSY2M319b3V0VThBcnJheVtvdXRJZHhdPTA7cmV0dXJuIG91dElkeC1zdGFydElkeH1mdW5jdGlvbiBzdHJpbmdUb1VURjgoc3RyLG91dFB0cixtYXhCeXRlc1RvV3JpdGUpe3JldHVybiBzdHJpbmdUb1VURjhBcnJheShzdHIsSEVBUFU4LG91dFB0cixtYXhCeXRlc1RvV3JpdGUpfWZ1bmN0aW9uIGxlbmd0aEJ5dGVzVVRGOChzdHIpe3ZhciBsZW49MDtmb3IodmFyIGk9MDtpPHN0ci5sZW5ndGg7KytpKXt2YXIgdT1zdHIuY2hhckNvZGVBdChpKTtpZih1Pj01NTI5NiYmdTw9NTczNDMpdT02NTUzNisoKHUmMTAyMyk8PDEwKXxzdHIuY2hhckNvZGVBdCgrK2kpJjEwMjM7aWYodTw9MTI3KXsrK2xlbn1lbHNlIGlmKHU8PTIwNDcpe2xlbis9Mn1lbHNlIGlmKHU8PTY1NTM1KXtsZW4rPTN9ZWxzZSBpZih1PD0yMDk3MTUxKXtsZW4rPTR9ZWxzZSBpZih1PD02NzEwODg2Myl7bGVuKz01fWVsc2V7bGVuKz02fX1yZXR1cm4gbGVufXZhciBVVEYxNkRlY29kZXI9dHlwZW9mIFRleHREZWNvZGVyIT09InVuZGVmaW5lZCI/bmV3IFRleHREZWNvZGVyKCJ1dGYtMTZsZSIpOnVuZGVmaW5lZDtmdW5jdGlvbiBhbGxvY2F0ZVVURjgoc3RyKXt2YXIgc2l6ZT1sZW5ndGhCeXRlc1VURjgoc3RyKSsxO3ZhciByZXQ9X21hbGxvYyhzaXplKTtpZihyZXQpc3RyaW5nVG9VVEY4QXJyYXkoc3RyLEhFQVA4LHJldCxzaXplKTtyZXR1cm4gcmV0fWZ1bmN0aW9uIGFsbG9jYXRlVVRGOE9uU3RhY2soc3RyKXt2YXIgc2l6ZT1sZW5ndGhCeXRlc1VURjgoc3RyKSsxO3ZhciByZXQ9c3RhY2tBbGxvYyhzaXplKTtzdHJpbmdUb1VURjhBcnJheShzdHIsSEVBUDgscmV0LHNpemUpO3JldHVybiByZXR9ZnVuY3Rpb24gZGVtYW5nbGUoZnVuYyl7cmV0dXJuIGZ1bmN9ZnVuY3Rpb24gZGVtYW5nbGVBbGwodGV4dCl7dmFyIHJlZ2V4PS9fX1pbXHdcZF9dKy9nO3JldHVybiB0ZXh0LnJlcGxhY2UocmVnZXgsKGZ1bmN0aW9uKHgpe3ZhciB5PWRlbWFuZ2xlKHgpO3JldHVybiB4PT09eT94OngrIiBbIit5KyJdIn0pKX1mdW5jdGlvbiBqc1N0YWNrVHJhY2UoKXt2YXIgZXJyPW5ldyBFcnJvcjtpZighZXJyLnN0YWNrKXt0cnl7dGhyb3cgbmV3IEVycm9yKDApfWNhdGNoKGUpe2Vycj1lfWlmKCFlcnIuc3RhY2spe3JldHVybiIobm8gc3RhY2sgdHJhY2UgYXZhaWxhYmxlKSJ9fXJldHVybiBlcnIuc3RhY2sudG9TdHJpbmcoKX1mdW5jdGlvbiBzdGFja1RyYWNlKCl7dmFyIGpzPWpzU3RhY2tUcmFjZSgpO2lmKE1vZHVsZVsiZXh0cmFTdGFja1RyYWNlIl0panMrPSJcbiIrTW9kdWxlWyJleHRyYVN0YWNrVHJhY2UiXSgpO3JldHVybiBkZW1hbmdsZUFsbChqcyl9dmFyIGJ1ZmZlcixIRUFQOCxIRUFQVTgsSEVBUDE2LEhFQVBVMTYsSEVBUDMyLEhFQVBVMzIsSEVBUEYzMixIRUFQRjY0O2Z1bmN0aW9uIHVwZGF0ZUdsb2JhbEJ1ZmZlclZpZXdzKCl7TW9kdWxlWyJIRUFQOCJdPUhFQVA4PW5ldyBJbnQ4QXJyYXkoYnVmZmVyKTtNb2R1bGVbIkhFQVAxNiJdPUhFQVAxNj1uZXcgSW50MTZBcnJheShidWZmZXIpO01vZHVsZVsiSEVBUDMyIl09SEVBUDMyPW5ldyBJbnQzMkFycmF5KGJ1ZmZlcik7TW9kdWxlWyJIRUFQVTgiXT1IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtNb2R1bGVbIkhFQVBVMTYiXT1IRUFQVTE2PW5ldyBVaW50MTZBcnJheShidWZmZXIpO01vZHVsZVsiSEVBUFUzMiJdPUhFQVBVMzI9bmV3IFVpbnQzMkFycmF5KGJ1ZmZlcik7TW9kdWxlWyJIRUFQRjMyIl09SEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KGJ1ZmZlcik7TW9kdWxlWyJIRUFQRjY0Il09SEVBUEY2ND1uZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlcil9dmFyIFNUQVRJQ19CQVNFLFNUQVRJQ1RPUCxzdGF0aWNTZWFsZWQ7dmFyIFNUQUNLX0JBU0UsU1RBQ0tUT1AsU1RBQ0tfTUFYO3ZhciBEWU5BTUlDX0JBU0UsRFlOQU1JQ1RPUF9QVFI7U1RBVElDX0JBU0U9U1RBVElDVE9QPVNUQUNLX0JBU0U9U1RBQ0tUT1A9U1RBQ0tfTUFYPURZTkFNSUNfQkFTRT1EWU5BTUlDVE9QX1BUUj0wO3N0YXRpY1NlYWxlZD1mYWxzZTtmdW5jdGlvbiBhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeSgpe2Fib3J0KCJDYW5ub3QgZW5sYXJnZSBtZW1vcnkgYXJyYXlzLiBFaXRoZXIgKDEpIGNvbXBpbGUgd2l0aCAgLXMgVE9UQUxfTUVNT1JZPVggIHdpdGggWCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSAiK1RPVEFMX01FTU9SWSsiLCAoMikgY29tcGlsZSB3aXRoICAtcyBBTExPV19NRU1PUllfR1JPV1RIPTEgIHdoaWNoIGFsbG93cyBpbmNyZWFzaW5nIHRoZSBzaXplIGF0IHJ1bnRpbWUgYnV0IHByZXZlbnRzIHNvbWUgb3B0aW1pemF0aW9ucywgKDMpIHNldCBNb2R1bGUuVE9UQUxfTUVNT1JZIHRvIGEgaGlnaGVyIHZhbHVlIGJlZm9yZSB0aGUgcHJvZ3JhbSBydW5zLCBvciAoNCkgaWYgeW91IHdhbnQgbWFsbG9jIHRvIHJldHVybiBOVUxMICgwKSBpbnN0ZWFkIG9mIHRoaXMgYWJvcnQsIGNvbXBpbGUgd2l0aCAgLXMgQUJPUlRJTkdfTUFMTE9DPTAgIil9ZnVuY3Rpb24gZW5sYXJnZU1lbW9yeSgpe2Fib3J0T25DYW5ub3RHcm93TWVtb3J5KCl9dmFyIFRPVEFMX1NUQUNLPU1vZHVsZVsiVE9UQUxfU1RBQ0siXXx8NTI0Mjg4MDt2YXIgVE9UQUxfTUVNT1JZPU1vZHVsZVsiVE9UQUxfTUVNT1JZIl18fDMzNTU0NDMyO2lmKFRPVEFMX01FTU9SWTxUT1RBTF9TVEFDSylNb2R1bGUucHJpbnRFcnIoIlRPVEFMX01FTU9SWSBzaG91bGQgYmUgbGFyZ2VyIHRoYW4gVE9UQUxfU1RBQ0ssIHdhcyAiK1RPVEFMX01FTU9SWSsiISAoVE9UQUxfU1RBQ0s9IitUT1RBTF9TVEFDSysiKSIpO2lmKE1vZHVsZVsiYnVmZmVyIl0pe2J1ZmZlcj1Nb2R1bGVbImJ1ZmZlciJdfWVsc2V7e2J1ZmZlcj1uZXcgQXJyYXlCdWZmZXIoVE9UQUxfTUVNT1JZKX1Nb2R1bGVbImJ1ZmZlciJdPWJ1ZmZlcn11cGRhdGVHbG9iYWxCdWZmZXJWaWV3cygpO2Z1bmN0aW9uIGdldFRvdGFsTWVtb3J5KCl7cmV0dXJuIFRPVEFMX01FTU9SWX1IRUFQMzJbMF09MTY2ODUwOTAyOTtIRUFQMTZbMV09MjU0NTk7aWYoSEVBUFU4WzJdIT09MTE1fHxIRUFQVThbM10hPT05OSl0aHJvdyJSdW50aW1lIGVycm9yOiBleHBlY3RlZCB0aGUgc3lzdGVtIHRvIGJlIGxpdHRsZS1lbmRpYW4hIjtmdW5jdGlvbiBjYWxsUnVudGltZUNhbGxiYWNrcyhjYWxsYmFja3Mpe3doaWxlKGNhbGxiYWNrcy5sZW5ndGg+MCl7dmFyIGNhbGxiYWNrPWNhbGxiYWNrcy5zaGlmdCgpO2lmKHR5cGVvZiBjYWxsYmFjaz09ImZ1bmN0aW9uIil7Y2FsbGJhY2soKTtjb250aW51ZX12YXIgZnVuYz1jYWxsYmFjay5mdW5jO2lmKHR5cGVvZiBmdW5jPT09Im51bWJlciIpe2lmKGNhbGxiYWNrLmFyZz09PXVuZGVmaW5lZCl7TW9kdWxlWyJkeW5DYWxsX3YiXShmdW5jKX1lbHNle01vZHVsZVsiZHluQ2FsbF92aSJdKGZ1bmMsY2FsbGJhY2suYXJnKX19ZWxzZXtmdW5jKGNhbGxiYWNrLmFyZz09PXVuZGVmaW5lZD9udWxsOmNhbGxiYWNrLmFyZyl9fX12YXIgX19BVFBSRVJVTl9fPVtdO3ZhciBfX0FUSU5JVF9fPVtdO3ZhciBfX0FUTUFJTl9fPVtdO3ZhciBfX0FURVhJVF9fPVtdO3ZhciBfX0FUUE9TVFJVTl9fPVtdO3ZhciBydW50aW1lSW5pdGlhbGl6ZWQ9ZmFsc2U7dmFyIHJ1bnRpbWVFeGl0ZWQ9ZmFsc2U7ZnVuY3Rpb24gcHJlUnVuKCl7aWYoTW9kdWxlWyJwcmVSdW4iXSl7aWYodHlwZW9mIE1vZHVsZVsicHJlUnVuIl09PSJmdW5jdGlvbiIpTW9kdWxlWyJwcmVSdW4iXT1bTW9kdWxlWyJwcmVSdW4iXV07d2hpbGUoTW9kdWxlWyJwcmVSdW4iXS5sZW5ndGgpe2FkZE9uUHJlUnVuKE1vZHVsZVsicHJlUnVuIl0uc2hpZnQoKSl9fWNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRQUkVSVU5fXyl9ZnVuY3Rpb24gZW5zdXJlSW5pdFJ1bnRpbWUoKXtpZihydW50aW1lSW5pdGlhbGl6ZWQpcmV0dXJuO3J1bnRpbWVJbml0aWFsaXplZD10cnVlO2NhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRJTklUX18pfWZ1bmN0aW9uIHByZU1haW4oKXtjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUTUFJTl9fKX1mdW5jdGlvbiBleGl0UnVudGltZSgpe2NhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRFWElUX18pO3J1bnRpbWVFeGl0ZWQ9dHJ1ZX1mdW5jdGlvbiBwb3N0UnVuKCl7aWYoTW9kdWxlWyJwb3N0UnVuIl0pe2lmKHR5cGVvZiBNb2R1bGVbInBvc3RSdW4iXT09ImZ1bmN0aW9uIilNb2R1bGVbInBvc3RSdW4iXT1bTW9kdWxlWyJwb3N0UnVuIl1dO3doaWxlKE1vZHVsZVsicG9zdFJ1biJdLmxlbmd0aCl7YWRkT25Qb3N0UnVuKE1vZHVsZVsicG9zdFJ1biJdLnNoaWZ0KCkpfX1jYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUUE9TVFJVTl9fKX1mdW5jdGlvbiBhZGRPblByZVJ1bihjYil7X19BVFBSRVJVTl9fLnVuc2hpZnQoY2IpfWZ1bmN0aW9uIGFkZE9uUG9zdFJ1bihjYil7X19BVFBPU1RSVU5fXy51bnNoaWZ0KGNiKX1mdW5jdGlvbiB3cml0ZUFycmF5VG9NZW1vcnkoYXJyYXksYnVmZmVyKXtIRUFQOC5zZXQoYXJyYXksYnVmZmVyKX1mdW5jdGlvbiB3cml0ZUFzY2lpVG9NZW1vcnkoc3RyLGJ1ZmZlcixkb250QWRkTnVsbCl7Zm9yKHZhciBpPTA7aTxzdHIubGVuZ3RoOysraSl7SEVBUDhbYnVmZmVyKys+PjBdPXN0ci5jaGFyQ29kZUF0KGkpfWlmKCFkb250QWRkTnVsbClIRUFQOFtidWZmZXI+PjBdPTB9dmFyIE1hdGhfYWJzPU1hdGguYWJzO3ZhciBNYXRoX2Nvcz1NYXRoLmNvczt2YXIgTWF0aF9zaW49TWF0aC5zaW47dmFyIE1hdGhfdGFuPU1hdGgudGFuO3ZhciBNYXRoX2Fjb3M9TWF0aC5hY29zO3ZhciBNYXRoX2FzaW49TWF0aC5hc2luO3ZhciBNYXRoX2F0YW49TWF0aC5hdGFuO3ZhciBNYXRoX2F0YW4yPU1hdGguYXRhbjI7dmFyIE1hdGhfZXhwPU1hdGguZXhwO3ZhciBNYXRoX2xvZz1NYXRoLmxvZzt2YXIgTWF0aF9zcXJ0PU1hdGguc3FydDt2YXIgTWF0aF9jZWlsPU1hdGguY2VpbDt2YXIgTWF0aF9mbG9vcj1NYXRoLmZsb29yO3ZhciBNYXRoX3Bvdz1NYXRoLnBvdzt2YXIgTWF0aF9pbXVsPU1hdGguaW11bDt2YXIgTWF0aF9mcm91bmQ9TWF0aC5mcm91bmQ7dmFyIE1hdGhfcm91bmQ9TWF0aC5yb3VuZDt2YXIgTWF0aF9taW49TWF0aC5taW47dmFyIE1hdGhfbWF4PU1hdGgubWF4O3ZhciBNYXRoX2NsejMyPU1hdGguY2x6MzI7dmFyIE1hdGhfdHJ1bmM9TWF0aC50cnVuYzt2YXIgcnVuRGVwZW5kZW5jaWVzPTA7dmFyIHJ1bkRlcGVuZGVuY3lXYXRjaGVyPW51bGw7dmFyIGRlcGVuZGVuY2llc0Z1bGZpbGxlZD1udWxsO2Z1bmN0aW9uIGdldFVuaXF1ZVJ1bkRlcGVuZGVuY3koaWQpe3JldHVybiBpZH1mdW5jdGlvbiBhZGRSdW5EZXBlbmRlbmN5KGlkKXtydW5EZXBlbmRlbmNpZXMrKztpZihNb2R1bGVbIm1vbml0b3JSdW5EZXBlbmRlbmNpZXMiXSl7TW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0ocnVuRGVwZW5kZW5jaWVzKX19ZnVuY3Rpb24gcmVtb3ZlUnVuRGVwZW5kZW5jeShpZCl7cnVuRGVwZW5kZW5jaWVzLS07aWYoTW9kdWxlWyJtb25pdG9yUnVuRGVwZW5kZW5jaWVzIl0pe01vZHVsZVsibW9uaXRvclJ1bkRlcGVuZGVuY2llcyJdKHJ1bkRlcGVuZGVuY2llcyl9aWYocnVuRGVwZW5kZW5jaWVzPT0wKXtpZihydW5EZXBlbmRlbmN5V2F0Y2hlciE9PW51bGwpe2NsZWFySW50ZXJ2YWwocnVuRGVwZW5kZW5jeVdhdGNoZXIpO3J1bkRlcGVuZGVuY3lXYXRjaGVyPW51bGx9aWYoZGVwZW5kZW5jaWVzRnVsZmlsbGVkKXt2YXIgY2FsbGJhY2s9ZGVwZW5kZW5jaWVzRnVsZmlsbGVkO2RlcGVuZGVuY2llc0Z1bGZpbGxlZD1udWxsO2NhbGxiYWNrKCl9fX1Nb2R1bGVbInByZWxvYWRlZEltYWdlcyJdPXt9O01vZHVsZVsicHJlbG9hZGVkQXVkaW9zIl09e307dmFyIG1lbW9yeUluaXRpYWxpemVyPW51bGw7dmFyIGRhdGFVUklQcmVmaXg9ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiO2Z1bmN0aW9uIGlzRGF0YVVSSShmaWxlbmFtZSl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aD9maWxlbmFtZS5zdGFydHNXaXRoKGRhdGFVUklQcmVmaXgpOmZpbGVuYW1lLmluZGV4T2YoZGF0YVVSSVByZWZpeCk9PT0wfVNUQVRJQ19CQVNFPUdMT0JBTF9CQVNFO1NUQVRJQ1RPUD1TVEFUSUNfQkFTRSsxMTc0MjcyO19fQVRJTklUX18ucHVzaCh7ZnVuYzooZnVuY3Rpb24oKXtfX0dMT0JBTF9fSV8wMDAxMDEoKX0pfSx7ZnVuYzooZnVuY3Rpb24oKXtfX0dMT0JBTF9fc3ViX0lfcG9zaXRpb25fY3BwKCl9KX0se2Z1bmM6KGZ1bmN0aW9uKCl7X19HTE9CQUxfX3N1Yl9JX2lvc3RyZWFtX2NwcCgpfSl9LHtmdW5jOihmdW5jdGlvbigpe19fR0xPQkFMX19zdWJfSV91Y2lvcHRpb25fY3BwKCl9KX0se2Z1bmM6KGZ1bmN0aW9uKCl7X19HTE9CQUxfX3N1Yl9JX3VjaV9jcHAoKX0pfSx7ZnVuYzooZnVuY3Rpb24oKXtfX0dMT0JBTF9fc3ViX0lfdHRfY3BwKCl9KX0se2Z1bmM6KGZ1bmN0aW9uKCl7X19HTE9CQUxfX3N1Yl9JX3RpbWVtYW5fY3BwKCl9KX0se2Z1bmM6KGZ1bmN0aW9uKCl7X19HTE9CQUxfX3N1Yl9JX3RocmVhZF9jcHAoKX0pfSx7ZnVuYzooZnVuY3Rpb24oKXtfX0dMT0JBTF9fc3ViX0lfc2VhcmNoX2NwcCgpfSl9LHtmdW5jOihmdW5jdGlvbigpe19fR0xPQkFMX19zdWJfSV9wc3F0X2NwcCgpfSl9LHtmdW5jOihmdW5jdGlvbigpe19fR0xPQkFMX19zdWJfSV9iaXRiYXNlX2NwcCgpfSl9LHtmdW5jOihmdW5jdGlvbigpe19fR0xPQkFMX19zdWJfSV9wYXduc19jcHAoKX0pfSx7ZnVuYzooZnVuY3Rpb24oKXtfX0dMT0JBTF9fc3ViX0lfbW92ZXBpY2tfY3BwKCl9KX0se2Z1bmM6KGZ1bmN0aW9uKCl7X19HTE9CQUxfX3N1Yl9JX21vdmVnZW5fY3BwKCl9KX0se2Z1bmM6KGZ1bmN0aW9uKCl7X19HTE9CQUxfX3N1Yl9JX21pc2NfY3BwKCl9KX0se2Z1bmM6KGZ1bmN0aW9uKCl7X19HTE9CQUxfX3N1Yl9JX21hdGVyaWFsX2NwcCgpfSl9LHtmdW5jOihmdW5jdGlvbigpe19fR0xPQkFMX19zdWJfSV9tYWluX2NwcCgpfSl9LHtmdW5jOihmdW5jdGlvbigpe19fR0xPQkFMX19zdWJfSV9ldmFsdWF0ZV9jcHAoKX0pfSx7ZnVuYzooZnVuY3Rpb24oKXtfX0dMT0JBTF9fc3ViX0lfZW5kZ2FtZV9jcHAoKX0pfSx7ZnVuYzooZnVuY3Rpb24oKXtfX0dMT0JBTF9fc3ViX0lfYml0Ym9hcmRfY3BwKCl9KX0pO21lbW9yeUluaXRpYWxpemVyPSJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsQUFBQUFBQUFBQUFFQUFBQUFBQUFBR0FNQUFBYkFBQUFIQUFBQVB6Ly8vLzgvLy8vWUF3QUFCMEFBQUFlQUFBQUFBQUFBQUFBQUFEKy8rdi9kd0FvQU1CbUFBQUFBQUFBLzM4SkFRSUJCQ0RBaWdBQUFBQUFBUDgvQlJBQUFoQUF3SllBQUFBQUFBQUNRQUFJQUFSQUFGb2ZBQUFBQUFBQUE5RC8vMEVFMEgrMFZnQUFBQUFBQVA3LzM0ZUlBQ0JBNWpzQkFBQUFBQUQvLzBlSWlBQkFBTXNyQVFBQUFBQUEvZjkxLy9zQWFBREFkZ0FBQUFBQUFQLy9Fd0VCS0FBQWF5c0FBQUFBQUFELy8vd0JBZ1FnQUIxSEFBQUFBQUFBNlAvL1FnRG9md0JKMFFBQUFBQUFBT2ovZnlFQUdBQUFCUFVBQUFBQUFBRG8vejhIQUJnQUFPcUZBQUFBQUFBQTZQOWY0QUFZQUFBTWNnQUFBQUFBQU9qL0wyQUFHQUFBL2x3QUFBQUFBQUNnLy84dkFEQUFBRW5CQUFBQUFBQUEvLzhMQVJnQU1BQnFDUUFBQUFBQUFQdi9oUUFNQUFNQWtvNEFBQUFBQUFBSUFBRUNDQUFFQUo1ZkFBQUFBQUFBQkFBQ0lDQUFCQUJhSndBQUFBQUFBQUVnQUFJZ0FBRUEwelVCQUFBQUFBQkFFSUFBRUFBQkFFUEtBQUFBQUFBQUFZQUFRRUFBQUFBU05RQUFBQUFBQVBUL3pRQm9BQUFBZTBzQUFBQUFBQUFRQUFnUUFDQkFBTlFUQVFBQUFBQUFFQUFFRUFBSUFBREVSZ0VBQUFBQUFBZ0FBZ2dBQVFRQWh2WUFBQUFBQUFBQUFpQWdBQVFBQU1DR0FBQUFBQUFBQUFFUUVJQUFBZ0RtU3dFQUFBQUFBQ0FBQVNDQUFBQUFSZFFBQUFBQUFBQkFBQ0FnZ0FBQUFBWHNBQUFBQUFBQUlFQUFJQUNDQUFDQ1VRRUFBQUFBQURBQU1BQVkvZjhBUmNRQUFBQUFBQUFnQU5TL2YvOS9BRTRyQVFBQUFBQUFHQUFZQUwzL1B3REVTZ0VBQUFBQUFCZ0FHSURlL3g4QXBUTUJBQUFBQUFBWUFPaS80UDhQQU9LUkFBQUFBQUFBQVNBZ2dBQUFBUUJ5QVFBQUFBQUFBSUFCbVAvNy93TUF4cVFBQUFBQUFBRGdBSkQvL2Y4QkFFbXhBQUFBQUFBQUFOai82LzcrL3dEYjhBQUFBQUFBQUFBVXdQLzMvMzhBOWpFQUFBQUFBQUFBNlAva3YvOC9BSHBCQUFBQUFBQUFBRERBSC9EL0h3QUFBQUFBQUFBQUFBRG92L2puL3c4QTdKVUFBQUFBQUFBSStEL2YzLzhIQUZvckFBQUFBQUFBQktqL1gvai9Bd0FyVlFBQUFBQUFBQUtvLzNYOS93RUFGWmtBQUFBQUFBRFkvK3YvMS8vL0FBVGxBQUFBQUFBQTJMOS8vM1gvZndCVXJBQUFBQUFBQU5oL3Z6K0cvejhBRlRJQkFBQUFBQURZLzlmZnYvOGZBTUd0QUFBQUFBQUFLQUFvRVBqL0R3Q0crZ0FBQUFBQUFOai8vdmZYL3djQUg2TUFBQUFBQUFCSUFFZ00vUDhEQUhJRkFBQUFBQUFBMlAvWHIvLy9BUURPbndBQUFBQUFBTHFqMy8vay8vOEExQU1CQUFBQUFBRGEwL04vNy85L0FEa1BBQUFBQUFBQSt2ZnYzNy8vUHdCYUR3QUFBQUFBQUNMOCsvZnYveDhBNWh3QkFBQUFBQUFCRUFBSUJBSUFBTlliQVFBQUFBQUEvWGYvLy83L0J3QUYzQUFBQUFBQUFPeitmYi8vL3dNQXhRTUJBQUFBQUFBem8vK2QvLzhCQU9vNUFBQUFBQUFBLzcrL3Y3Ky9md0FDRlFBQUFBQUFBUHdIRUVCZ29BQUEvUThBQUFBQUFBQUFBQUlJUUFBQkFOb1FBQUFBQUFBQUFBQUFCR0NBQUFDN0dRQUFBQUFBQUFBQUFBQUVFQUFBV3hrQUFBQUFBQUFBQUxJQXdTRUFBTG9ZQUFBQUFBQUFBSUFBUVFBRUFBRHBGUUFBQUFBQUFJRC9QeUN3RHdBQTNGWUFBQUFBQUFBRUVFQUFBUVFBQU5vWEFBQUFBQUFBQWdnZ2dBQUNBQUQ1RlFBQUFBQUFBQUFnSUJCQUFBQUFrVUVBQUFBQUFBQUFBQVJnZ0FBQUFMRkJBQUFBQUFBQUFBQUFBa1FBQUFDNkdnQUFBQUFBQUFDQUFBRUlBQUFBV3hzQUFBQUFBQUNBLzcvZzd3Y0FBR1VRQUFBQUFBQUFJQUNDSUFnQUFBQzhIQUFBQUFBQUFJQ0FnSUFBUUFBQStoRUFBQUFBQUFBSUNFQUFBUjhDQUxvUkFBQUFBQUFBL3o5dndBQ0FBUUJiY3dBQUFBQUFBQUFRZ0FDQ0pRQUFVYkVBQUFBQUFBQUFBSVNBQUNRQUFJUXdBQUFBQUFBQStQOEREQUFZQUFDVFBRQUFBQUFBQUNDQUlFQllDZ0FBdWhNQUFBQUFBQUFnZ0NBSUFBSUFBUG9RQUFBQUFBQUFBQUdCQUVDQUFBQzZGd0FBQUFBQUFBZ2dnQUFaQVFFQXVoNEFBQUFBQUFBQUFZRUFRSUFBQUl0OUFBQUFBQUFBL3dNRVBFQUFBUUJKNFFBQUFBQUFBQUFnZ0tnQ2hBY0FSZGdBQUFBQUFBQUFSSUFBRUJBQUFNbzlBQUFBQUFBQUFFRVFBQWdJQUFDNkZRQUFBQUFBQUFnZ0NNQUVRQUFBOWhnQUFBQUFBQUFnZ0FBZ0FRRUJBUG9lQUFBQUFBQUFFRUFBbW9DQUFBQVJOQUFBQUFBQUFCQUFnUWorL2djQUFod0FBQUFBQUFDQXdEK0RELzhEQUlOcUFBQUFBQUFBUWpBQUdZRGdmd0FiMGdBQUFBQUFBQUF3QU9ydi96OEE2Uk1BQUFBQUFBQ0FJQUFRRUJBQUFQTVpBQUFBQUFBQUJBZ0lCU0NBQUFENkZ3QUFBQUFBQUVBQXFJQ0FnQUFBK2h3QUFBQUFBQUJBQUNBQVFSQUFBTm9lQUFBQUFBQUF3RCtEZjkvL0F3QWNwQUFBQUFBQUFDQUFSVUNJQUFBQUJ1QUFBQUFBQUFBd0FCaUEvSDhBQUIxWkFBQUFBQUFBS0FBVWdOMy9md0IxM1FBQUFBQUFBQVFBQ2lDQUFBSUF1aFlBQUFBQUFBQWdBQkFRRUJBQUFMb2JBQUFBQUFBQUFGQ0F3ZC8vQndCakVRQUFBQUFBQUFBaXdPRHYvd01BWlJJQUFBQUFBQUFBWUlBZ0NBQUFBTG9TQUFBQUFBQUFBREJBQ0FBQUFBQTBOQUFBQUFBQUFBQWdJQUFCQUFBQTJoRUFBQUFBQUFBQUlJQkFRQUFBQUxvUUFBQUFBQUFBQUFRUVFBQUJCQUIwT2dBQUFBQUFBUFFER0dBZ1lBQUF1ZzhBQUFBQUFBQklnTUxmMy84REFOb1NBQUFBQUFBQUlBQ0NJQWdBQUFDNkhBQUFBQUFBQUdDQUlBZ0FBQUFBOEJJQUFBQUFBQUFnZ0lBQUFBQUFBRW8rQUFBQUFBQUFJQ0FBQVFBQUFBQlVPZ0FBQUFBQUFBZ2dBQUVFQUFBQXpFQUFBQUFBQUFCQVFFQkFRQUFBQVBrYUFBQUFBQUFBRS9oLzM1Ly9md0RNUGdBQUFBQUFBQThQRHc4UER3OFBEdzhQRHc4UER3OFBEdzhQRHc4UER6dzhQRHc4UER3OFBEdzhQRHc4UER6dzhQRHc4UER3OFBEdzhQRHc4UER3OFBEdzhQRHc4UEJBQUFBQUFBQUFBREFNQUFBSEFBQUFDQUFBQU1ELy8vL0EvLy8vTUF3QUFBa0FBQUFLQUFBQVFBQUFBQUFBQUFDUURBQUFEUUFBQUE0QUFBQTRBQUFBK1AvLy81QU1BQUFQQUFBQUVBQUFBTUQvLy8vQS8vLy9rQXdBQUJFQUFBQVNBQUFBQUFBQUFBQ0tBQUJJalFBQUlBd0FBQUFBQUFBQWlnQUFpbzBBQUpBTUFBQUFBQUFBQUlvQUFNK05BQUFZQ1FBQUFBQUFBTmlKQUFBRGpnQUFBSW9BQUNDT0FBQVlDUUFBQUFBQUFBQ0tBQUJVamdBQUdBa0FBQUFBQUFBQWlnQUFpSTRBQUJnSkFBQUFBQUFBQUlvQUFMeU9BQUJnQ1FBQUFBQUFBTmlKQUFEb2pnQUFBSW9BQVA2T0FBQmdDUUFBQUFBQUFHZ0FBQUFBQUFBQVlBd0FBQnNBQUFBY0FBQUFtUC8vLzVqLy8vOWdEQUFBSFFBQUFCNEFBQUFBaWdBQXM0OEFBQ0FNQUFBQUFBQUFBSW9BQU9xUEFBQWdEQUFBQUFBQUFBQ0tBQUQvandBQVlBd0FBQUFBQUFBNEFBQUFBQUFBQUdBTUFBQWJBQUFBSEFBQUFNai8vLy9JLy8vL1lBd0FBQjBBQUFBZUFBQUFBSW9BQUUrUUFBQmdEQUFBQUFBQUFEd0FBQUFBQUFBQU1Bd0FBQWNBQUFBSUFBQUF4UC8vLzhULy8vOHdEQUFBQ1FBQUFBb0FBQUFBaWdBQWxaQUFBREFNQUFBQUFBQUFBSW9BQUo2UkFBQlFDZ0FBQUFBQUFOaUpBQUNya1FBQUFJb0FBRHFTQUFCZ0NRQUFBQUFBQUFDS0FBQm1rZ0FBWUFrQUFBQUFBQUFBaWdBQWtwSUFBR0FKQUFBQUFBQUFBSW9BQUw2U0FBQmdDUUFBQUFBQUFBQ0tBQURxa2dBQVlBa0FBQUFBQUFBQWlnQUFGcE1BQUdBSkFBQUFBQUFBQUlvQUFFT1RBQUJnQ1FBQUFBQUFBQUNLQUFCdmt3QUFZQWtBQUFBQUFBQUFpZ0FBbTVNQUFHQUpBQUFBQUFBQUFJb0FBTWVUQUFBWUNRQUFBQUFBQUFDS0FBRDdrd0FBR0FrQUFBQUFBQUFBaWdBQUw1UUFBQmdKQUFBQUFBQUFBSW9BQUdPVUFBQVlDUUFBQUFBQUFBQ0tBQUNYbEFBQUdBa0FBQUFBQUFBQWlnQUF5NVFBQUJnSkFBQUFBQUFBQUlvQUFQK1VBQUFZQ1FBQUFBQUFBQUNLQUFBemxRQUFHQWtBQUFBQUFBQUFpZ0FBWjVVQUFHQUpBQUFBQUFBQUFJb0FBSlNWQUFCZ0NRQUFBQUFBQUFDS0FBREJsUUFBWUFrQUFBQUFBQUFBaWdBQTdwVUFBR0FKQUFBQUFBQUFBSW9BQUJ1V0FBQmdDUUFBQUFBQUFBQ0tBQUJJbGdBQVlBa0FBQUFBQUFBQWlnQUFkWllBQUdBSkFBQUFBQUFBQUlvQUFLR1dBQUJnQ1FBQUFBQUFBQUNLQUFCam1RQUFnQkVBQUFBQUFBQUFpZ0FBZnFZQUFBZ01BQUFBQUFBQTJJa0FBR3ltQUFBQWlnQUFxS1lBQUFnTUFBQUFBQUFBMklrQUFOS21BQURZaVFBQUE2Y0FBQ2lLQUFBMHB3QUFBQUFBQUFFQUFBRDRDd0FBQS9ULy95aUtBQUJqcHdBQUFBQUFBQUVBQUFBUURBQUFBL1QvL3lpS0FBQ1Nwd0FBQUFBQUFBRUFBQUQ0Q3dBQUEvVC8veWlLQUFEQnB3QUFBQUFBQUFFQUFBQVFEQUFBQS9ULy95aUtBQUR3cHdBQUF3QUFBQUlBQUFBd0RBQUFBZ0FBQUdBTUFBQUNDQUFBREFBQUFBQUFBQUF3REFBQUJ3QUFBQWdBQUFEMC8vLy85UC8vL3pBTUFBQUpBQUFBQ2dBQUFBQ0tBQUFncUFBQUtBd0FBQUFBQUFBQWlnQUFPYWdBQUNBTUFBQUFBQUFBQUlvQUFIaW9BQUFvREFBQUFBQUFBQUNLQUFDUXFBQUFJQXdBQUFBQUFBQUFpZ0FBcUtnQUFDZ05BQUFBQUFBQUFJb0FBTHlvQUFCNEVRQUFBQUFBQUFDS0FBRFNxQUFBS0EwQUFBQUFBQUFvaWdBQURLa0FBQUFBQUFBQ0FBQUFLQTBBQUFJQUFBQm9EUUFBQUFBQUFDaUtBQUJRcVFBQUFBQUFBQUVBQUFDQURRQUFBQUFBQU5pSkFBQm1xUUFBS0lvQUFIK3BBQUFBQUFBQUFnQUFBQ2dOQUFBQ0FBQUFxQTBBQUFBQUFBQW9pZ0FBdzZrQUFBQUFBQUFCQUFBQWdBMEFBQUFBQUFBb2lnQUE3S2tBQUFBQUFBQUNBQUFBS0EwQUFBSUFBQURnRFFBQUFBQUFBQ2lLQUFBd3FnQUFBQUFBQUFFQUFBRDREUUFBQUFBQUFOaUpBQUJHcWdBQUtJb0FBRitxQUFBQUFBQUFBZ0FBQUNnTkFBQUNBQUFBSUE0QUFBQUFBQUFvaWdBQW82b0FBQUFBQUFBQkFBQUErQTBBQUFBQUFBQW9pZ0FBK2FzQUFBQUFBQUFEQUFBQUtBMEFBQUlBQUFCZ0RnQUFBZ0FBQUdnT0FBQUFDQUFBMklrQUFHQ3NBQURZaVFBQVBxd0FBQ2lLQUFCenJBQUFBQUFBQUFNQUFBQW9EUUFBQWdBQUFHQU9BQUFDQUFBQW1BNEFBQUFJQUFEWWlRQUF1S3dBQUNpS0FBRGFyQUFBQUFBQUFBSUFBQUFvRFFBQUFnQUFBTUFPQUFBQUNBQUEySWtBQUIrdEFBQW9pZ0FBTkswQUFBQUFBQUFDQUFBQUtBMEFBQUlBQUFEQURnQUFBQWdBQUNpS0FBQjVyUUFBQUFBQUFBSUFBQUFvRFFBQUFnQUFBQWdQQUFBQ0FBQUEySWtBQUpXdEFBQW9pZ0FBcXEwQUFBQUFBQUFDQUFBQUtBMEFBQUlBQUFBSUR3QUFBZ0FBQUNpS0FBREdyUUFBQUFBQUFBSUFBQUFvRFFBQUFnQUFBQWdQQUFBQ0FBQUFLSW9BQU9LdEFBQUFBQUFBQWdBQUFDZ05BQUFDQUFBQUNBOEFBQUlBQUFBb2lnQUFEYTRBQUFBQUFBQUNBQUFBS0EwQUFBSUFBQUNRRHdBQUFBQUFBTmlKQUFCVHJnQUFLSW9BQUhldUFBQUFBQUFBQWdBQUFDZ05BQUFDQUFBQXVBOEFBQUFBQUFEWWlRQUF2YTRBQUNpS0FBRGNyZ0FBQUFBQUFBSUFBQUFvRFFBQUFnQUFBT0FQQUFBQUFBQUEySWtBQUNLdkFBQW9pZ0FBTzY4QUFBQUFBQUFDQUFBQUtBMEFBQUlBQUFBSUVBQUFBQUFBQU5pSkFBQ0Jyd0FBS0lvQUFKcXZBQUFBQUFBQUFnQUFBQ2dOQUFBQ0FBQUFNQkFBQUFJQUFBRFlpUUFBcjY4QUFDaUtBQUJHc0FBQUFBQUFBQUlBQUFBb0RRQUFBZ0FBQURBUUFBQUNBQUFBQUlvQUFNZXZBQUJvRUFBQUFBQUFBQ2lLQUFEcXJ3QUFBQUFBQUFJQUFBQW9EUUFBQWdBQUFJZ1FBQUFDQUFBQTJJa0FBQTJ3QUFBQWlnQUFKTEFBQUdnUUFBQUFBQUFBS0lvQUFGdXdBQUFBQUFBQUFnQUFBQ2dOQUFBQ0FBQUFpQkFBQUFJQUFBQW9pZ0FBZmJBQUFBQUFBQUFDQUFBQUtBMEFBQUlBQUFDSUVBQUFBZ0FBQUNpS0FBQ2ZzQUFBQUFBQUFBSUFBQUFvRFFBQUFnQUFBSWdRQUFBQ0FBQUFBSW9BQU1Ld0FBQW9EUUFBQUFBQUFDaUtBQURZc0FBQUFBQUFBQUlBQUFBb0RRQUFBZ0FBQURBUkFBQUNBQUFBMklrQUFPcXdBQUFvaWdBQS83QUFBQUFBQUFBQ0FBQUFLQTBBQUFJQUFBQXdFUUFBQWdBQUFBQ0tBQUFjc1FBQUtBMEFBQUFBQUFBQWlnQUFNYkVBQUNnTkFBQUFBQUFBMklrQUFFYXhBQUFvaWdBQVg3RUFBQUFBQUFBQkFBQUFlQkVBQUFBQUFBQUFpZ0FBYWJJQUFLZ1JBQUFBQUFBQUFJb0FBQmF5QUFDNEVRQUFBQUFBQU5pSkFBQTNzZ0FBQUlvQUFFU3lBQUNZRVFBQUFBQUFBQUNLQUFDTHNnQUFtQkVBQUFBQUFBQUlBQUFBQVFBQUFQai8vLy8vLy8vL0NRQUFBUG4vLy8vMy8vLy9Cd0FBQUFFQUFBQUNBQUFBQmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCd0FBQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFHQUFBQUNnQUFBQThBQUFBUkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBSEFBQUFDQUFBQUFrQUFBQUFBQUFBQXdBQUFBUUFBQUJrQUFBQVdnQUFBRkFBQUFCR0FBQUFSZ0FBQUZBQUFBQmFBQUFBWkFBQUFGb0FBQUJHQUFBQVBBQUFBRElBQUFBeUFBQUFQQUFBQUVZQUFBQmFBQUFBVUFBQUFEd0FBQUFvQUFBQUhnQUFBQjRBQUFBb0FBQUFQQUFBQUZBQUFBQkdBQUFBTWdBQUFCNEFBQUFVQUFBQUZBQUFBQjRBQUFBeUFBQUFSZ0FBQUVZQUFBQXlBQUFBSGdBQUFCUUFBQUFVQUFBQUhnQUFBRElBQUFCR0FBQUFVQUFBQUR3QUFBQW9BQUFBSGdBQUFCNEFBQUFvQUFBQVBBQUFBRkFBQUFCYUFBQUFSZ0FBQUR3QUFBQXlBQUFBTWdBQUFEd0FBQUJHQUFBQVdnQUFBR1FBQUFCYUFBQUFVQUFBQUVZQUFBQkdBQUFBVUFBQUFGb0FBQUJrQUFBQUFBQUFBQUFBQUFCa0FBQUFVQUFBQUR3QUFBQW9BQUFBRkFBQUFBb0FBQURJQUFBQXZnQUFBTFFBQUFDcUFBQUFvQUFBQUpZQUFBQ01BQUFBZ2dBQUFMNEFBQUMwQUFBQXFnQUFBS0FBQUFDV0FBQUFqQUFBQUlJQUFBQ01BQUFBdEFBQUFLb0FBQUNiQUFBQWpBQUFBSXdBQUFCOUFBQUFqQUFBQUpZQUFBQ3FBQUFBb0FBQUFJd0FBQUI0QUFBQWJnQUFBSXdBQUFDV0FBQUFvQUFBQUtBQUFBQ1dBQUFBakFBQUFHNEFBQUI0QUFBQWpBQUFBS0FBQUFDcUFBQUFsZ0FBQUl3QUFBQjlBQUFBakFBQUFJd0FBQUNiQUFBQXFnQUFBTFFBQUFDTUFBQUFnZ0FBQUl3QUFBQ1dBQUFBb0FBQUFLb0FBQUMwQUFBQXZnQUFBSUlBQUFDTUFBQUFsZ0FBQUtBQUFBQ3FBQUFBdEFBQUFMNEFBQURJQUFBQUFBQUFBQVVBQUFBVUFBQUFLQUFBQUR3QUFBQlFBQUFBV2dBQUFHUUFBQUFBQUFBQUNRQUFBQW9BQUFBT0FBQUFGUUFBQUN3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVRRQUFBRGNBQUFBc0FBQUFDZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFd0FBQUJBQUFBQUxnQUFBQXNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBY0FBQUFGY0FBQUEvQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQk5BQUFBTndBQUFDd0FBQUFLQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUV3QUFBQXdBQUFBTEFBQUFBb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCekFBQUFRQUFBQUQ0QUFBQWpBQUFBQUFBQUFBQUFBQUMxLzdQL3gvL0ovL2YvNC8vKy8vWC9CZ0FGQUE0QURBQVdBQm9BSFFBZEFDUUFIUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU5EL3hQL3MvK2ovRUFEOS94b0FEUUFtQUJnQU13QXFBRGNBTmdBL0FEa0FQd0JCQUVRQVNRQlJBRTRBVVFCV0FGc0FXQUJpQUdFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXh2K3ovK1gvN2YveC94c0E5djgyQVB2L1JBRCsvMUVBQ1FCd0FCQUFkZ0FlQUlRQUhRQ09BQ0FBbXdBbUFLVUFMZ0NtQURBQXFRQTZBS3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRFovOXYvNi8vdy93TUFDQUFEQUJJQURnQWlBQllBTmdBY0FEMEFLUUJKQUNzQVR3QXdBRndBT0FCZUFEd0FhQUE4QUhFQVFnQjRBRU1BZXdCR0FINEFSd0NGQUVrQWlBQlBBSXdBV0FDUEFGZ0FsQUJqQUtZQVpnQ3FBR1lBcndCcUFMZ0FiUUMvQUhFQXpnQjBBTlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR3IvWi8rUS81UC83di9MLy96LzYvOE1BQW9BSGdBV0FDd0FOQUE4QURnQVNBQTZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBb1ArTC85Yi8yZjhnQVB6L05BQVlBRW9BTEFCbUFGUUFiQUJzQUg0QWRBQ0NBSDRBamdDTUFKNEFsQUNpQUt3QXVBQzBBTUlBdkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDUS8yUC96di9iLytyL013RDIvMjBBK1ArTEFQNy9vUUFRQU5vQUhBRHdBQ29BQUFFdUFCNEJQZ0EwQVVBQVFBRldBRW9CWWdCUUFYWUFVZ0VBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFMRC91Zi9PLytmL0JBQU9BQWdBSmdBY0FFb0FNQUJ1QURJQWZBQlFBSmdBVmdDZUFGNEFyZ0JzQUx3QWNBRE1BSGdBM2dDTUFPZ0FrQURzQUpJQTlBQ1dBQUFCbWdBRUFhb0FDZ0c4QUJBQnhnQVlBZGdBT2dIZ0FEd0I0Z0JDQWV3QVhBSHVBR0lCOWdCK0FRQUJqZ0VBQUFBQUFBQUFBQUFBQUFBQUFBQUFxLyt4LzdML3dQL2QvOWYvL3Yvbi93NEFDQUFYQUJrQUp3QWFBQjRBRndBa0FCMEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURKLzcvLzcvL2QvdzBBOS84WUFCUUFGZ0FaQURrQUpnQWdBRFFBUXdCQ0FEUUFOQUE1QUVvQVNRQk5BRlVBVVFCY0FGb0FiZ0JXQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1UL3R2L2YvK1AvN3Y4SUFPMy9IUUR0L3prQUZBQk5BQXdBYWdBTEFJVUFGUUNHQUNFQXBRQWlBS2tBSndDM0FCa0Fxd0E5QUxVQU9nQ2VBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTFmL1UvL0wvNy8vNy93QUFBQUFYQUFZQUdBQVlBRG9BRkFBM0FCOEFRd0F2QUZvQUhBQlBBQzhBV1FCRkFHZ0FRQUJ2QUVzQWdBQklBSElBTUFDRUFEb0FnZ0JNQUlZQVZBQjhBRzBBZ3dCeUFJOEFad0NNQUdrQWtnQnRBS1VBZEFDY0FIOEFzQUNDQUs0QWdRRE1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0MvNS8vbWYvZy82Yi81UC9ZL3dJQUFBQURBQVFBQUFBVUFBd0FEd0FoQURJQUxnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR1Qvc1ArTi85VC9LZ0R5L3lNQUdnQkFBQm9BU2dBbUFFWUFMZ0JUQUVjQVJnQkVBRUlBVUFCQUFFUUFSZ0JOQUdFQVhBQlpBR0lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBeS8vSy8rci85Ly9RL3gwQTh2ODRBUHovVEFBTEFGY0FCd0J6QUF3QWV3QWJBSGdBQmdDTUFEY0FuQUFTQUtFQU13Q2hBRFlBcXdBMEFLWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEbS84Zi82UC94L3djQURnQUlBQThBRWdBaUFBNEFLUUFjQURvQUlRQkNBQ2dBUmdBdkFFb0FNZ0JrQURRQWFnQTdBRzhBTWdCZkFEd0Fjd0E5QUg0QVN3Q1FBRklBZHdCZkFJa0FaZ0NLQUdRQWpnQjNBSm9BZ1FDY0FHc0FuQUJ2QUxFQWN3QzFBSHdBeFFCOEFNY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFJTC9wZi81LytuLzB2L20veE1BQndETC8wWUFId0QvLy9yL01nRDAveTRBOS8vSC93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEwdi85L3g0QVFnQVNBT1gvVmdBVkFFRUFDd0NUQUMwQVlnQW1BRjhBTkFCNkFDMEFYd0FoQUZrQVp3QlZBUGYvYVFCR0FJTUFVZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURJLzdILzUvL3QvL1gvR1FENy96WUEvUDlGQVAvL1VBQUlBRzBBRGdCNEFCVUFnQUFYQUk4QUh3Q2FBQ0FBb0FBckFLVUFNUUNvQURzQXFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU5qLzNQL24vL1AvQWdBSEFBUUFFd0FPQUNVQUdBQTNBQmtBUGdBb0FFd0FLd0JQQUM4QVZ3QTJBRjRBT0FCbUFEd0Fid0JHQUhRQVNBQjJBRWtBZWdCTEFJQUFUUUNDQUZVQWhRQmVBSWdBWXdDTUFHd0FuUUJ3QUo0QWNRQ2hBSFlBcmdCM0FMRUFld0MvQUlBQXh3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQXRmK3ovOGoveWYvMy8rWC8vdi8xL3dZQUJRQVBBQXNBRmdBYUFCNEFIQUFrQUIwQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRFEvOFgvNi8vcy94QUEvdjhhQUF3QUpRQVdBRE1BS2dBMkFEWUFQd0E2QUVFQVB3QkhBRVlBVHdCS0FGRUFWZ0JjQUZvQVlRQmVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTWovc2Yvbi8rMy85ZjhaQVB2L05nRDgvMFVBLy85UUFBZ0FiUUFPQUhnQUZRQ0FBQmNBandBZkFKb0FJQUNnQUNzQXBRQXhBS2dBT3dDcEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMlAvYy8rZi84LzhDQUFjQUJBQVRBQTRBSlFBWUFEY0FHUUErQUNnQVRBQXJBRThBTHdCWEFEWUFYZ0E0QUdZQVBBQnZBRVlBZEFCSUFIWUFTUUI2QUVzQWdBQk5BSUlBVlFDRkFGNEFpQUJqQUl3QWJBQ2RBSEFBbmdCeEFLRUFkZ0N1QUhjQXNRQjdBTDhBZ0FESEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCOC80ci9wLytSLy9QL3p2LzEvL0QvOXYvaC94MEFFUUFOQUNBQVR3QkZBRzBBVHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKdi9pUC90LytUL0d3RDMveU1BSGdBK0FCOEFjd0JJQUZzQVl3Q0tBSG9BZ1FCM0FKNEFuQUNaQUtJQWp3QzlBS3dBdFFERUFNd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFmZjlkLzhmLzJ2LzQveTRBREFCZEFBTUFmd0FLQUlzQUF3RHdBQklBN0FBc0FQc0FMQUFqQVRFQUxRRkRBRHdCWkFCRUFXRUFWQUZ1QUVRQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNwLzd2L3QvLzkvL24vQ0FENy93OEFKd0JNQUNjQWRnQkFBSU1BVmdDcEFGWUFyd0JPQUtZQVlRRERBSHNBMkFDSkFNZ0Ftd0QzQUo4QUJBR0lBUHdBbkFBWEFhQUErd0NsQVBzQXdnQUxBY3dBRHdIWUFFc0I0Z0F3QWQ4QUp3SHZBRHdCNUFCdEFmQUFnUUg1QUhrQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUxiL3MvL0ovOG4vOS8vbC8vNy85ZjhHQUFVQUR3QUxBQllBR2dBZkFCc0FKUUFkQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXovL0gvK24vN2Y4UEFQNy9HUUFNQUNRQUZnQXlBQ29BTlFBMkFFQUFPUUJEQUQ4QVJ3QkVBRlFBVEFCUEFGY0FYd0JiQUdJQVhRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREgvN1AvNS8vdC8vWC9HQUQ3L3pRQS9QOUZBUC8vVFFBSUFHOEFEZ0IwQUJZQWZRQVlBSlFBSHdDZkFCOEFyUUFzQUtNQU1nQ2lBRGdBcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTmIvM1Avbi8vUC9BZ0FIQUFRQUV3QU9BQ1VBR0FBMUFCb0FQd0FuQUZBQUtnQk5BREFBV0FBMUFHQUFPUUJnQUQwQWJBQkhBSFFBUmdCMEFFb0FmUUJMQUlVQVRnQ0ZBRlVBaVFCaEFJY0Fad0NOQUdzQXBRQnRBSmtBY3dDaUFIY0FwQUI1QUxnQWVRREFBSU1BeXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRmdBR0FDUUFEQUFKQUFJQUR3QUZBQlFBQndBdEFCUUFSUUFBQUxrQUFBQ0JBQUFBbC96Ly8vci8vLy8rLy8vL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFTQVFBQXBnQUFBSklBQUFCeS9mLy85UC8vLy9uLy8vOGRBQUFBZHdBQUFMY0JBQUNDQUFBQW0vMy8vL3IvLy8vLy8vLy9RQUVBQUdVQUFBRHJBQUFBaGdBQUFEUDkvLy8xLy8vLysvLy8vd0FBQUFCVkFBQUE1UUFBQUlNQUFBQnUvZi8vOS8vLy8vdi8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGVUFBQUNJQUFBQWFnQUFBSnY5Ly8vNS8vLy90Ly8vLzdVQUFBQTdBZ0FBYXdJQUFGb0RBQUFBQUFBQUJnQUFBQUFBQUFBUkFBQUFEZ0FVQUFjQUFBQUhBQUFBQUFBQUFCQUFDUUFlQUkwQUdnQmVBS0VBYVFCR0FIc0FQUUJJQUU0QURBQ0xBSE1BQUFBQUFEZ0FXUUJTQUdzQWNnQmRBRzRBY3dDOEFIQUFTUUE3QUhvQU93QUFBQUFBZHdDT0FHTUFhUUI3QU1FQWpnQWxBSFlBWUFBeUFBd0FXd0JWQUFBQUFBQTZBRkVBUWdCdUFHa0FtUUJrQUk4QWpBQnhBSkVBU1FDWkFKb0FBQUFBQUFBQUFBQUFBQjhBSndBcUFEa0FMQUJFQUhBQUx3QjRBQUFBQUFBQUFBQUFBQUFBQUFBQUdBQW1BRWNBSmdBOUFBQUFKZ0FrQUNZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURBQUFBQndBQUFBc0FBQUFVQUFBQUFBQUFBQUFBQUFBRkFCSUFEQUFYQUFvQUh3QTVBRDRBb3dDbkFBOEIrZ0FBQUFBQUFBQUFBQVVBQndBRkFBNEFId0FtQUVrQVNRQ21BS1lBL0FEOEFBQUFBQUFBQUFBQVh3QldBSFlBS3dCZUFEMEFqZ0ErQU1RQWxnRE1BQUFCQUFBQUFBQUFBQUFQQUJzQUZ3QU5BQTBBRXdCWUFHOEFzUUNNQU9VQUpRRUFBQUFBQUFBQUFMNy9DUURuL3dZQVFnRDAvMFFBVVFCSUFOSUErZ0FDQVFBQUFBQUFBQUFBQlFBSEFBVUFEZ0FmQUNZQVNRQkpBS1lBcGdEOEFQd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJ3QUZBQTRBSHdBbUFFa0FTUUNtQUtZQS9BRDhBQUFBQUFELy93WUFBQUFKQVBmLzkvL2kvL0gvNHYveC8vZi85LzhBQUFrQS8vOEdBTDR2QUFDK0x3QUF2aThBQUw0dkFBQytMd0FBQUFBQUFMNHZBQUMrTHdBQW5RZU9COFlCYkFHWEFKNEFTd0JWQUNvQU1RQUFBQUFBeWplZE9PRVlBaFdBRU9VTlNRcXJDRTRHc0FYUEEzVURFQUwyQVFBQUFBQUFBQUFBdkFHMUFIa0pXd0lBQUFBQVFBQUFBQUFBQUFENENBQUFBUUFBQUFJQUFBQTRBQUFBK1AvLy8vZ0lBQUFEQUFBQUJBQUFBTUQvLy8vQS8vLy8rQWdBQUFVQUFBQUdBQUFBQUFBQUFPZ0lBQUFMQUFBQURBQUFBQUVBQUFBQkFBQUFBUUFBQUFFQUFBQUJBQUFBQWdBQUFBSUFBQUFEQUFBQUJBQUFBQUVBQUFBREFBQUFBZ0FBQUp3cEFBQzBDQUFBakFnQUFLQUlBQURjQ1FBQThBa0FBTndJQUFESUNBQUF4Q2tBQUxBcEFBQUFBQUFBYUFrQUFCTUFBQUFVQUFBQUF3QUFBQUFBQUFCUUNRQUFFd0FBQUJVQUFBQUVBQUFBQUFBQUFFQUpBQUFXQUFBQUZ3QUFBQVVBQUFBQUFBQUFNQWtBQUJZQUFBQVlBQUFBQmdBQUFBQUFBQUFnQ1FBQUZnQUFBQmtBQUFBSEFBQUFBQUFBQUFnSkFBQVdBQUFBR2dBQUFBZ0FBQUNEQmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFQOEFBQUQ5Ly8vL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9iLy8vLysvLy8vTHdBQUFHa0FBQUJyLy8vL0FBQUFBQUFBQUFBQUFBQUFRLy8vL3hnQUFBQjFBQUFBaFFBQUFIci8vLy8yLy8vL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWYvLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF6Ly8vL01RQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFLLy8vLyswQVFBQXIvLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEVC8vLys0L3YvL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTcvLy8vVFA3Ly8vVC8vLzlKLy8vL1hBQUFBQUFBQUFBQUFBQUFBQUFBQU1VQUFBQW9BQUFBaFFBQUFFMy8vLzlkQUFBQXZ2Ly8vd0FBQUFBQUFBQUFBUUFBQU5ELy8vOWlBQUFBSkFBQUFGSUFBQUNsQUFBQVdQLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSU1HQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpRQUFBTzcvLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFtQUFBQUJRRUFBUGIvLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJiQUFBQS92Ly8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBN2YvLy8rNy8vLzhjQUFBQVdnQUFBR3YvLy84QUFBQUFBQUFBQUFBQUFBQlIvLy8vRWdBQUFHMEFBQUNWQUFBQWhQLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEWEF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUVBQUFEdy8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJnQUFBSmNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUMrLy8vL1FnQUFBTVgvLy84R0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKWC8vLzhHQUFBQUN3QUFBR3NBQUFCMy8vLy9BQUFBQUFBQUFBQUFBQUFBT3YvLy81RC8vLzlUQUFBQXBnQUFBR0QvLy8vdS8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEKy8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTC8vLy85Q0FBQUFEd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkVBQUFEKy8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFhQUFBQUZRQUFBTnIvLy85UUFBQUF1di8vL3dBQUFBQUFBQUFBQUFBQUFCZ0FBQURsLy8vL1N3QUFBQ0FBQUFBQ0FBQUF1di8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlNR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFLQUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUEvd0FBQVAzLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCb0FBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTV2Ly8vLzcvLy84dkFBQUFhUUFBQUd2Ly8vOEFBQUFBQUFBQUFBQUFBQUJILy8vL0dBQUFBSG9BQUFDSkFBQUFldi8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0RCZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUFBQUFBRDkvLy8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT2IvLy84QUFBQUFMd0FBQUdrQUFBQnIvLy8vQUFBQUFBQUFBQUFBQUFBQVIvLy8vd0FBQUFCNkFBQUFpUUFBQUhyLy8vOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ3dZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW9BQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFBRC9BQUFBL2YvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdnQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEbS8vLy8vdi8vL3k4QUFBQnBBQUFBYS8vLy93QUFBQUFBQUFBQUFBQUFBRWYvLy84WUFBQUFlZ0FBQUlrQUFBQjYvLy8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpBQUFBUHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURzQUFBQkJBQUFBS2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFMZ0FBQUNjQUFBQVlBQUFBNlAvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFCaEFBQUFaQUFBQU5iLy8vK0pBQUFBREFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRndBQUFCc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGIvLy8vQ1AvLy8rNy8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpQLy8vK00vZi8vYi8vLy8yWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFaUC8vLzN2Ly8vK0dBQUFBVGdBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBV0FBQUFtd0FBQUZRQUFBQXhBQUFBei8vLy81ai8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE1QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUF2QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUVFBQUFENEFBQUFkQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWZBQUFBTmdBQUFCRUFBQUR1Ly8vL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUdrQUFBQmhBQUFBM3YvLy81Y0FBQUFXQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTXIvLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUxBQUFBSlAvLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUFRQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHRUFBQUF4QUFBQURBQUFBUEgvLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBRndBQUFDNEFBQUFBQUFBQS92Ly8veGNBQUFBQUFBQUFBQUFBQUFBQUFBQkxBQUFBS3dBQUFCUUFBQUJCQUFBQTNRQUFBRk1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB