Advertisement
xiaomianao666

邀您一起看:神印王座

Aug 25th, 2022
461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥神印王座@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJqczpcXG52YXIgeW09TVlfVVJMLmluY2x1ZGVzKCdpcWl5aS4nKT9yZXF1ZXN0KE1ZX1VSTCx7fSk6ZmV0Y2goTVlfVVJMLCB7aGVhZGVyczp7XFxcIlVzZXItQWdlbnRcXFwiOlBDX1VBfX0pO1xcbnRyeXtcXG5pZihNWV9VUkwuaW5jbHVkZXMoJ2JpbGliaWxpJykpe1xcbnZhciBkZXM9SlNPTi5wYXJzZSh5bS5zcGxpdCgnbmV3ZXN0RXBcXFwiOicpWzFdLnNwbGl0KCd9JylbMF0rJ30nKS5kZXNjO1xcbnRyeXtcXG52YXIgZXA9SlNPTi5wYXJzZSh5bS5zcGxpdCgnXFxcImVwTGlzdFxcXCI6JylbMV0uc3BsaXQoJ31dJylbMF0rJ31dJyk7IFxcbn1jYXRjaChlKXtlcD1bXTt9XFxuaWYoZXAubGVuZ3RoPT0wKWd4ej0wO1xcbmVsc2V7XFxuZm9yKHZhciBpPWVwLmxlbmd0aC0xO2VwW2ldLmJhZGdlPT0n6aKE5ZGKJztpLS0pO1xcbnZhciBneHo9ZXBbaV0udGl0bGU7fX1cXG59Y2F0Y2goZSl7Z3h6PVxcXCLmm7TmlrDlhoXlrrnojrflj5blpLHotKXvvIFcXFwiO31cXG5cXG5cXG50cnl7XFxuaWYoTVlfVVJMLmluY2x1ZGVzKCdpcWl5aScpKXtcXG4vKlxcbnRyeXt2YXIgdj1KU09OLnBhcnNlKHltLnNwbGl0KCd2aWRlb0luZm9cXFwiOicpWzFdLnNwbGl0KCd9JylbMF0rJ30nKTt9Y2F0Y2goZSl7dmFyIHY9e307di5haWQ9eW0uc3BsaXQoJ2FsYnVtSWRcXFwiOicpWzFdLnNwbGl0KCcsJylbMF07fXZpPUpTT04ucGFyc2UocmVxdWVzdCgnaHR0cHM6Ly9wdWIubS5pcWl5aS5jb20vaDUvbWFpbi92aWRlb0xpc3QvYWxidW0vP2FsYnVtSWQ9Jyt2LmFpZCsnJnNpemU9MTUwMCZwYWdlPTEmbmVlZFByZXZ1ZT1mYWxzZSZuZWVkVmlwUHJldnVlPWZhbHNlJyx7fSkpLmRhdGE7aWYodmkhPScnKXt2PXZpLnZpZGVvcztneHo9di5wb3AoKS5wZH1lbHNle2k9djtpZihpJiYoIWkudnR8fCFpLnZ0LmluY2x1ZGVzKCfpooTlkYonKSkpZ3h6PWkub3JkZXI7fVxcbiovXFxuXFxudmFyIGd4ej15bS5tYXRjaCgvbGF0ZXN0T3JkZXJcXFwiLio/KFxcXFxkKykvKVsxXTtcXG59XFxufWNhdGNoKGUpe2d4ej0n5pyA5paw54q25oCB6I635Y+W5aSx6LSl77yBJzt9XFxudHJ5e1xcbmlmKE1ZX1VSTC5pbmNsdWRlcygncXEnKSl7XFxuZXZhbChwZGZoKHltLCdoZWFkJiZzY3JpcHQsMTgmJkh0bWwnKS5yZXBsYWNlKC93aW5kLio/PS8sJ2h0bT0nKSk7XFxudmFyIGVwaT1odG0uZ2xvYmFsLmNvdmVySW5mby52aWRlb19pZHM7XFxudmFyIGxlPWZldGNoKCdodHRwczovL3VuaW9uLnZpZGVvLnFxLmNvbS9mY2dpLWJpbi9kYXRhP290eXBlPWpzb24mdGlkPTY4MiZhcHBpZD0yMDAwMTIzOCZhcHBrZXk9NmMwM2JiZTk2NTg0NDhhNCZ1bmlvbl9wbGF0Zm9ybT0xJmlkbGlzdD0nK2VwaS5zbGljZSgtNSkucmV2ZXJzZSgpLmpvaW4oJywnKSk7XFxuZXZhbChsZSk7XFxudmFyIGxlPVFaT3V0cHV0SnNvbi5yZXN1bHRzLmZpbHRlcihhPT57aWYoIWEuZmllbGRzLmNhdGVnb3J5X21hcC5qb2luKCcsLCcpLmluY2x1ZGVzKCfpooTlkYonKSlyZXR1cm4gYTt9KTtcXG52YXIgZ3h6PSfnrKwnK2xlWzBdLmZpZWxkcy5lcGlzb2RlKyfor50nO1xcblxcbn19Y2F0Y2goZSl7Z3h6PVxcXCLmm7TmlrDlhoXlrrnojrflj5blpLHotKXvvIFcXFwiO31cXG5zZXRSZXN1bHQoJ+abtOaWsOiHs++8micrZ3h6KTtcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIua1i+ivlVwiLFwicGF0aFwiOlwiY2VzaGkuaHRtbFwiLFwicnVsZVwiOlwianM6XFxuXFxyXFxudmFyIHJlcyA9IHt9O1xcclxcbnZhciBkID0gW107XFxudmFyIGQxID0gW107XFxudmFyIGQyID0gW107XFxudmFyIGQzID0gW107XFxudmFyIGQ0ID0gW107XFxudmFyIGQ1ID0gW107XFxuZnVuY3Rpb24gc2VsKGEpe1xcbiAgIHRyeXtcXG4gICAgICBhPWEubWF0Y2goL1tcXFxcd10qP1xcXFwuY29tL2cpWzBdO1xcbiAgICAgfWNhdGNoKGUpe3JldHVybiAnb3RoJzt9XFxuICAgICAgICAgICAgc3dpdGNoIChhKSB7XFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcInFxLmNvbVxcXCI6XFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSAndHgnO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcImlxaXlpLmNvbVxcXCI6XFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSAncXknO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcInlvdWt1LmNvbVxcXCI6XFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSAneWsnO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcIm1ndHYuY29tXFxcIjpcXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9ICdtZyc7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgY2FzZSBcXFwiYmlsaWJpbGkuY29tXFxcIjpcXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9ICdibCc7XFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9ICdvdGgnO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgfVxcbnJldHVybiBzdHI7XFxufVxcblxcbnZhciBwYXRoPSdmaWxlOi8vL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9ydWxlcy9EdWFuTmlhbi9NeVBhcnNlLmpzb24nO1xcbnZhciBmaT1mZXRjaChwYXRoLHt9KTtcXG50cnl7XFxuZXZhbCgnang9JytmaSk7XFxuZXZhbCgnYT0nK2ZpKTtcXG5cXG5zYXZlRmlsZSgnc2F2ZS50eHQnLGZpKTtcXG5cXG5mb3IobGV0IHggb2YgT2JqZWN0LmtleXMoanguc2V0dGluZ3MpKXtcXG52YXIgYj1qeC5zZXR0aW5nc1t4XS5zcGxpdCgnLCcpO1xcbmZvcihpPTA7aTxiLmxlbmd0aDtpKyspe1xcbmZvcihqPWkrMTtqPGIubGVuZ3RoO2orKyl7XFxuaWYoYltpXT09YltqXSl7XFxuYi5zcGxpY2UoaiwxKTtcXG59XFxufVxcbn1cXG5qeC5zZXR0aW5nc1t4XT1iLmZpbHRlcihhPT57cmV0dXJuIGEhPScnO30pLmpvaW4oJywnKTtcXG59XFxuXFxuanguc2V0dGluZ3MuY2o9J2hpa2VyOi8vZmlsZXMvY2FjaGUvUGFyc2VfRG4uanMnO1xcbmp4LnRpdGxlPWp4LnRpdGxlLmZpbHRlcihhPT57XFxuaWYoanguY29kZXNbYV0pe2p4LmNvZGVzW2FdPWErJ+ino+aekCc7XFxucmV0dXJuIGE7fVxcbmVsc2V7ZGVsZXRlIGp4LmNvZGVzW2FdO319KTtcXG52YXIgZmk9SlNPTi5zdHJpbmdpZnkoangpO1xcbmZvcihqIG9mIGp4LnRpdGxlKXtmaT1maS5yZXBsYWNlKCdcXFwiJytqKyfop6PmnpBcXFwiJywoKHR5cGVvZiBhLmNvZGVzW2pdKSE9J2Z1bmN0aW9uJz8oJ1xcXCInK2EuY29kZXNbal0udG9TdHJpbmcoKS50cmltKCkrJ1xcXCInKTphLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKSk7fXdyaXRlRmlsZShwYXRoLGZpKTtcXG5cXG5pbnB1dD1nZXRWYXIoJ2lucHV0Jyk7XFxucHV0VmFyKCdpbnB1dCcsJycpO1xcbnZhciBuYW1lPWdldFZhcignaScpO1xcblxcbmQucHVzaCh7XFxudGl0bGU6J+a1i+ivlScsXFxuZGVzYzon6L6T5YWl5rWL6K+V6ZO+5o6lLi4uJyxcXG51cmw6YHB1dFZhcignaW5wdXQnLGlucHV0KTtyZWZyZXNoUGFnZShmYWxzZSk7YCxcXG5jb2xfdHlwZTonaW5wdXQnLFxcbmV4dHJhOntpZDpcXFwiaW5rXFxcIn1cXG59KTtcXG52YXIgcGF0aD0nZmlsZTovLy9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvcnVsZXMvRHVhbk5pYW4vTXlQYXJzZS5qc29uJztcXG5cXG5ldmFsKCdqeD0nK2ZpKTtcXG52YXIgcGQ9MDtcXG5mb3IoaT0wO2k8angudGl0bGUubGVuZ3RoO2krKyl7XFxuaWYoangudGl0bGVbaV09PW5hbWUpe1xcbnBkPTE7YnJlYWs7XFxufVxcbn1cXG5pZihuYW1lPT0nJ3x8cGQ9PTApbmFtZT1qeC50aXRsZVswXTtcXG5cXG5kLnB1c2goe1xcbnRpdGxlOifmtYvor5Xku44gJytuYW1lKycg5byA5aeLOiAnLFxcbmRlc2M6J+eCueWHu+WIh+aNoui1t+eCueino+aekCcsXFxudXJsOmBzZWxlY3Q6Ly97XFxcInRpdGxlXFxcIjogXFxcIumAieaLqeino+aekC4uLlxcXCIsXFxcIm9wdGlvbnNcXFwiIDpbYCtqeC50aXRsZS5tYXAoYT0+e3JldHVybiAnXFxcIicrYSsnXFxcIid9KStgXSxjb2w6IDMsIFxcXCJqc1xcXCI6XFxcInB1dFZhcignaScsaW5wdXQpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLoh7MnK2lucHV0KyflvIDlp4vmtYvor5XvvIEnXFxcIn1gLFxcbmNvbF90eXBlOid0ZXh0XzEnXFxufSk7XFxuZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtcXG5pZihpbnB1dCE9JycmJmlucHV0LmluY2x1ZGVzKCc6Ly8nKSl7XFxudmFyIGNzPTA7XFxuZm9yKHZhciBpaT0wO2lpPGp4LnRpdGxlLmxlbmd0aDtpaSsrKXtcXG5cXG5pZihuYW1lIT1qeC50aXRsZVtpaV0mJmNzPT0wKXtcXG5jb250aW51ZTtcXG59ZWxzZSBpZihuYW1lPT1qeC50aXRsZVtpaV0pe2NzPTE7fVxcblxcblxcblxcbmlmKGp4LnRpdGxlW2lpXSE9J2RlZmF1bHRQYXJzZScpe1xcbnRyeXtcXG5zaG93TG9hZGluZygn5q2j5Zyo5rWL6K+VICcrangudGl0bGVbaWldKTtcXG5cXG5pZigodHlwZW9mIGp4LmNvZGVzW2p4LnRpdGxlW2lpXV0pIT0nc3RyaW5nJyl7XFxudmFyIHVybD1qeC5jb2Rlc1tqeC50aXRsZVtpaV1dKGlucHV0KS5yZXBsYWNlKC9cXFxcXFxcIi9nLCdcXFxcXFxcXFxcXCInKS5yZXBsYWNlKC9cXFxcJy9nLFxcXCJcXFxcXFxcXCdcXFwiKS5yZXBsYWNlKC9cXFxcYC9nLCdcXFxcXFxcXGAnKTtcXG5pZihzZWwoaW5wdXQpPT0nbWcnJiZ1cmwuc2VhcmNoKC9Vc2VyLUFnZW50fFJlZmVyZXIvKT09LTEpXFxudXJsPXVybCsnO3tVc2VyLUFnZW50QE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjApfSc7XFxufVxcbmVsc2V7XFxudmFyIHVybD0nJztcXG59XFxuXFxuaWYodXJsLmluY2x1ZGVzKCd0b2FzdDovLycpfHwhdXJsLmluY2x1ZGVzKCc6Ly8nKXx8dXJsPT1pbnB1dCl1cmw9Jyc7XFxufWNhdGNoKGUpe1xcbnVybD0nJztcXG59XFxuXFxuaWYodXJsIT0nJylcXG57XFxuZDEucHVzaCh7XFxudGl0bGU6angudGl0bGVbaWldLFxcbmRlc2M6J+aJvuWIsOS4gOS4quWFjeWXhScsXFxudXJsOmBzZWxlY3Q6Ly97XFxcInRpdGxlXFxcIjogXFxcIumAieaLqeaTjeS9nC4uLlxcXCIsIFxcXCJvcHRpb25zXFxcIiA6Wyfmkq3mlL4nLCfmt7vliqAnLCfliKDpmaQnXSwgY29sOiAzLCBcXFwianNcXFwiOiBcXFwiaWYoaW5wdXQ9PSfmkq3mlL4nKXtcXFxcYGArdXJsK2BcXFxcYDt9ZWxzZSB7dmFyIHBhdGg9J2ZpbGU6Ly8vc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL3J1bGVzL0R1YW5OaWFuL015UGFyc2UuanNvbic7dmFyIGZpPWZldGNoKHBhdGgse30pO2V2YWwoJ2p4PScrZmkpO2V2YWwoJ2E9JytmaSk7aWYoaW5wdXQ9PSfmt7vliqAnKXt2YXIgc2V0PWp4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddO3NldD1zZXQuc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO2p4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddPSdgK2p4LnRpdGxlW2lpXStgJysoc2V0PT0nJz8nJzonLCcpK3NldDtmb3IoaiBvZiBqeC50aXRsZSl7anguY29kZXNbal09aisn6Kej5p6QJzt9dmFyIGZpPUpTT04uc3RyaW5naWZ5KGp4KTt9ZWxzZXt2YXIganhsPWp4LnRpdGxlLmZpbHRlcihhPT57aWYoYSE9J2ArangudGl0bGVbaWldK2AnKXJldHVybiBhO30pO2ZvcihqIG9mIGp4LnRpdGxlKXtpZihqIT0nYCtqeC50aXRsZVtpaV0rYCcpanguY29kZXNbal09aisn6Kej5p6QJztlbHNlIGRlbGV0ZSBqeC5jb2Rlc1tqXTt9angudGl0bGU9anhsO2ZvcihrIG9mIE9iamVjdC5rZXlzKGp4LnNldHRpbmdzKSl7anguc2V0dGluZ3Nba109anguc2V0dGluZ3Nba10uc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO312YXIgZmk9SlNPTi5zdHJpbmdpZnkoangpO31mb3IoaiBvZiBqeC50aXRsZSl7Zmk9ZmkucmVwbGFjZSgnXFxcXFxcXFxcXFwiJytqKyfop6PmnpBcXFxcXFxcXFxcXCInLCgodHlwZW9mIGEuY29kZXNbal0pIT0nZnVuY3Rpb24nPygnXFxcXFxcXFxcXFwiJythLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKydcXFxcXFxcXFxcXCInKTphLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKSk7fXdyaXRlRmlsZShwYXRoLGZpKTsndG9hc3Q6Ly/lrozmiJDvvIEnfVxcXCJ9YCxcXG5jb2xfdHlwZTondGV4dF8xJ1xcbn0pO1xcbnRyeXtcXG5wdXRWYXIoJ2knLGp4LnRpdGxlW2lpKzFdKTtcXG59Y2F0Y2goZSl7XFxuY2xlYXJWYXIoJ2knKTt9XFxuZDEucHVzaCh7Y29sX3R5cGU6J2xpbmUnfSk7XFxuZDEucHVzaCh7XFxudGl0bGU6J+S4i+S4gOS4qicsXFxudXJsOmBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2lucHV0JywnYCtpbnB1dCtgJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+S4i+S4gOS4qidgLFxcbmNvbF90eXBlOid0ZXh0XzInXFxufSk7XFxuZDEucHVzaCh7XFxudGl0bGU6J+S7juWktOW8gOWniycsXFxudXJsOmBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2lucHV0JywnYCtpbnB1dCtgJyk7Y2xlYXJWYXIoJ2knKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5byA5aeLJ2AsXFxuY29sX3R5cGU6J3RleHRfMidcXG59KTtcXG5oaWRlTG9hZGluZygpO1xcbmJyZWFrO1xcbn1cXG5cXG5cXG5lbHNle1xcbmlmKCh0eXBlb2YganguY29kZXNbangudGl0bGVbaWldXSkhPSdzdHJpbmcnKVxcbmQyLnB1c2goe1xcbnRpdGxlOmp4LnRpdGxlW2lpXSxcXG5cXG51cmw6YHNlbGVjdDovL3tcXFwidGl0bGVcXFwiOiBcXFwi6YCJ5oup5pON5L2cLi4uXFxcIiwgXFxcIm9wdGlvbnNcXFwiIDpbJ+mHjeivlScsJ+a3u+WKoCcsJ+WIoOmZpCddLCBjb2w6IDMsIFxcXCJqc1xcXCI6IFxcXCJpZihpbnB1dD09J+mHjeivlScpe1xcXFxgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6dmFyIHBhdGg9J2ZpbGU6Ly8vc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL3J1bGVzL0R1YW5OaWFuL015UGFyc2UuanNvbic7dmFyIGZpPWZldGNoKHBhdGgse30pO2V2YWwoJ2p4PScrZmkpO2p4LmNvZGVzWydgK2p4LnRpdGxlW2lpXStgJ10oJ2AraW5wdXQrYCcpO1xcXFxgfWVsc2Uge3ZhciBwYXRoPSdmaWxlOi8vL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9ydWxlcy9EdWFuTmlhbi9NeVBhcnNlLmpzb24nO3ZhciBmaT1mZXRjaChwYXRoLHt9KTtldmFsKCdqeD0nK2ZpKTtldmFsKCdhPScrZmkpO2lmKGlucHV0PT0n5re75YqgJyl7dmFyIHNldD1qeC5zZXR0aW5nc1snYCtzZWwoaW5wdXQpK2AnXTtzZXQ9c2V0LnNwbGl0KCcsJykuZmlsdGVyKGE9PntpZihhIT0nJyYmYSE9J2ArangudGl0bGVbaWldK2AnKXJldHVybiBhO30pLmpvaW4oJywnKTtqeC5zZXR0aW5nc1snYCtzZWwoaW5wdXQpK2AnXT0nYCtqeC50aXRsZVtpaV0rYCcrKHNldD09Jyc/Jyc6JywnKStzZXQ7Zm9yKGogb2YgangudGl0bGUpe2p4LmNvZGVzW2pdPWorJ+ino+aekCc7fXZhciBmaT1KU09OLnN0cmluZ2lmeShqeCk7fWVsc2V7dmFyIGp4bD1qeC50aXRsZS5maWx0ZXIoYT0+e2lmKGEhPSdgK2p4LnRpdGxlW2lpXStgJylyZXR1cm4gYTt9KTtmb3IoaiBvZiBqeC50aXRsZSl7aWYoaiE9J2ArangudGl0bGVbaWldK2AnKWp4LmNvZGVzW2pdPWorJ+ino+aekCc7ZWxzZSBkZWxldGUganguY29kZXNbal07fWp4LnRpdGxlPWp4bDtmb3IoayBvZiBPYmplY3Qua2V5cyhqeC5zZXR0aW5ncykpe2p4LnNldHRpbmdzW2tdPWp4LnNldHRpbmdzW2tdLnNwbGl0KCcsJykuZmlsdGVyKGE9PntpZihhIT0nJyYmYSE9J2ArangudGl0bGVbaWldK2AnKXJldHVybiBhO30pLmpvaW4oJywnKTt9dmFyIGZpPUpTT04uc3RyaW5naWZ5KGp4KTt9Zm9yKGogb2YgangudGl0bGUpe2ZpPWZpLnJlcGxhY2UoJ1xcXFxcXFxcXFxcIicraisn6Kej5p6QXFxcXFxcXFxcXFwiJywoKHR5cGVvZiBhLmNvZGVzW2pdKSE9J2Z1bmN0aW9uJz8oJ1xcXFxcXFxcXFxcIicrYS5jb2Rlc1tqXS50b1N0cmluZygpLnRyaW0oKSsnXFxcXFxcXFxcXFwiJyk6YS5jb2Rlc1tqXS50b1N0cmluZygpLnRyaW0oKSkpO313cml0ZUZpbGUocGF0aCxmaSk7J3RvYXN0Oi8v5a6M5oiQ77yBJ31cXFwifWAsXFxuY29sX3R5cGU6J3RleHRfMydcXG59KTtcXG5lbHNle1xcbnZhciB4NT1qeC5jb2Rlc1snZGVmYXVsdFBhcnNlJ10oanguY29kZXNbangudGl0bGVbaWldXStpbnB1dCkucmVwbGFjZSgvXFxcXFxcXFwvZywnXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnKS5yZXBsYWNlKC9cXFxcXFxcIi9nLCdcXFxcXFxcXFxcXCInKS5yZXBsYWNlKC9cXFxcJy9nLFxcXCJcXFxcXFxcXCdcXFwiKS5yZXBsYWNlKC9cXFxcYC9nLCdcXFxcXFxcXGAnKS5yZXBsYWNlKC9bXFxcXHNdL2csJyAnKTtcXG5kNC5wdXNoKHtcXG50aXRsZTpqeC50aXRsZVtpaV0sXFxuXFxudXJsOmBzZWxlY3Q6Ly97XFxcInRpdGxlXFxcIjogXFxcIumAieaLqeaTjeS9nC4uLlxcXCIsIFxcXCJvcHRpb25zXFxcIiA6Wyfop6PmnpAnLCfmt7vliqAnLCfliKDpmaQnXSwgY29sOiAzLCBcXFwianNcXFwiOiBcXFwiaWYoaW5wdXQ9PSfop6PmnpAnKXsnYCt4NStgJ31lbHNlIHt2YXIgcGF0aD0nZmlsZTovLy9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvcnVsZXMvRHVhbk5pYW4vTXlQYXJzZS5qc29uJzt2YXIgZmk9ZmV0Y2gocGF0aCx7fSk7ZXZhbCgnang9JytmaSk7ZXZhbCgnYT0nK2ZpKTtpZihpbnB1dD09J+a3u+WKoCcpe3ZhciBzZXQ9anguc2V0dGluZ3NbJ2Arc2VsKGlucHV0KStgJ107c2V0PXNldC5zcGxpdCgnLCcpLmZpbHRlcihhPT57aWYoYSE9JycmJmEhPSdgK2p4LnRpdGxlW2lpXStgJylyZXR1cm4gYTt9KS5qb2luKCcsJyk7anguc2V0dGluZ3NbJ2Arc2VsKGlucHV0KStgJ109J2ArangudGl0bGVbaWldK2AnKyhzZXQ9PScnPycnOicsJykrc2V0O2ZvcihqIG9mIGp4LnRpdGxlKXtqeC5jb2Rlc1tqXT1qKyfop6PmnpAnO312YXIgZmk9SlNPTi5zdHJpbmdpZnkoangpO31lbHNle3ZhciBqeGw9angudGl0bGUuZmlsdGVyKGE9PntpZihhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSk7Zm9yKGogb2YgangudGl0bGUpe2lmKGohPSdgK2p4LnRpdGxlW2lpXStgJylqeC5jb2Rlc1tqXT1qKyfop6PmnpAnO2Vsc2UgZGVsZXRlIGp4LmNvZGVzW2pdO31qeC50aXRsZT1qeGw7Zm9yKGsgb2YgT2JqZWN0LmtleXMoanguc2V0dGluZ3MpKXtqeC5zZXR0aW5nc1trXT1qeC5zZXR0aW5nc1trXS5zcGxpdCgnLCcpLmZpbHRlcihhPT57aWYoYSE9JycmJmEhPSdgK2p4LnRpdGxlW2lpXStgJylyZXR1cm4gYTt9KS5qb2luKCcsJyk7fXZhciBmaT1KU09OLnN0cmluZ2lmeShqeCk7fWZvcihqIG9mIGp4LnRpdGxlKXtmaT1maS5yZXBsYWNlKCdcXFxcXFxcXFxcXCInK2orJ+ino+aekFxcXFxcXFxcXFxcIicsKCh0eXBlb2YgYS5jb2Rlc1tqXSkhPSdmdW5jdGlvbic/KCdcXFxcXFxcXFxcXCInK2EuY29kZXNbal0udG9TdHJpbmcoKS50cmltKCkrJ1xcXFxcXFxcXFxcIicpOmEuY29kZXNbal0udG9TdHJpbmcoKS50cmltKCkpKTt9d3JpdGVGaWxlKHBhdGgsZmkpOyd0b2FzdDovL+WujOaIkO+8gSd9XFxcIn1gLFxcbmNvbF90eXBlOid0ZXh0XzMnXFxufSk7fVxcbn1cXG59fVxcbn1cXG5oaWRlTG9hZGluZygpO1xcbmlmKGQyIT0nJylcXG5kMy5wdXNoKHtcXG50aXRsZTon4q2Q77iP5Lul5LiL5piv6Kej5p6Q5aSx6LSl55qE5YWN5ZeFOicsXFxuY29sX3R5cGU6J3RleHRfMSdcXG5cXG59KTtcXG5pZihkNCE9JycpXFxuZDUucHVzaCh7XFxudGl0bGU6J+KtkO+4j+S7peS4i+S4jeaYr+WFjeWXhe+8jOmcgOimgeaJi+WKqOa1i+ivlTonLFxcbmNvbF90eXBlOid0ZXh0XzEnXFxuXFxufSk7XFxufWNhdGNoKGUpe1xcbmQucHVzaCh7XFxudGl0bGU6J+aWh+S7tuaNn+Wdj++8jOeCueWHu+atpOWkhOaBouWkjSjlpoLmnpzmnInlpIfku73nmoTor50pJyxcXG5jb2xfdHlwZTondGV4dF9jZW50ZXJfMScsXFxuZGVzYzon5YWI54K55LiA5LiL6K+V5LiA6K+V5ZCnJyxcXG51cmw6YGhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOndyaXRlRmlsZSgnYCtwYXRoK2AnLHJlYWRGaWxlKCdzYXZlLnR4dCcpKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5omn6KGM5oiQ5Yqf77yBJ2BcXG59KTtcXG59XFxuZD1kLmNvbmNhdChkMSkuY29uY2F0KGQzKS5jb25jYXQoZDIpLmNvbmNhdChkNSkuY29uY2F0KGQ0KTtcXG5cXHJcXG5yZXMuZGF0YSA9IGQ7XFxyXFxuc2V0SG9tZVJlc3VsdChyZXMpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pCc57SiXCIsXCJwYXRoXCI6XCJzby5odG1sXCIsXCJydWxlXCI6XCJpZihpbnB1dD09J+aQnOe0ouWIhue7hCcpe2BpbnB1dDovL3tcXFwiaGludFxcXCI6J+i+k+WFpeWIhue7hOWQjeensO+8micsXFxcImpzXFxcIjpcXFwiYT1bXTthWzBdPTA7YVsxXT1pbnB1dDtpZihhWzFdIT0nJyl7c2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7Zmkuc289YTt3cml0ZUZpbGUoc2UsSlNPTi5zdHJpbmdpZnkoZmkpKTtyZWZyZXNoUGFnZShmYWxzZSk7fVxcXCJ9YH1cXG5lbHNle2BpbnB1dDovL3tcXFwiaGludFxcXCI6J+i+k+WFpeWwj+eoi+W6j+WQjeensO+8micsXFxcImpzXFxcIjpcXFwiYT1bXTthWzBdPTE7YVsxXT1pbnB1dDtpZihhWzFdIT0nJyl7c2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7Zmkuc289YTt3cml0ZUZpbGUoc2UsSlNPTi5zdHJpbmdpZnkoZmkpKTtyZWZyZXNoUGFnZShmYWxzZSk7fVxcXCJ9YH1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueugOS7i1wiLFwicGF0aFwiOlwiamlhbmpcIixcInJ1bGVcIjpcImZ1bmN0aW9uIGppYW5qKGEpe1xcbnJldHVybiBgaGlrZXI6Ly9lbXB0eUBydWxlPWpzOnZhciByZXMgPSB7fTt2YXIgZCA9IFtdO2QucHVzaCh7dGl0bGU6J+eugOS7i++8mlxcXFxcXFxcbicrXFxcXGBgK2ErYFxcXFxgLGNvbF90eXBlOidsb25nX3RleHQnfSk7cmVzLmRhdGEgPSBkO3NldEhvbWVSZXN1bHQocmVzKTtgXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5YiG57G7XCIsXCJwYXRoXCI6XCJjbGFzc2lmeVwiLFwicnVsZVwiOlwianM6XFxuZD1bXTtcXG5wdXRWYXIoJ+WIhuexuycsJycpO1xcbnZhciBwYXRoPVxcXCJoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC/miJHnmoTov73nlaoudHh0XFxcIjtcXG52YXIgZmlsZT1yZXF1ZXN0KHBhdGgpO1xcbmlmKGZpbGUhPVxcXCJcXFwiKXtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTpcXFwi5pON5L2c6K+05piO77yaXFxcIixcXG4gICAgZGVzYzpcXFwi5YWI6YCJ5oup5pS+5Yiw5LiA5Liq5YiG57uE55qE55Wq5Ymn77yM54K55Ye75a6M5oiQ77yM6L6T5YWl5ZCN56ew5Y2z5Y+v77yBXFxcIixcXG4gICAgY29sX3R5cGU6XFxcInRleHRfMVxcXCIsXFxuICAgIGV4dHJhOntpZDon5q2l6aqkJ31cXG5cXG59KTtcXG52YXIgeHg9ZmlsZS5zcGxpdCgnQEAnKS5maWx0ZXIoYT0+e3JldHVybiBhIT1cXFwiXFxcIjt9KTtcXG52YXIgYXJyPXh4Lm1hcChhPT57XFxuICAgIHZhciBiPXt9O1xcbnZhciBjYXRlPWEuc3BsaXQoXFxcIiYmXFxcIik7XFxuICAgIHZhciB0PWNhdGVbMF07XFxudGk9dDtcXG5pZihjYXRlWzRdJiZjYXRlWzRdIT1cXFwiXFxcIil0aT0n4oCY4oCYJyt0KyfigJnigJknO1xcbiAgICBiLnRpdGxlPXRpO1xcbiAgICBiLnVybD1cXFwiaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjQGxhenlSdWxlPS5qczp2YXIgYT1nZXRWYXIoJ+WIhuexuycsJycpO3ZhciBiPTA7YT1hPT0nJz9bXTpKU09OLnBhcnNlKGEpO2E9YS5maWx0ZXIoaT0+e2lmKGk9PSdcXFwiK3QrXFxcIicpe2I9MTt9ZWxzZXtyZXR1cm4gaTt9fSk7aWYoYj09MClhLnB1c2goJ1xcXCIrdCtcXFwiJyk7cHV0VmFyKCfliIbnsbsnLGEpO3VwZGF0ZUl0ZW0oe3RpdGxlOmI9PTA/KCfigJzigJxcXFwiK3QrXFxcIuKAneKAnScpOignXFxcIit0aStcXFwiJyksZXh0cmE6e2lkOidcXFwiK3QrXFxcIid9fSk7KCd0b2FzdDovLycrKGI9PTA/J+W3sumAieS4re+8gSc6J+WPlua2iOmAieS4re+8gScpKVxcXCI7XFxuICAgIGIuY29sX3R5cGU9XFxcInRleHRfMlxcXCI7XFxuICAgIGIuZXh0cmE9e2lkOnR9O1xcbiAgICByZXR1cm4gYjtcXG59KTtcXG5kPWQuY29uY2F0KGFycik7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6XFxcIuWujOaIkFxcXCIsXFxuICAgIGNvbF90eXBlOlxcXCJ0ZXh0X2NlbnRlcl8xXFxcIixcXG4gICAgdXJsOmBpbnB1dDovL3tcXFwiaGludFxcXCI6XFxcIuWIhue7hOWQjeensC4uLi4uLlxcXCIsIFxcXCJqc1xcXCI6IFxcXCJ2YXIgZmk9YCtKU09OLnN0cmluZ2lmeSh4eCkucmVwbGFjZSgvXFxcIi9nLFxcXCInXFxcIikrYDt2YXIgYT1nZXRWYXIoJ+WIhuexuycsJycpO2E9YT09Jyc/W106SlNPTi5wYXJzZShhKTtmb3IobGV0IGkgb2YgYSl7Zm9yKGxldCBqIGluIGZpKXt2YXIgY2F0ZT1maVtqXS5zcGxpdCgnJiYnKTt2YXIgdGk9Y2F0ZVswXTtpZih0aT09aSl7Y2F0ZVs0XT1pbnB1dDtmaVtqXT1jYXRlLmpvaW4oJyYmJyk7YnJlYWs7fX19d3JpdGVGaWxlKCdgK3BhdGgrYCcsZmkuam9pbignQEAnKSsnQEAnKTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WujOaIkCEnXFxcIn1gXFxufSlcXG5cXG5cXG59ZWxzZXtcXG4gICAgZC5wdXNoKHtcXG4gICAgdGl0bGU6XFxcIuayoeaciei/veeVquOAguOAguOAglxcXCIsXFxuICAgIGRlc2M6XFxcIuivt+WFiOa3u+WKoOi/veeVquWGjeivle+8ge+8gVxcXCIsXFxuICAgIGNvbF90eXBlOlxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbn0pO1xcbn1cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLov73nlarliIbnu4RcIixcInBhdGhcIjpcInpmZnpcIixcInJ1bGVcIjpcInB1dFZhcignamwnLHBhcnNlSW50KGdldFZhcignamwnLCcwJyksMTApLTEpO1xcblxcbnZhciBpbnA9Z2V0VmFyKCd1cmwxJykuc3BsaXQoJyYmJyk7aW5wWzRdPWlucHV0O2lucD1pbnAuam9pbignJiYnKTtcXG5cXG52YXIgeHI9aW5wKydAQCcrZmV0Y2goJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHQnLHt9KTtcXG5cXG53cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHQnLHhyKTtcXG5cXG5yZWZyZXNoUGFnZShmYWxzZSk7XFxuXFxuJ3RvYXN0Oi8v6L+955Wq5oiQ5Yqf77yBJztcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcInNlbmRlY3J5cHRcIixcInBhdGhcIjpcInNlbmZ1bi5qc1wiLFwicnVsZVwiOlwiZnVuY3Rpb24gZGVjcnlwdCh1cmwsdmllLGNoKSB7XFxucmVxdWlyZSgnaHR0cHM6Ly9sZjYtY2RuLXRvcy5ieXRlY2RudHAuY29tL2Nkbi9leHBpcmUtMS1NL2NyeXB0by1qcy80LjAuMC9jcnlwdG8tanMubWluLmpzJyk7XFxyXFxuICAgIGxldCBfMHg0MGYzMDggPSB2aWU7XFxyXFxuICAgIGxldCBfMHgxOTY4OWUgPSBjaDtcXHJcXG4gICAgbGV0IF8weDQwMDkwNCA9IFtdXFxyXFxuICAgICAgLCBfMHgyYzQ0MDcgPSBbXVxcclxcbiAgICAgICwgXzB4NGM0ZTRiID0gJyc7XFxyXFxuICAgIGZvciAodmFyIF8weDFhYzY1MyA9IDB4MDsgXzB4MWFjNjUzPCBfMHgxOTY4OWUubGVuZ3RoOyBfMHgxYWM2NTMrKykge1xcclxcbiAgICAgICBcXHJcXG4gICAgICAgICAgICBfMHg0MDA5MDQucHVzaCh7XFxyXFxuICAgICAgICAgICAgICAgICdpZCc6IF8weDE5Njg5ZVtfMHgxYWM2NTNdLFxcclxcbiAgICAgICAgICAgICAgICAndGV4dCc6IF8weDQwZjMwOFtfMHgxYWM2NTNdXFxyXFxuICAgICAgICAgICAgfSk7XFxyXFxuICAgICAgIFxcclxcbiAgICB9XFxyXFxuICAgICBfMHgyYzQ0MDcgPV8weDQwMDkwNC5zb3J0KGZ1bmN0aW9uKHsnaWQnOiBkfSx7J2lkJzogZX0pe3JldHVybiBkLWU7fSk7XFxyXFxuICAgIGZvciAodmFyIF8weDFhYzY1MyA9IDA7IF8weDFhYzY1MzwgXzB4MmM0NDA3Lmxlbmd0aDsgXzB4MWFjNjUzKyspIHtcXHJcXG4gICAgICAgIF8weDRjNGU0YiArPSBfMHgyYzQ0MDdbXzB4MWFjNjUzXS50ZXh0O1xcclxcbiAgICB9XFxyXFxuICAgIGxldCBfMHg5NzZmOWYgPSBDcnlwdG9KUy5NRDUoXzB4NGM0ZTRiKydmYXZub3cnKS50b1N0cmluZygpO1xcclxcbiAgICBsZXQgXzB4MWM4ZGI0ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoXzB4OTc2ZjlmLnN1YnN0cmluZygxNikpO1xcclxcbiAgICBsZXQgXzB4MjIwMDk3ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoXzB4OTc2ZjlmLnN1YnN0cmluZygwLCAxNikpO1xcclxcbiAgICBsZXQgXzB4NDhjNmFiID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQodXJsLCBfMHgxYzhkYjQsIHtcXHJcXG4gICAgICAgICdpdic6IF8weDIyMDA5NyxcXHJcXG4gICAgICAgICdtb2RlJzogQ3J5cHRvSlMubW9kZS5DQkMsXFxyXFxuICAgICAgICAncGFkZGluZyc6IENyeXB0b0pTLnBhZC5Qa2NzN1xcclxcbiAgICB9KTtcXHJcXG4gICAgcmV0dXJuIF8weDQ4YzZhYi50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOCk7XFxyXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi55m75b2VXCIsXCJwYXRoXCI6XCJkbC5odG1sXCIsXCJydWxlXCI6XCJcXG5zZXRSZXN1bHQoW3tcXG4gICAgY29sX3R5cGU6IFxcXCJ4NV93ZWJ2aWV3X3NpbmdsZVxcXCIsXFxuICAgIHVybDogXFxcImh0dHBzOi8vd3d3LnhmYW5pLmNvbS91c2VyL2xvZ2luLmh0bWxcXFwiLFxcbiAgICBkZXNjOiBcXFwiZmxvYXQmJjEwMCVcXFwiLFxcbiAgICBleHRyYToge1xcbiAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgIGZ5X2JyaWRnZV9hcHAud3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9jb29raWUudHh0JywgZnlfYnJpZGdlX2FwcC5nZXRDb29raWUoJ2h0dHBzOi8vd3d3LnhmYW5pLmNvbS91c2VyL2xvZ2luLmh0bWwnKSk7XFxuICAgICAgICB9KVxcbiAgICB9XFxufV0pXCJ9XSxcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi5paw55Wq5pu05paw6KGoKlwiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImh0dHBzOi8vdi5xcS5jb20veC9jb3Zlci9temMwMDIwMDdqN3A1aG4uaHRtbCMj56We5Y2w546L5bqnJiZodHRwczovL3YucXEuY29tL3gvY292ZXIvbXpjMDAyMDA3ajdwNWhuLmh0bWwmJmh0dHA6Ly9wdXVpLnFwaWMuY24vbWVkaWFfaW1nL2xlbmEvUElDM3h1bWF3XzU4MF8xNjgwLzA7Z2V0O1VURi04O3tVc2VyLUFnZW50QE1vemlsbGEvNS4wIChMaW51eO+8m++8myBBbmRyb2lkIDEx77yb77ybIE1pIDEwIFBybykgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzg4LjAuNDMyNC4xNTIgTW9iaWxlIFNhZmFyaS81MzcuMzZ9XCIsXCJjb2xfdHlwZVwiOlwibW92aWVfMlwiLFwiZmluZF9ydWxlXCI6XCJqczpcXG5ldmFsKGdldEl0ZW0oJ2FhJykuc3BsaXQoJy8qKi8nKVsxXSk7XCIsXCJncm91cFwiOlwiLuS4u+mhtVwiLFwidWFcIjpcIm1vYmlsZVwiLFwicHJlUnVsZVwiOlwiXFxudmFyIGZ6PUpTT04uc3RyaW5naWZ5KGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC/miJHnmoTov73nlaoudHh0XFxcIix7fSkuc3BsaXQoJ0BAJykubWFwKGE9PntyZXR1cm4gYS5zcGxpdCgnJiYnKVs0XTt9KS5maWx0ZXIoKGEsYixjKT0+e2lmKGEmJmI9PTB8fCFjLnNsaWNlKDAsYikuam9pbignJiMnKS5pbmNsdWRlcyhhKSlyZXR1cm4gYTt9KS5jb25jYXQoW1xcXCLigJzigJzmlrDlu7rliIbnu4TigJ3igJ1cXFwiXSkpO1xcblxcbnNldEl0ZW0oJ2xhMScsIGBzZWxlY3Q6Ly97XFxcInRpdGxlXFxcIjogXFxcIumAieaLqeWIhue7hFxcXCIsIFxcXCJvcHRpb25zXFxcIiA6YCtmeitgLCBjb2w6IDMsIGpzOiBcXFwiaWYoaW5wdXQ9PSfigJzigJzmlrDlu7rliIbnu4TigJ3igJ0nKXtcXFxcYGlucHV0Oi8ve1xcXFxcXFxcXFxcImpzXFxcXFxcXFxcXFwiOiBcXFxcXFxcXFxcXCJldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS96ZmZ6Jyx7fSkpLnJ1bGUpO1xcXFxcXFxcXFxcIiwgXFxcXFxcXFxcXFwiaGludFxcXFxcXFxcXFxcIjogXFxcXFxcXFxcXFwi5paw5bu65YiG57uE5ZCN56ew4oCmXFxcXFxcXFxcXFwifVxcXFxgO31lbHNle2V2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3pmZnonLHt9KSkucnVsZSk7fVxcXCJ9YCk7XFxuXFxuc2V0SXRlbSgnbGEyJywgYGhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnB1dFZhcihcXFwiamxcXFwiLHBhcnNlSW50KGdldFZhcihcXFwiamxcXFwiLFxcXCIwXFxcIiksMTApLTEpO3ZhciB2PWdldFZhcigndXJsMScpOyBpbnB1dD12LnNwbGl0KCcmJicpWzBdO3BkPXYuc3BsaXQoJyYmJylbMV0uc3BsaXQoJz8nKVswXTt2YXIgbGI9ZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHRcXFwiLHt9KTtmb3IoaT0wO2lucHV0IT0nJztpKyspe3RyeXtpZihpIT0wKWlucHV0PWlucHV0LnNsaWNlKDAsLTEpO3ZhciBzYz1uZXcgUmVnRXhwKGlucHV0KydbXFxcXFxcXFxcXFxcXFxcXHNcXFxcXFxcXFxcXFxcXFxcU117JysoaSsyKSsnfScrcGQrJ1tcXFxcXFxcXFxcXFxcXFxcc1xcXFxcXFxcXFxcXFxcXFxTXSo/QEAnLCdnJyk7dmFyIHhyPWxiLnJlcGxhY2Uoc2MsJycpO2lmKCF4ci5pbmNsdWRlcyhwZCkpe3dyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFxcXCIseHIpO2JyZWFrO319Y2F0Y2goZSl7fX1yZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5Y+W5raI6L+955Wq5oiQ5Yqf77yBJ2ApO1xcblxcbnNldEl0ZW0oJ3JDJywgYHZhciBtPVtdO3ZhciBsaT1mZXRjaChcXFwiaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dFxcXCIse30pLnNwbGl0KCdAQCcpLmZpbHRlcihhPT57cmV0dXJuIGEhPScnO30pO3ZhciBzPWlucHV0LnNwbGl0KCcjIycpO2lucHV0PXNbMF07Zm9yKHZhciBpIGluIGxpKXt2YXIgaj1saVtpXS5zcGxpdCgnJiYnKTtpZihnZXRWYXIoJ3VybCcpLmluY2x1ZGVzKGpbMV0pKXtpZihqWzNdIT1zWzFdKXtqWzNdPXNbMV07dmFyIGoxPWouam9pbignJiYnKTtsaS5zcGxpY2UoaSwxKTttPW0uY29uY2F0KGoxLGxpKS5qb2luKCdAQCcpKydAQCc7d3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC/miJHnmoTov73nlaoudHh0XFxcIixtKTticmVhazt9ZWxzZSBicmVhazt9fWApO1xcblxcbnNldEl0ZW0oJ2FhJywgYEBydWxlPWpzOi8qKi9zZXRJdGVtKCdzZW5DJyxyZXF1ZXN0KCdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9jb29raWUudHh0JykpO2lmKGdldFZhcigneGwnKT09JycmJmdldFZhcigndGonKT09JycmJmdldFZhcihcXFwiaWlcXFwiKT09XFxcIlxcXCIpcHV0VmFyKFxcXCJqbFxcXCIscGFyc2VJbnQoZ2V0VmFyKFxcXCJqbFxcXCIsXFxcIjBcXFwiKSwxMCkrMSk7dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmlzPWZldGNoKHNlLHt9KTtpZihmaXM9PScnKXt2YXIgZmlzPUpTT04uc3RyaW5naWZ5KHtkbTon5YWzJyxiaWxpOiflhbMnfSk7d3JpdGVGaWxlKHNlLGZpcyk7fWZpPUpTT04ucGFyc2UoZmlzKTt2YXIgbW89Z2V0VmFyKCdtb2RlbCcpO3B1dFZhcignbW9kZWwnLCcnKTt2YXIgcmVzMSA9IHt9O3ZhciBkMSA9IFtdO2Q9W107ZDI9W107dHJ5e2lmKE1ZX1VSTC5pbmNsdWRlcygnaXFpeWkuY28nKSl7dmFyIHltPWdldFJlc0NvZGUoKS5yZXBsYWNlKC9cXFxcXFxcXHUwMDJGL2csJy8nKS5yZXBsYWNlKC92aWRlb1VybC9nLCdwYWdlVXJsJyk7fWVsc2UgaWYoTVlfVVJMLmluY2x1ZGVzKCd5b3VrdS5jbycpKXZhciB5bT1mZXRjaChNWV9VUkwse2hlYWRlcnM6e1xcXCJVc2VyLUFnZW50XFxcIjpNT0JJTEVfVUEsJ0Nvb2tpZSc6J2NuYT02SXlpR3J6S2wza0NBWEFFMDBvZjNNU24nfX0pO2Vsc2UgaWYoTVlfVVJMLmluY2x1ZGVzKCdxcS5jbycpKXt2YXIgeW09ZmV0Y2goTVlfVVJMLnJlcGxhY2UoJy5odG1sJywnLmh0bWw/bl92ZXJzaW9uPTIwMjAnKSwge2hlYWRlcnM6e1xcXCJVc2VyLUFnZW50XFxcIjpQQ19VQX19KS5yZXBsYWNlKC9cXFxcXFxcXHUwMDJGL2csJy8nKTt9ZWxzZSBpZihNWV9VUkwuaW5jbHVkZXMoJ3hmYW5pLicpKXt2YXIgeW09Z2V0VmFyKE1ZX1VSTC5zcGxpdCgnIyMnKVswXSk7aWYoeW09PScnKXltPWZldGNoKE1ZX1VSTCwge2hlYWRlcnM6e1xcXCJVc2VyLUFnZW50XFxcIjpQQ19VQSwnQ29va2llJzpnZXRJdGVtKCdzZW5DJyl9fSk7fWVsc2UgdmFyIHltPWZldGNoKE1ZX1VSTCwge2hlYWRlcnM6e1xcXCJVc2VyLUFnZW50XFxcIjpQQ19VQX19KS5yZXBsYWNlKC9cXFxcXFxcXHUwMDJGL2csJy8nKTt0cnl7dmFyIHF1YW49cGRmaCh5bSwnLmludHJvLXdyYXBwZXJfX3N0YXR1cyYmVGV4dCcpLm1hdGNoKC/lhahcXFxcXFxcXGQq6ZuGLylbMF07fWNhdGNoKGUpe3ZhciBxdWFuPScnO31wdXRWYXIoJ3VybCcsTVlfVVJMLnNwbGl0KCcjIycpWzBdKTt2YXIgbGI9ZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHRcXFwiLHt9KTtmdW5jdGlvbiBjb2xvKGEsYixjKXtpZihhPT0nJylhPWM7aWYoZ2V0SXRlbSgneXonLCAnJykhPScxJyl7dmFyIGxpPWxiLnNwbGl0KCdAQCcpLmZpbHRlcihhPT57cmV0dXJuIGEhPScnO30pO2lmKGxpPT0nJ3x8IWxpLmpvaW4oJ0BAJykuaW5jbHVkZXMoZ2V0VmFyKCd1cmwnKSkpe3NldEl0ZW0oJ3l6JywgJzEnKTtyZXR1cm4gYTt9Zm9yKHZhciBpIGluIGxpKXt2YXIgaj1saVtpXS5zcGxpdCgnJiYnKTtpZihnZXRWYXIoJ3VybCcpLmluY2x1ZGVzKGpbMV0pJiZqLmxlbmd0aD49NCYmKGE9PWpbM118fGM9PWpbM10pKXtzZXRJdGVtKCd5eicsICcxJyk7aWYoYj09dW5kZWZpbmVkKXJldHVybiAn4q2Q77iPJythO2Vsc2UgcmV0dXJuICfigJzigJwnK2ErJ+KAneKAnSc7fX19cmV0dXJuIGE7fWlmKE1ZX1VSTC5pbmNsdWRlcygnYmlsaWJpbGkuJykpe3ZhciBuYW09cGFyc2VEb21Gb3JIdG1sKHltLCcuYmlsaWJpbGktcGxheWVyLXBnY2luZm8tbmFtZSYmVGV4dCcpO31lbHNlIGlmKE1ZX1VSTC5pbmNsdWRlcygncXEuJykpe25hbT15bS5tYXRjaCgvXFxcInRpdGxlXFxcIjpcXFwiKC4qPylcXFwiLylbMV07fWVsc2UgdmFyIG5hbT1wYXJzZURvbUZvckh0bWwoeW0sJy50aXR8fGgxJiZUZXh0Jyk7c2V0UGFnZVRpdGxlKG5hbSk7dmFyIGluZm89TVlfVVJMLnNwbGl0KCcjIycpWzFdO2lmKGluZm8pe2luZm89aW5mby5zcGxpdCgnJiYnKTtpbmZvWzBdPW5hbTsgaW5mbz1pbmZvLmpvaW4oJyYmJyk7dmFyIHE9aW5mby5zcGxpdCgnJiYnKVsxXTtpZihxLnNsaWNlKC0xKT09Jy8nKXE9cS5zcGxpdCgnLycpLnNsaWNlKDAsLTEpLmpvaW4oJy8nKTsgdmFyIHBkPWxiLmluY2x1ZGVzKHEpO3ZhciBsYT1wZD9nZXRJdGVtKCdsYTInKTooZmkuZnomJmZpLmZ6PT0xP2dldEl0ZW0oJ2xhMScpOignaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6aW5wdXQ9XFxcIlxcXCI7JytKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvemZmeicse30pKS5ydWxlKSk7dHJ5e3ZhciB3aj1mZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9EdWFuTmlhbi9NeVBhcnNlLmpzb24nLHt9KTtpZih3aiE9XFxcIlxcXCIpe2V2YWwoJ2p4PScrd2opO2V2YWwoZmV0Y2goanguc2V0dGluZ3MuY2ose30pKTt9ZWxzZSBldmFsKGZldGNoKCdoaWtlcjovL2ZpbGVzL2NhY2hlL1BhcnNlX0RuLmpzJyx7fSkpO31jYXRjaChlKXt9dHJ5e3ZhciBkYz1cXFwiZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtkLnB1c2goe3RpdGxlOifngrnlh7vphY3nva7mlq3mj5LvvIEnLHVybDpcXFxcXFxcXFxcXCJcXFwiKyhzZXRVcmwpK1xcXCJcXFxcXFxcXFxcXCIsY29sX3R5cGU6J3RleHRfMSd9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO2QucHVzaCh7dGl0bGU6J+a1i+ivleaWreaPku+8gScsZGVzYzon5L2/55So5YmN5YWI5aSH5Lu95pWw5o2u77yB77yB77yBJyxjb2xfdHlwZTondGV4dF8xJyx1cmw6J2hpa2VyOi8vZW1wdHlAcnVsZT0nK0pTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9jZXNoaS5odG1sJyx7fSkpLnJ1bGV9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO1xcXCI7fWNhdGNoKGUpe3ZhciBkYz1cXFwiXFxcIjt9dmFyIGVqPVxcXCJoaWtlcjovL2VtcHR5QHJ1bGU9anM6c2V0UGFnZVRpdGxlKCforr7nva4nKTt2YXIgc2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaXM9ZmV0Y2goc2Use30pO3ZhciByZXMgPSB7fTt2YXIgZCA9IFtdO3ZhciBmaT1KU09OLnBhcnNlKGZpcyk7ZC5wdXNoKHt0aXRsZTon55m75b2VeGZhbmnojrflj5Zjb29raWUhJyx1cmw6XFxcXGBoaWtlcjovL2VtcHR5QHJ1bGU9anM6ZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9kbC5odG1sJykpLnJ1bGUpO1xcXFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7ZC5wdXNoKHtjb2xfdHlwZTonbGluZV9ibGFuayd9KTtkLnB1c2goe3RpdGxlOiflvZPliY3igJzigJwnKyhmaS5kbT09J+WFsyc/J+WFs+mXrSc6J+W8gOWQrycpKyfigJ3igJ3lvLnluZUo54ix5aWH6Im644CB5LyY6YW35LiN5pSv5oyB77yBKScsdXJsOlxcXFxgQGxhenlSdWxlPS5qczp2YXIgc2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7ZmkuZG09KGZpLmRtPT0n5YWzJz8n5byAJzon5YWzJyk7d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxcXFxcXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBXFxcXFxcXFxcXFwiXFxcXGAsY29sX3R5cGU6J3RleHRfMSd9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO2lmKGZldGNoKCdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9jYWNoZS50eHQnLHt9KSE9Jycpe2QucHVzaCh7dGl0bGU6J+W9k+WJjeKAnOKAnCcrKGZpLmJpbGk9PSflhbMnPyflhbPpl60nOiflvIDlkK8nKSsn4oCd4oCd5ZOU5ZOp5aSn5Lya5ZGY55u06ZO+Jyx1cmw6XFxcXGBAbGF6eVJ1bGU9LmpzOnZhciBzZT0naGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvc2V0LnR4dCc7dmFyIGZpPUpTT04ucGFyc2UoZmV0Y2goc2Use30pKTtmaS5iaWxpPShmaS5iaWxpPT0n5YWzJz8n5byAJzon5YWzJyk7d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxcXFxcXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBXFxcXFxcXFxcXFwiXFxcXGAsY29sX3R5cGU6J3RleHRfMSd9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO31kLnB1c2goe3RpdGxlOiflvZPliY3igJzigJwnKyhmaS55Zz09MT8n5byA5ZCvJzon5YWz6ZetJykrJ+KAneKAneiFvuiur+mihOWRiicsLypkZXNjOifngrnlh7vliIfmjaInLCovdXJsOlxcXFxgQGxhenlSdWxlPS5qczp2YXIgc2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7ZmkueWc9KGZpLnlnPT0xPzA6MSk7d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxcXFxcXFxcInRvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBXFxcXFxcXFxcXFwiXFxcXGAsY29sX3R5cGU6J3RleHRfMSd9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO2QucHVzaCh7dGl0bGU6J+W9k+WJjeKAnOKAnCcrKGZpLmNvbD8oZmkuY29sPT0wPyfliJfooagnOifkuZ3lrqvmoLwnKTon5YiX6KGoJykrJ+KAneKAneaYvuekuuaIkeeahOi/veeVquOAgULnq5nntKLlvJXmoLflvI/vvIEnLHVybDooZmkuY29sP2ZpLmNvbDowKStcXFxcYEBsYXp5UnVsZT0uanM6dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO2ZpLmNvbD0oaW5wdXQ9PTA/MTowKTt3cml0ZUZpbGUoc2UsSlNPTi5zdHJpbmdpZnkoZmkpKTtyZWZyZXNoUGFnZShmYWxzZSk7XFxcXFxcXFxcXFwidG9hc3Q6Ly/liIfmjaLmiJDlip/vvIFcXFxcXFxcXFxcXCJcXFxcYCxjb2xfdHlwZTondGV4dF8xJ30pO2QucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7c3dpdGNoKGZpLmZpc3Q/ZmkuZmlzdDon6L+955WqJyl7Y2FzZSAnNSc6ZmlzdD0n5pio5pel5pu05pawJzticmVhaztjYXNlICc2JzpmaXN0PSfku4rml6Xmm7TmlrAnO2JyZWFrO2Nhc2UgJzcnOmZpc3Q9J+aYjuaXpeabtOaWsCc7YnJlYWs7Y2FzZSAn5by65Yq/5o6l5qGjJzpmaXN0PSfohb7orq/mjqXmoaMnO2JyZWFrO2Nhc2UgJ+eVquWJp+e0ouW8lSc6ZmlzdD0nQuermee0ouW8lSc7YnJlYWs7ZGVmYXVsdDpmaXN0PSfmiJHnmoTov73nlaonO31kLnB1c2goe3RpdGxlOifpppbmrKHmiZPlvIDlkK/liqgg4oCc4oCcJytmaXN0KyfigJ3igJ0nLHVybDpcXFxcYHNlbGVjdDovL3t0aXRsZTogJ+mAieaLqS4uLicsIG9wdGlvbnM6WyfmmKjml6Xmm7TmlrAnLCfku4rml6Xmm7TmlrAnLCfmmI7ml6Xmm7TmlrAnLCfohb7orq/mjqXmoaMnLCdC56uZ57Si5byVJywn5oiR55qE6L+955WqJ10gLCBjb2w6IDIsIGpzOlxcXFxcXFxcXFxcInZhciBzZT0naGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvc2V0LnR4dCc7dmFyIGZpPUpTT04ucGFyc2UoZmV0Y2goc2Use30pKTtzd2l0Y2goaW5wdXQpe2Nhc2UgJ+aYqOaXpeabtOaWsCc6ZmkuZmlzdD0nNSc7YnJlYWs7Y2FzZSAn5LuK5pel5pu05pawJzpmaS5maXN0PSc2JzticmVhaztjYXNlICfmmI7ml6Xmm7TmlrAnOmZpLmZpc3Q9JzcnO2JyZWFrO2Nhc2UgJ+iFvuiur+aOpeahoyc6ZmkuZmlzdD0n5by65Yq/5o6l5qGjJzticmVhaztjYXNlICdC56uZ57Si5byVJzpmaS5maXN0PSfnlarliafntKLlvJUnO2JyZWFrO2RlZmF1bHQ6ZmkuZmlzdD0n6L+955WqJzt9d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdcXFxcXFxcXFxcXCJ9XFxcXGAsY29sX3R5cGU6J3RleHRfMSd9KTtkLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO2QucHVzaCh7dGl0bGU6J+W9k+WJjeS9v+eUqOKAnOKAnCcrKGZpLnNvPyhmaS5zb1sxXSsoZmkuc29bMF09PTA/JyDliIbnu4QnOicg5bCP56iL5bqPJykpOiflhajpg6gg5YiG57uEJykrJ+KAneKAneaQnOe0oicsdXJsOlxcXFxgc2VsZWN0Oi8ve3RpdGxlOiAn6YCJ5oup5LqM57qn5pCc57Si5qih5byPLi4uJywgb3B0aW9uczpbJ+aQnOe0ouWIhue7hCcsJ+aQnOe0ouWwj+eoi+W6jyddICwgY29sOiAyLCBqczpcXFxcXFxcXFxcXCJldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9zby5odG1sJyx7fSkpLnJ1bGUpO1xcXFxcXFxcXFxcIn1cXFxcYCxjb2xfdHlwZTondGV4dF8xJ30pO2QucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7ZC5wdXNoKHt0aXRsZTon5b2T5YmN5LiA6aG15pi+56S64oCc4oCcJysoZmkuamk/Zmkuamk6MTApKyfigJ3igJ3pm4YnLHVybDpcXFxcYGlucHV0Oi8ve1xcXFxcXFxcXFxcImpzXFxcXFxcXFxcXFwiOiBcXFxcXFxcXFxcXCJ2YXIgc2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7dHJ5e2lucHV0PWlucHV0Lm1hdGNoKC9bMC05XSsvKVswXX1jYXRjaChlKXtpbnB1dD0wO307aWYoaW5wdXQ+MCl7Zmkuamk9aW5wdXQ7d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+abtOaUueaIkOWKn++8gSd9ZWxzZXsndG9hc3Q6Ly/or7fovpPlhaXlpKfkuo4w55qE5pWw77yB77yBJ31cXFxcXFxcXFxcXCIsIFxcXFxcXFxcXFxcImhpbnRcXFxcXFxcXFxcXCI6IFxcXFxcXFxcXFxcIuivt+i+k+WFpeaVsOWtl+KAplxcXFxcXFxcXFxcIn1cXFxcYCxjb2xfdHlwZTondGV4dF8xJ30pO2QucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7ZC5wdXNoKHt0aXRsZTon5b2T5YmN4oCc4oCcJysoZmkuZno/KGZpLmZ6PT0wPyflhbPpl60nOiflvIDlkK8nKTon5YWz6ZetJykrJ+KAneKAnei/veeVqumhtemdouWIhue7hCcsdXJsOihmaS5mej9maS5mejowKStcXFxcYEBsYXp5UnVsZT0uanM6dmFyIHNlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO2ZpLmZ6PShpbnB1dD09MD8xOjApO3dyaXRlRmlsZShzZSxKU09OLnN0cmluZ2lmeShmaSkpO3JlZnJlc2hQYWdlKGZhbHNlKTtcXFxcXFxcXFxcXCJ0b2FzdDovL+WIh+aNouaIkOWKn++8gVxcXFxcXFxcXFxcIlxcXFxgLGNvbF90eXBlOid0ZXh0XzEnfSk7aWYoZmkuZnomJmZpLmZ6PT0xKXtkLnB1c2goe3RpdGxlOic9PueVquWJp+WIhue7hCcsdXJsOidoaWtlcjovL2VtcHR5QHJ1bGU9JytKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvY2xhc3NpZnknLHt9KSkucnVsZSxjb2xfdHlwZTondGV4dF8xJ30pO31cXFwiK2RjK1xcXCJhZGRMaXN0ZW5lcignb25DbG9zZScsJC50b1N0cmluZygoKT0+e3B1dFZhcignaWknLCdcXFwiK2dldFZhcignaWknKStcXFwiJyk7dmFyIGZpPUpTT04ucGFyc2UoZmV0Y2goJ1xcXCIrc2UrXFxcIicse30pKTtkZWxldGUgZmkuZno7ZGVsZXRlIGZpLmNvbDtkZWxldGUgZmkuZmlzdDtmaT1KU09OLnN0cmluZ2lmeShmaSk7dmFyIGZpcz1KU09OLnBhcnNlKCdcXFwiK2ZpcytcXFwiJyk7ZGVsZXRlIGZpcy5mejtkZWxldGUgZmlzLmNvbDtkZWxldGUgZmlzLmZpc3Q7ZmlzPUpTT04uc3RyaW5naWZ5KGZpcyk7aWYoZmkhPWZpcylyZWZyZXNoUGFnZShmYWxzZSk7fSkpO3Jlcy5kYXRhID0gZDtzZXRTZWFyY2hSZXN1bHQocmVzKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCI7cHV0VmFyKCd1cmwxJyxpbmZvKTsgZDEucHVzaCh7IHRpdGxlOmluZm8uc3BsaXQoJyYmJylbMF0sIGltZzppbmZvLnNwbGl0KCcmJicpWzJdLCB1cmw6ZWosIGNvbF90eXBlOiAnaWNvbl8yX3JvdW5kJyB9KTtkMS5wdXNoKHsgdGl0bGU6KHBkPyfigJjigJjlj5bmtojov73nlarigJnigJknOifigJzigJwr6L+955Wq4oCd4oCdJyksIHVybDpsYSwgY29sX3R5cGU6ICd0ZXh0XzInIH0pO310cnl7dmFyIGRlcz1KU09OLnBhcnNlKHltLnNwbGl0KCduZXdlc3RFcFxcXCI6JylbMV0uc3BsaXQoJ30nKVswXSsnfScpLmRlc2M7fWNhdGNoKGUpe3RyeXtldmFsKHBkZmgoeW0sJ2hlYWQmJnNjcmlwdCwxOCYmSHRtbCcpLnJlcGxhY2UoL3dpbmQuKj89LywnaHRtPScpKTt2YXIgZGVzPWh0bS5pbnRyb2R1Y3Rpb24uaW50cm9EYXRhLmxpc3RbMF0uaXRlbV9wYXJhbXMudXBkYXRlX25vdGlmeV9kZXNjO2lmKCFkZXMpZGVzPSfml6AnO25hbT1odG0uaW50cm9kdWN0aW9uLmludHJvRGF0YS5saXN0WzBdLml0ZW1fcGFyYW1zLnRpdGxlO31jYXRjaChlKXt0cnl7dmFyIGE9eW0ubWF0Y2goL3VwZGF0ZVN0cmF0ZWd5XFxcIi4qP1xcXCIoLio/KVxcXCIvKVsxXTt9Y2F0Y2goZSl7YT0nJzt9dmFyIGRlcz1hK3BhcnNlRG9tRm9ySHRtbCh5bSwnLmJyaWVmLXNjb3JlJiZUZXh0JykrcGFyc2VEb21Gb3JIdG1sKHltLCcuaW5mby11cGRhdGEmJlRleHQnKTtpZihNWV9VUkwuaW5jbHVkZXMoJ3hmYW5pLicpKXtkZXM9cGRmYSh5bSwnYm9keSYmLm1vZHVsZS1pbmZvLWl0ZW0nKTtkZXM9cGRmaChkZXNbZGVzLmxlbmd0aC0yXSwnZGl2JiZUZXh0Jyk7fX19dHJ5e3ZhciBqaWFuaj1wYXJzZURvbUZvckh0bWwoeW0sJ2hlYWQmJm1ldGFbbmFtZT1cXFwiZGVzY3JpcHRpb25cXFwiXSYmY29udGVudCcpO2lmKGppYW5qPT0nJylqaWFuaj15bS5tYXRjaCgvXFxcImRlc2NcXFwiOlxcXCIoLio/KVxcXCIvKVsxXTt9Y2F0Y2goZSl7aWYoTVlfVVJMLmluY2x1ZGVzKCdxcScpKWppYW5qPWh0bS5nbG9iYWwuY292ZXJJbmZvLmRlc2NyaXB0aW9uO31pZihqaWFuailqaWFuaj1qaWFuai5yZXBsYWNlKC9bXFxcXFxcXFxzXFxcIiddL2csJycpO2Vsc2Ugamlhbmo9J+aXoCc7ZDEucHVzaCh7dGl0bGU6Jzxmb250IGNvbG9yPVxcXCJwdXJwbGVcXFwiPjxzdHJvbmc+PGJpZz4nK25hbSsnPC9iaWc+PC9zdHJvbmc+PC9mb250Pi0tPGZvbnQgY29sb3I9XFxcImJsdWVcXFwiPicrTVlfVVJMLnNwbGl0KCcuJylbMV0rJzwvZm9udD4nKydcXFxcXFxcXG7igJzigJznirbmgIHvvJonKyhkZXM/ZGVzOifml6AnKSsn4oCd4oCd44CCPGZvbnQgY29sb3I9XFxcImJsdWVcXFwiPicrcXVhbisnPC9mb250PicsdXJsOidzZWxlY3Q6Ly97XFxcInRpdGxlXFxcIjogXFxcIumAieaLqVxcXCIsIFxcXCJvcHRpb25zXFxcIiA6IFtcXFwi5pCc57SiXFxcIiwgXFxcIuWAkuW6j1xcXCIsXFxcIueugOS7i1xcXCJdLCBjb2w6IDMsIGpzOiBcXFwiaWYoaW5wdXQ9PVxcXFxcXFxcJ+aQnOe0olxcXFxcXFxcJyl7JysoIWZpLnNvfHxmaS5zb1swXT09MCkrJz9cXFxcXFxcXCdoaWtlcjovL3NlYXJjaD9zPScrbmFtKycmZ3JvdXA9JysoZmkuc28/Zmkuc29bMV06J+WFqOmDqCcpKydcXFxcXFxcXCc6XFxcXFxcXFwnaGlrZXI6Ly9zZWFyY2g/cz0nK25hbSsnJnJ1bGU9JysoZmkuc28/Zmkuc29bMV06JycpKycmc2ltcGxlPWZhbHNlXFxcXFxcXFwnO31lbHNlIGlmKGlucHV0PT1cXFxcXFxcXCflgJLluo9cXFxcXFxcXCcpe3B1dFZhcihcXFxcXFxcXCdtb2RlbFxcXFxcXFxcJywxKTtwdXRWYXIoXFxcXFxcXFwnaWlcXFxcXFxcXCcsJytnZXRWYXIoJ2lpJykrJyk7cmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxcXFxcJ3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBXFxcXFxcXFwnfWVsc2V7ZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFxcJ2hpa2VyOi8vcGFnZS9qaWFualxcXFxcXFxcJykpLnJ1bGUpO2ppYW5qKFxcXFxgJytqaWFuaisnXFxcXGApO307XFxcIn0nLGNvbF90eXBlOid0ZXh0XzEnfSk7ZDEucHVzaCh7Y29sX3R5cGU6J2JpZ19ibGFua19ibG9jayd9KTt0cnl7bGFydT1sYXp5LnJlcGxhY2UoJ2F5dG1QYXJzZShpbnB1dCknLCcnKStcXFwiY2lkPWlucHV0LnNwbGl0KCcjJylbMV07aW5wdXQ9aW5wdXQuc3BsaXQoJyMnKVswXTt0cnl7dXJsPWF5dG1QYXJzZShpbnB1dCk7aWYodXJsLmluY2x1ZGVzKCd0b2FzdDovLycpfHwhdXJsLmluY2x1ZGVzKCc6Ly8nKXx8aW5wdXQ9PXVybCl1cmw9anhzYjt0cnl7cGE9dXJsLnNwbGl0KCc7JylbMV0uc3BsaXQoJyYmJyk7dmFyIHVhPScnO3ZhciByZT0nJztmb3IoaSBvZiBwYSl7dHJ5e2lmKGkuaW5jbHVkZXMoJ1VzZXItQWdlbnQnKSYmdWE9PScnKXVhPWkuc3BsaXQoJ0AnKVsxXS5yZXBsYWNlKCd9JywnJyk7fWNhdGNoKGUpe310cnl7aWYoaS5pbmNsdWRlcygnUmVmZXJlcicpJiZyZT09JycpcmU9aS5zcGxpdCgnQCcpWzFdLnJlcGxhY2UoJ30nLCcnKTt9Y2F0Y2goZSl7fX19Y2F0Y2goZSl7fXVybD11cmwuc3BsaXQoJzsnKVswXTtkYXQ9W107ZGF0LnB1c2godXJsKTtpZihjaWQpe2RtPSdodHRwczovL2NvbW1lbnQuYmlsaWJpbGkuY29tLycrY2lkKycueG1sJzt9ZWxzZXt0cnl7dmFyIHZpZD1pbnB1dC5zcGxpdCgnLycpWzZdLnNwbGl0KCcuaHRtJylbMF07dmFyIGlkPUpTT04ucGFyc2UoZmV0Y2goJ2h0dHBzOi8vYWNjZXNzLnZpZGVvLnFxLmNvbS9kYW5tdV9tYW5hZ2UvcmVnaXN0P3ZhcHBpZD05Nzc2NzIwNiZ2c2VjcmV0PWMwYmRjYmFlMTIwNjY5ZmZmNDI1ZDBlZjg1MzY3NDYxNGFhNjU5YzYwNWE2MTNhNCZyYXc9MScsIHtoZWFkZXJzOnsnVXNlci1BZ2VudCc6UENfVUF9LGJvZHk6eyd3UmVnaXN0VHlwZSc6MiwndmVjSWRMaXN0JzpbdmlkXX0sbWV0aG9kOidQT1NUJ30pKS5kYXRhLnN0TWFwW3ZpZF0uc3RyRGFuTXVLZXkubWF0Y2goL1swLTldezQsfS9nKVswXTtpZihpZCl7dmFyIGNvbT1bXTt1cmw9W107dmFyIGs9MTtmb3Ioaj0wOztqPWorMTYqKDMwKmspKXtmb3IoaT1qO2k8MTYqKDMwKmspK2o7aT1pKzMwKmspe3VybC5wdXNoKHt1cmw6J2h0dHA6Ly9tZm0udmlkZW8ucXEuY29tL2Rhbm11P3RpbWVzdGFtcD0nK2krJyZ0YXJnZXRfaWQ9JytpZH0pO2lmKGo+PTY0KjMwKWs9NDt9YmF0Y2hGZXRjaCh1cmwpLm1hcChmdW5jdGlvbihhKSB7dHJ5eyBoID0gSlNPTi5wYXJzZShhKS5jb21tZW50czsgfWNhdGNoKGUpe3RyeXtoPUpTT04ucGFyc2UoYS5tYXRjaCgvey4qfS8pWzBdKS5jb21tZW50czt9Y2F0Y2goZSl7aD1bXTt9fWNvbT1jb20uY29uY2F0KGgpOyB9KTtpZihoPT0nJylicmVhazt9O2RtPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9kbS5qc29uJzt3cml0ZUZpbGUoZG0sSlNPTi5zdHJpbmdpZnkoY29tKS5yZXBsYWNlKC9jb250ZW50L2csJ3RleHQnKS5yZXBsYWNlKC90aW1lcG9pbnQvZywndGltZScpKTt9ZWxzZXtkbT0nJzt9fWNhdGNoKGUpe2RtPScnO319SlNPTi5zdHJpbmdpZnkoe3VybHM6ZGF0LGhlYWRlcnM6W3snVXNlci1BZ2VudCc6dWEsJ1JlZmVyZXInOnJlfV0sZGFubXU6ZG19KTt9Y2F0Y2goZSl7J3RvYXN0Oi8v6Kej5p6Q5aSx6LSl77yM6K+35pu05o2i6Kej5p6Q5oiW56iN5ZCO6YeN6K+VJzt9XFxcIjtpZihmaS5kbT09J+WFsycpbGFydT1sYXp5O31jYXRjaChlKXtsYXJ1PSdcXFwidG9hc3Q6Ly/ml6Dop6PmnpDmj5Lku7bvvIzkvYbov73nlarlkI7ku43lj6/orrDlvZXotrPov7nvvIFcXFwiJzt9O3ZhciBlcGw9MDt2YXIgamk9cGFyc2VJbnQoZmkuamk/Zmkuamk6MTAsMTApO3ZhciBpaT1nZXRWYXIoJ2lpJyk7Y2xlYXJWYXIoJ2lpJyk7dmFyIGRpdz11bmRlZmluZWQ7aWYoaWk9PScnKXt2YXIgYmxqPU1ZX1VSTC5zcGxpdCgnIyMnKVswXTtpZihsYi5pbmNsdWRlcyhibGopKXtpaT0wO2ZvcihqIG9mIGxiLnNwbGl0KCdAQCcpKXtpZihqLmluY2x1ZGVzKGJsaikpe2Rpdz1qLnNwbGl0KCcmJicpWzNdO2JyZWFrO319fWVsc2UgaWk9MTt9dHJ5eyB2YXIgZXA9SlNPTi5wYXJzZSh5bS5zcGxpdCgnXFxcImVwTGlzdFxcXCI6JylbMV0uc3BsaXQoJ31dJylbMF0rJ31dJykuZmlsdGVyKChhLGopPT57aWYoaWk9PTApe2lmKGRpdyl7aWYoYS50aXRsZT09ZGl3fHxhLmxvbmdUaXRsZT09ZGl3KXtpaT1qKzE7fWlmKGlpPjApe2lmKGlpJWppIT0wKWlpPWlpLWlpJWppKzE7ZWxzZSBpaT1paS1qaSsxO319ZWxzZSBpaT0xO30gaWYoYS5iYWRnZSE9J+mihOWRiicpcmV0dXJuIGE7fSk7dmFyIGVwbD1lcC5sZW5ndGg7ZXA9ZXAuc2xpY2UocGFyc2VJbnQoaWksMTApLTEscGFyc2VJbnQoaWksMTApK2ppLTEpO3ZhciBjaGU9ZmV0Y2goJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL2NhY2hlLnR4dCcse30pO2Zvcih2YXIgaT0wO2k8ZXAubGVuZ3RoO2krKyl7dXJsPWZpLmJpbGk9PSflvIAnJiZjaGUhPScnPyhjaGUuc3BsaXQoJ0BsYXp5UnVsZScpWzBdLnJlcGxhY2UoL2NpZFxcXFxcXFxcPVswLTldezQsfS9nLCdjaWQ9JytlcFtpXS5jaWQpLnJlcGxhY2UoL2F2aWRcXFxcXFxcXD1bMC05XXs0LH0vZywnYXZpZD0nK2VwW2ldLmFpZCkpOignaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tL2Jhbmd1bWkvcGxheS9lcCcrZXBbaV0uaWQpO2QucHVzaCh7IHRpdGxlOmNvbG8oZXBbaV0ubG9uZ1RpdGxlLHVuZGVmaW5lZCxlcFtpXS50aXRsZSksY29sX3R5cGU6J21vdmllXzInLCBpbWc6J2h0dHA6JytlcFtpXS5jb3ZlciwgZGVzYzplcFtpXS50aXRsZSx1cmw6dXJsKycjJytlcFtpXS5jaWQrJyMjJytlcFtpXS50aXRsZStcXFwiIyNub1ByZSNAbGF6eVJ1bGU9LmpzOlxcXCIrZ2V0SXRlbSgnckMnKSsoY2hlIT0nJyYmZmkuYmlsaT09J+W8gCc/KGZpLmRtPT0n5byAJz9jaGUuc3BsaXQoJ0BsYXp5UnVsZT0uanM6JylbMV0ucmVwbGFjZSgvWzAtOV17NCx9KD89XFxcXFxcXFwpKS9nLGVwW2ldLmNpZCk6Y2hlLnNwbGl0KCdAbGF6eVJ1bGU9LmpzOicpWzFdLnJlcGxhY2UoL1swLTldezQsfSg/PVxcXFxcXFxcKSkvZywndW5kZWZpbmVkJykpOmxhcnUpLGV4dHJhOntpZDp1cmx9fSk7fX1jYXRjaChlKXt0cnl7aWYoaHRtLmdsb2JhbC5jb3ZlckluZm8uY2F0ZWdvcnlfbWFwLmpvaW4oJywsJykuaW5jbHVkZXMoJ+ato+eJhycpKXt2YXIgZXBpPWh0bS5nbG9iYWwuY292ZXJJbmZvLnZpZGVvX2lkczt2YXIgdXJsYj1bXTtmb3IoaT0wO2k8TWF0aC5jZWlsKGVwaS5sZW5ndGgvMzApO2krKyl1cmxiLnB1c2goe3VybDonaHR0cHM6Ly91bmlvbi52aWRlby5xcS5jb20vZmNnaS1iaW4vZGF0YT9vdHlwZT1qc29uJnRpZD02ODImYXBwaWQ9MjAwMDEyMzgmYXBwa2V5PTZjMDNiYmU5NjU4NDQ4YTQmdW5pb25fcGxhdGZvcm09MSZpZGxpc3Q9JytlcGkuc2xpY2UoaSozMCwoaSsxKSozMCkuam9pbignLCcpfSk7dmFyIGxlPWJhdGNoRmV0Y2godXJsYikubWFwKChhLGopPT57ZXZhbChhKTtyZXR1cm4gUVpPdXRwdXRKc29uLnJlc3VsdHM7fSk7bGU9W10uY29uY2F0LmFwcGx5KFtdLGxlKS5maWx0ZXIoKGEsaik9PntpZihpaT09MCl7aWYoZGl3KXtpZigoJ+esrCcrYS5maWVsZHMuZXBpc29kZSsn6K+dJyk9PWRpdyl7aWk9aisxO31pZihpaT4wKXtpZihpaSVqaSE9MClpaT1paS1paSVqaSsxO2Vsc2UgaWk9aWktamkrMTt9fWVsc2UgaWk9MTt9aWYoIWEuZmllbGRzLmNhdGVnb3J5X21hcC5qb2luKCcsLCcpLmluY2x1ZGVzKCfpooTlkYonKSlyZXR1cm4gYTt9KTt2YXIgZXBsPWxlLmxlbmd0aDtsZT1sZS5zbGljZShwYXJzZUludChpaSwxMCktMSxwYXJzZUludChpaSwxMCkramktMSk7dmFyIHVyPSdodHRwczovL3YucXEuY29tL3gvY292ZXIvJytodG0uZ2xvYmFsLmN1cnJlbnRDaWQ7Zm9yKHZhciBpIGluIGxlKXt2YXIgdGk9bGVbaV0uZmllbGRzLmVwaXNvZGU7ZC5wdXNoKHt0aXRsZTooY29sbygn56ysJyt0aSsn6K+dJykpLGltZzpsZVtpXS5maWVsZHMucGljMTYweDkwLnNwbGl0KCcvMTYwJylbMF0sdXJsOnVyKycvJytsZVtpXS5maWVsZHMudmlkKycuaHRtbCMj56ysJyt0aSsn6K+dJysnIyNub1ByZSNAbGF6eVJ1bGU9LmpzOicrZ2V0SXRlbSgnckMnKStsYXJ1LGNvbF90eXBlOidtb3ZpZV8yJyxleHRyYTp7aWQ6dXIrJy8nK2xlW2ldLmZpZWxkcy52aWQrJy5odG1sJ319KTt9fX1jYXRjaChlKXt0cnl7dHJ5e3ZhciB2PUpTT04ucGFyc2UoeW0uc3BsaXQoJ3ZpZGVvSW5mb1xcXCI6JylbMV0uc3BsaXQoJ30nKVswXSsnfScpO31jYXRjaChlKXt2YXIgdj17fTt2LmFpZD15bS5zcGxpdCgnYWxidW1JZFxcXCI6JylbMV0uc3BsaXQoJywnKVswXTt9dmk9SlNPTi5wYXJzZShyZXF1ZXN0KCdodHRwczovL3B1Yi5tLmlxaXlpLmNvbS9oNS9tYWluL3ZpZGVvTGlzdC9hbGJ1bS8/YWxidW1JZD0nK3YuYWlkKycmc2l6ZT0xNTAwJnBhZ2U9MSZuZWVkUHJldnVlPWZhbHNlJm5lZWRWaXBQcmV2dWU9ZmFsc2UnLHt9KSkuZGF0YTtpZih2aSE9Jycpe3Y9dmkudmlkZW9zO3RyeXt2LmZvckVhY2goKGEsaik9PntpZihpaT09MCl7aWYoZGl3KXtpZihhLnBkPT1kaXd8fGEudnQ9PWRpdyl7aWk9aisxO31pZihpaT4wKXtpZihpaSVqaSE9MClpaT1paS1paSVqaSsxO2Vsc2UgaWk9aWktamkrMTt0aHJvdyBuZXcgRW9ycm9yKCfkuK3mlq0nKTt9fWVsc2UgaWk9MTt9fSk7fWNhdGNoKGUpe312YXIgZXBsPXYubGVuZ3RoO3Y9di5zbGljZShwYXJzZUludChpaSwxMCktMSxwYXJzZUludChpaSwxMCkramktMSk7ZD12Lm1hcChhPT57YS5kZXNjPWEucGQ7YS5pbWc9KCdodHRwczonK2EuaW1hZ2VVcmwpO2EudXJsPSdodHRwczonK2EucGFnZVVybCsnIyMnK2EucGQrJ0BsYXp5UnVsZT0uanM6JytnZXRJdGVtKCdyQycpK2xhenk7YS50aXRsZT1jb2xvKGEudnQsKHVuZGVmaW5lZCksYS5wZCk7YS5jb2xfdHlwZT0nbW92aWVfMic7YS5leHRyYT17aWQ6J2h0dHBzOicrYS5wYWdlVXJsfTtyZXR1cm4gYTt9KTt9ZWxzZXtpPXY7aWYoaSYmKCFpLnZ0fHwhaS52dC5pbmNsdWRlcygn6aKE5ZGKJykpKWQucHVzaCh7dGl0bGU6Y29sbyhpLnNob3J0VGl0bGUsdW5kZWZpbmVkLGkub3JkZXIpLHVybDonaHR0cHM6JytpLnBhZ2VVcmwrJyMjJytpLm9yZGVyKycjI25vUHJlI0BsYXp5UnVsZT0uanM6JytnZXRJdGVtKCdyQycpK2xhenksY29sX3R5cGU6J21vdmllXzInLGltZzonaHR0cHM6JytpLmltYWdlVXJsLGRlc2M6aS5vcmRlcn0pO319Y2F0Y2goZSl7dHJ5e2Q9SlNPTi5wYXJzZShmZXRjaCgnaHR0cHM6Ly9zZWFyY2gueW91a3UuY29tL2FwaS9zZWFyY2g/YXBwU2NlbmU9c2hvd19lcGlzb2RlJnNob3dJZHM9Jyt5bS5tYXRjaCgvc2hvd0lkXFxcIjpcXFwiKC4qPylcXFwiLylbMV0rJyZhcHBDYWxsZXI9aDUnLHtoZWFkZXJzOntcXFwiVXNlci1BZ2VudFxcXCI6TU9CSUxFX1VBfSxyZWRpcmVjdDpmYWxzZX0pKS5zZXJpc2VzTGlzdDt0cnl7ZD1kLmZpbHRlcihhPT57cmV0dXJuIGEuaWNvbkNvcm5lci50YWdUZXh0IT0n6aKE5ZGKJzt9KTtkLmZvckVhY2goKGEsaik9PntpZihpaT09MCl7aWYoZGl3KXtpZihhLnRpdGxlPT1kaXd8fGEuZGlzcGxheU5hbWU9PWRpdyl7aWk9aisxO31pZihpaT4wKXtpZihpaSVqaSE9MClpaT1paS1paSVqaSsxO2Vsc2UgaWk9aWktamkrMTt0aHJvdyBuZXcgRW9ycm9yKCfkuK3mlq0nKTt9fWVsc2UgaWk9MTt9fSk7fWNhdGNoKGUpe312YXIgZXBsPWQubGVuZ3RoO2Q9ZC5zbGljZShwYXJzZUludChpaSwxMCktMSxwYXJzZUludChpaSwxMCkramktMSkubWFwKGE9PnthLmRlc2M9YS5kaXNwbGF5TmFtZTthLmltZz1hLnRodW1iVXJsO2EudXJsPSdodHRwczovL20ueW91a3UuY29tL2FsaXBheV92aWRlby9pZF8nK2EudmlkZW9JZCsnLmh0bWwjIycrYS5kaXNwbGF5TmFtZSsnIyNub1ByZSNAbGF6eVJ1bGU9LmpzOicrZ2V0SXRlbSgnckMnKStsYXp5O2EudGl0bGU9Y29sbyhhLnRpdGxlLHVuZGVmaW5lZCxhLmRpc3BsYXlOYW1lKTthLmV4dHJhPXtpZDonaHR0cHM6Ly9tLnlvdWt1LmNvbS9hbGlwYXlfdmlkZW8vaWRfJythLnZpZGVvSWQrJy5odG1sJ307cmV0dXJuIGE7fSk7fWNhdGNoKGUpe3ZhciBsaT1wZGZhKHltLCdib2R5JiYubW9kdWxlLXBsYXktbGlzdCYmLm1vZHVsZS1wbGF5LWxpc3QtbGluaycpO2ZvcihsZXQgaSBvZiBsaSl7dmFyIHRpPXBkZmgoaSwnYSYmVGV4dCcpO2QucHVzaCh7dGl0bGU6Y29sbyh0aSwxKSx1cmw6cGFyc2VEb20oaSwnYSYmaHJlZicpKycjIycrdGkrJyMjbm9QcmUjQGxhenlSdWxlPS5qczonK2dldEl0ZW0oJ3JDJykrJ3ltPWZldGNoKGlucHV0LHtoZWFkZXJzOntcXFxcXFxcXCdVc2VyLUFnZW50XFxcXFxcXFwnOk1PQklMRV9VQSxcXFxcXFxcXCdDb29raWVcXFxcXFxcXCc6KGlucHV0LmluY2x1ZGVzKFxcXFxcXFxcJ3hmYW5pLlxcXFxcXFxcJyk/Z2V0SXRlbShcXFxcXFxcXCdzZW5DXFxcXFxcXFwnKTpcXFwiXFxcIil9fSk7ZXZhbChwZGZoKHltLFxcXFxcXFxcJy5tYWluJiZzY3JpcHQmJkh0bWxcXFxcXFxcXCcpKTt2YXIgdXJsPXVuZXNjYXBlKHBsYXllcl9hYWFhLnVybCk7aWYodXJsLmluY2x1ZGVzKFxcXFxcXFxcJzovL1xcXFxcXFxcJykpdXJsPXVybC5tYXRjaCgvaHR0cC4qLylbMF0rXFxcXFxcXFwnI2lzVmlkZW89dHJ1ZSNcXFxcXFxcXCc7ZWxzZSBpZihpbnB1dC5pbmNsdWRlcyhcXFxcXFxcXCd4ZmFuaS5cXFxcXFxcXCcpKXt2YXIgdT1cXFxcXFxcXCdodHRwczovL20zLm1vZWRvdC5uZXQvbXVpcGxheWVyLz91cmw9XFxcXFxcXFwnK3VybDt5bT1mZXRjaCh1LHtoZWFkZXJzOntSZWZlcmVyOmlucHV0fX0pO3ZhciB2aWU9cGRmaCh5bSxcXFxcXFxcXCdoZWFkJiZtZXRhW25hbWU9XFxcInZpZXdwb3J0XFxcIl0mJmlkXFxcXFxcXFwnKS5yZXBsYWNlKFxcXCJub3dfXFxcIixcXFwiXFxcIik7dmFyIGNoPXBkZmgoeW0sXFxcXFxcXFwnaGVhZCYmbWV0YVtjaGFyc2V0PVxcXCJVVEYtOFxcXCJdJiZpZFxcXFxcXFxcJykucmVwbGFjZShcXFwibm93X1xcXCIsXFxcIlxcXCIpO3ZhciBkYT15bS5tYXRjaCgvXFxcInVybFxcXCIuKj9cXFwiKC4qPylcXFwiLylbMV07dmFyIG1hPUpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9zZW5mdW4uanNcXFwiLHt9KSkucnVsZTtldmFsKG1hKTtkZWNyeXB0KGRhLHZpZSxjaCkrXFxcXFxcXFwnI2lzVmlkZW89dHJ1ZSNcXFxcXFxcXCc7fWVsc2UgaWYoaW5wdXQuaW5jbHVkZXMoXFxcXFxcXFwnb21vZnVuLlxcXFxcXFxcJykpe3ZhciB1PVxcXFxcXFxcJ2h0dHBzOi8vd3d3Lm9tb2Z1bi50di9hZGRvbnMvZHAvcGxheWVyL2RwLnBocD9mcm9tPVxcXFxcXFxcJysodXJsLmluY2x1ZGVzKFxcXCJvbW9cXFwiKT9cXFwib21vXFxcIjpcXFwibXA0XFxcIikrXFxcXFxcXFwnJnVybD1cXFxcXFxcXCcrdXJsO3ltPWZldGNoKHUse2hlYWRlcnM6e1JlZmVyZXI6aW5wdXR9fSk7eW0ubWF0Y2goL1xcXCJ1cmxcXFwiLio/XFxcIiguKj8pXFxcIi8pWzFdO30nLGNvbF90eXBlOid0ZXh0XzMnfSk7dmFyIGVwbD0wO319fX19Zm9yKGk9MTtpPD1lcGw7aT1pK2ppKXt2YXIgcWo9KGkrJy0nKyhlcGwtKGkramktMSk+PTA/KGkramktMSk6ZXBsKSk7ZDEucHVzaCh7dGl0bGU6aWk+PWkmJihpaTw9aStqaS0xKT8oJ+KAnOKAnCcrcWorJ+KAneKAnScpOnFqLHVybDppK1xcXCJAbGF6eVJ1bGU9LmpzOnB1dFZhcignaWknLGlucHV0KTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5q2j5Zyo5YiH5o2iLi4uJ1xcXCIsY29sX3R5cGU6J3Njcm9sbF9idXR0b24nfSk7fWlmKG1vPT0xKWQ9ZC5yZXZlcnNlKCk7ZDE9ZDEuY29uY2F0KGQpO2QxLnB1c2goe2NvbF90eXBlOidsaW5lX2JsYW5rJ30pO2lmKHltLmluZGV4T2YoJ1xcXCJzc0xpc3RcXFwiOlt7Jyk+LTEpe2QxLnB1c2goe3RpdGxlOihnZXRWYXIoJ3hsJyk9PScxJz8n4oCc4oCc4oqZ5pu05aSa57O75YiX4oCd4oCdJzon4oCY4oCY4oqV5pu05aSa57O75YiX4oCZ4oCZJyksdXJsOidoaWtlcjovL2VtcHR5IycrZ2V0VmFyKCd4bCcpK1xcXFxgQGxhenlSdWxlPS5qczp2YXIgYT1pbnB1dC5zcGxpdCgnIycpWzFdO2lmKGE9PScxJyl7cHV0VmFyMigneGwnLCcnKTt9ZWxzZXtwdXRWYXIyKCd4bCcsJzEnKTt9cmVmcmVzaFBhZ2UoZmFsc2UpO2E9PScxJz8ndG9hc3Q6Ly/lt7LmlLbotbcnOid0b2FzdDovL+W3suWxleW8gCdcXFxcYCxjb2xfdHlwZTondGV4dF8yJ30pO31pZihNWV9VUkwuc2VhcmNoKC9pcWl5aS5jb3x5b3VrdS5jby8pPT0tMSlkMS5wdXNoKHt0aXRsZTooZ2V0VmFyKCd0aicpPT0nMSc/J+KAnOKAnOKKmeabtOWkmuaOqOiNkOKAneKAnSc6J+KAmOKAmOKKleabtOWkmuaOqOiNkOKAmeKAmScpLHVybDonaGlrZXI6Ly9lbXB0eSMnK2dldFZhcigndGonKStcXFxcYEBsYXp5UnVsZT0uanM6dmFyIGE9aW5wdXQuc3BsaXQoJyMnKVsxXTtpZihhPT0nMScpe3B1dFZhcjIoJ3RqJywnJyk7fWVsc2V7cHV0VmFyMigndGonLCcxJyk7fXJlZnJlc2hQYWdlKGZhbHNlKTthPT0nMSc/J3RvYXN0Oi8v5bey5pS26LW3JzondG9hc3Q6Ly/lt7LlsZXlvIAnXFxcXGAsY29sX3R5cGU6J3RleHRfMid9KTtkMS5wdXNoKHtjb2xfdHlwZTonbGluZSd9KTt0cnl7aWYoZ2V0VmFyKCd4bCcpPT0nMScpeyB2YXIgdGo9SlNPTi5wYXJzZSh5bS5zcGxpdCgnXFxcInNzTGlzdFxcXCI6JylbMV0uc3BsaXQoJ31dJylbMF0rJ31dJyk7IGZvcih2YXIgbz0wO3RqIT1udWxsJiZvPHRqLmxlbmd0aDtvKyspe3ZhciBjb3Zlcj10altvXS5jb3ZlcjtpZighY292ZXIuaW5jbHVkZXMoJ2h0dHAnKSljb3Zlcj0naHR0cDonK2NvdmVyO3ZhciBjdT1NWV9VUkwuaW5jbHVkZXModGpbb10uaWQpPyfirZDvuI8nOicnO3ZhciBzeD1NWV9VUkwuaW5jbHVkZXModGpbb10uaWQpP1xcXCJAbGF6eVJ1bGU9LmpzOnJlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/lt7LliLfmlrDvvIEnO1xcXCI6Z2V0SXRlbSgnYWEnKTtkMS5wdXNoKHsgdGl0bGU6dGpbb10udGl0bGUrY3UsaW1nOmNvdmVyLGRlc2M6dGpbb10uaW5kZXhfc2hvdywgdXJsOidodHRwczovL3d3dy5iaWxpYmlsaS5jb20vYmFuZ3VtaS9wbGF5L3NzJyt0altvXS5pZCsnIyMnK25hbSsnICcrdGpbb10udGl0bGUrJyYmJysnaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tL2Jhbmd1bWkvcGxheS9zcycrdGpbb10uaWQrJyYmJytjb3ZlcisnIyMnK3N4LCBkZXNjOnRqW29dLmRlc2MsY29sX3R5cGU6J21vdmllXzInIH0pO31wdXRWYXIyKCd4bCcsJycpO319Y2F0Y2goZSl7fWlmKGdldFZhcigndGonKT09JzEnKXtpZihNWV9VUkwuaW5jbHVkZXMoJ2JpbGliaWxpJykpe3ZhciByZWM9SlNPTi5wYXJzZShmZXRjaCgnaHR0cHM6Ly9hcGkuYmlsaWJpbGkuY29tL3BnYy9zZWFzb24vd2ViL3JlbGF0ZWQvcmVjb21tZW5kP3NlYXNvbl9pZD0nK01ZX1VSTC5zcGxpdCgnc3MnKVsxXSx7fSkpLmRhdGEuc2Vhc29uO2ZvcihpPTA7aTxyZWMubGVuZ3RoO2krKyl7ZDEucHVzaCh7IHRpdGxlOnJlY1tpXS50aXRsZSxpbWc6cmVjW2ldLm5ld19lcC5jb3ZlcixkZXNjOnJlY1tpXS5uZXdfZXAuaW5kZXhfc2hvdyx1cmw6cmVjW2ldLnVybCsnIyMnK3JlY1tpXS50aXRsZSsnJiYnK3JlY1tpXS51cmwrJyYmJytyZWNbaV0ubmV3X2VwLmNvdmVyKycjIycrZ2V0SXRlbSgnYWEnKSwgY29sX3R5cGU6J21vdmllXzInIH0pO319ZWxzZSBpZihNWV9VUkwuaW5jbHVkZXMoJ3hmYW5pLicpKXt2YXIgbGlzPXBhcnNlRG9tRm9yQXJyYXkocmVxdWVzdCgnaHR0cHM6Ly9tLnYucXEuY29tL3BsYXkuaHRtbD9jaWQ9JytNWV9VUkwuc3BsaXQoJy8nKVs1XS5zcGxpdCgnLicpWzBdLHt9KSwnLmZpZ3VyZXNfbGlzdCYmbGknKTtmb3IodmFyIGsgb2YgbGlzKXt2YXIgdXI9J2h0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8nK3BhcnNlRG9tRm9ySHRtbChrLCdsaSYmZGF0YS1jaWQnKSsnLmh0bWwnO3ZhciBpbWc9cGFyc2VEb21Gb3JIdG1sKGssJ2ltZyYmZHNyYycpO2lmKCFpbWcuaW5jbHVkZXMoJ2h0dHAnKSlpbWc9J2h0dHBzOicraW1nO3ZhciB0aT1wYXJzZURvbUZvckh0bWwoaywnc3Ryb25nJiZUZXh0Jyk7ZDEucHVzaCh7IHRpdGxlOnRpLGltZzppbWcsZGVzYzpwYXJzZURvbUZvckh0bWwoaywnYSYmVGV4dCcpLHVybDp1cisnIyMnK3RpKycmJicrdXIrJyYmJytpbWcrJyMjJytnZXRJdGVtKCdhYScpLCBjb2xfdHlwZTonbW92aWVfMicgfSk7fX1lbHNle3ZhciBsaT1wZGZhKHltLCdib2R5JiYubW9kdWxlLWl0ZW1zJiZhJyk7Zm9yKGxldCBpIG9mIGxpKXt2YXIgdGk9cGRmaChpLCdhJiZ0aXRsZScpO3ZhciB1cj1wYXJzZURvbShpLCdhJiZocmVmJyk7dmFyIGltZz1wZGZoKGksJ2ltZyYmZGF0YS1vcmlnaW5hbCcpO2QxLnB1c2goeyB0aXRsZTp0aSxpbWc6aW1nLGRlc2M6cGFyc2VEb21Gb3JIdG1sKGksJy5tb2R1bGUtaXRlbS1ub3RlJiZUZXh0JyksdXJsOnVyKycjIycrdGkrJyYmJyt1cisnJiYnK2ltZysnIyMnK2dldEl0ZW0oJ2FhJyksIGNvbF90eXBlOidtb3ZpZV8yJyB9KTt9fX1wdXRWYXIyKCd0aicsJycpO31jYXRjaChlKXtkMS5wdXNoKHt0aXRsZTon4oCc4oCc5LyR5oGv5ZCn77yM6L+955Wq5Lmf5LiN6KaB6L+Z5LmI5ou877yB4oCd4oCdJyxjb2xfdHlwZTondGV4dF9jZW50ZXJfMSd9KTt9Y2xlYXJJdGVtKCd5eicpO2FkZExpc3RlbmVyKCdvblJlZnJlc2gnLFxcXCJwdXRWYXIoJ2psJyxwYXJzZUludChnZXRWYXIoJ2psJywnMCcpLDEwKS0xKTtcXFwiKTthZGRMaXN0ZW5lcignb25DbG9zZScsXFxcInZhciBmaT1KU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jyx7fSkpO3ZhciBmaXM9SlNPTi5wYXJzZSgnXFxcIitmaXMrXFxcIicpO3ZhciBzdGE9Z2V0VmFyKCdzdGEnKTtpZihnZXRWYXIoJ2psJyk9PTEmJmdldFZhcignYXhlJyk9PSfov73nlaonJiYoZmV0Y2goJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHQnLHt9KSE9Z2V0VmFyKCdsYicpfHxmaS5meiE9ZmlzLmZ6fHxmaS5jb2whPXN0YSYmZmkuY29sIT1maXMuY29sKSl7aWYoZmkuY29sIT1maXMuY29sJiZmaS5jb2whPXN0YSlwdXRWYXIoJ3N0YScsZmkuY29sJiZmaS5jb2w9PTE/MTowKTtyZWZyZXNoUGFnZShmYWxzZSk7fXB1dFZhcignamwnLHBhcnNlSW50KGdldFZhcignamwnLCcwJyksMTApLTEpO1xcXCIpO3JlczEuZGF0YSA9IGQxOyBzZXRIb21lUmVzdWx0KHJlczEpO2ApO1wiLFwicGFnZXNcIjpcIlt7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLmtYvor5VcXFwiLFxcXCJwYXRoXFxcIjpcXFwiY2VzaGkuaHRtbFxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcblxcXFxyXFxcXG52YXIgcmVzID0ge307XFxcXHJcXFxcbnZhciBkID0gW107XFxcXG52YXIgZDEgPSBbXTtcXFxcbnZhciBkMiA9IFtdO1xcXFxudmFyIGQzID0gW107XFxcXG52YXIgZDQgPSBbXTtcXFxcbnZhciBkNSA9IFtdO1xcXFxuZnVuY3Rpb24gc2VsKGEpe1xcXFxuICAgdHJ5e1xcXFxuICAgICAgYT1hLm1hdGNoKC9bXFxcXFxcXFx3XSo/XFxcXFxcXFwuY29tL2cpWzBdO1xcXFxuICAgICB9Y2F0Y2goZSl7cmV0dXJuICdvdGgnO31cXFxcbiAgICAgICAgICAgIHN3aXRjaCAoYSkge1xcXFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcXFxcXCJxcS5jb21cXFxcXFxcIjpcXFxcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gJ3R4JztcXFxcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxcXG4gICAgICAgICAgICAgICAgY2FzZSBcXFxcXFxcImlxaXlpLmNvbVxcXFxcXFwiOlxcXFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSAncXknO1xcXFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXFxcbiAgICAgICAgICAgICAgICBjYXNlIFxcXFxcXFwieW91a3UuY29tXFxcXFxcXCI6XFxcXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9ICd5ayc7XFxcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcXFxuICAgICAgICAgICAgICAgIGNhc2UgXFxcXFxcXCJtZ3R2LmNvbVxcXFxcXFwiOlxcXFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSAnbWcnO1xcXFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXFxcbiAgICAgICAgICAgICAgICBjYXNlIFxcXFxcXFwiYmlsaWJpbGkuY29tXFxcXFxcXCI6XFxcXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9ICdibCc7XFxcXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xcXFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XFxcXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9ICdvdGgnO1xcXFxuICAgICAgICAgICAgICAgICAgICBicmVhaztcXFxcbiAgICAgICAgICAgIH1cXFxcbnJldHVybiBzdHI7XFxcXG59XFxcXG5cXFxcbnZhciBwYXRoPSdmaWxlOi8vL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9ydWxlcy9EdWFuTmlhbi9NeVBhcnNlLmpzb24nO1xcXFxudmFyIGZpPWZldGNoKHBhdGgse30pO1xcXFxudHJ5e1xcXFxuZXZhbCgnang9JytmaSk7XFxcXG5ldmFsKCdhPScrZmkpO1xcXFxuXFxcXG5zYXZlRmlsZSgnc2F2ZS50eHQnLGZpKTtcXFxcblxcXFxuZm9yKGxldCB4IG9mIE9iamVjdC5rZXlzKGp4LnNldHRpbmdzKSl7XFxcXG52YXIgYj1qeC5zZXR0aW5nc1t4XS5zcGxpdCgnLCcpO1xcXFxuZm9yKGk9MDtpPGIubGVuZ3RoO2krKyl7XFxcXG5mb3Ioaj1pKzE7ajxiLmxlbmd0aDtqKyspe1xcXFxuaWYoYltpXT09YltqXSl7XFxcXG5iLnNwbGljZShqLDEpO1xcXFxufVxcXFxufVxcXFxufVxcXFxuanguc2V0dGluZ3NbeF09Yi5maWx0ZXIoYT0+e3JldHVybiBhIT0nJzt9KS5qb2luKCcsJyk7XFxcXG59XFxcXG5cXFxcbmp4LnNldHRpbmdzLmNqPSdoaWtlcjovL2ZpbGVzL2NhY2hlL1BhcnNlX0RuLmpzJztcXFxcbmp4LnRpdGxlPWp4LnRpdGxlLmZpbHRlcihhPT57XFxcXG5pZihqeC5jb2Rlc1thXSl7anguY29kZXNbYV09YSsn6Kej5p6QJztcXFxcbnJldHVybiBhO31cXFxcbmVsc2V7ZGVsZXRlIGp4LmNvZGVzW2FdO319KTtcXFxcbnZhciBmaT1KU09OLnN0cmluZ2lmeShqeCk7XFxcXG5mb3IoaiBvZiBqeC50aXRsZSl7Zmk9ZmkucmVwbGFjZSgnXFxcXFxcXCInK2orJ+ino+aekFxcXFxcXFwiJywoKHR5cGVvZiBhLmNvZGVzW2pdKSE9J2Z1bmN0aW9uJz8oJ1xcXFxcXFwiJythLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKydcXFxcXFxcIicpOmEuY29kZXNbal0udG9TdHJpbmcoKS50cmltKCkpKTt9d3JpdGVGaWxlKHBhdGgsZmkpO1xcXFxuXFxcXG5pbnB1dD1nZXRWYXIoJ2lucHV0Jyk7XFxcXG5wdXRWYXIoJ2lucHV0JywnJyk7XFxcXG52YXIgbmFtZT1nZXRWYXIoJ2knKTtcXFxcblxcXFxuZC5wdXNoKHtcXFxcbnRpdGxlOifmtYvor5UnLFxcXFxuZGVzYzon6L6T5YWl5rWL6K+V6ZO+5o6lLi4uJyxcXFxcbnVybDpgcHV0VmFyKCdpbnB1dCcsaW5wdXQpO3JlZnJlc2hQYWdlKGZhbHNlKTtgLFxcXFxuY29sX3R5cGU6J2lucHV0JyxcXFxcbmV4dHJhOntpZDpcXFxcXFxcImlua1xcXFxcXFwifVxcXFxufSk7XFxcXG52YXIgcGF0aD0nZmlsZTovLy9zdG9yYWdlL2VtdWxhdGVkLzAvQW5kcm9pZC9kYXRhL2NvbS5leGFtcGxlLmhpa2Vydmlldy9maWxlcy9Eb2N1bWVudHMvcnVsZXMvRHVhbk5pYW4vTXlQYXJzZS5qc29uJztcXFxcblxcXFxuZXZhbCgnang9JytmaSk7XFxcXG52YXIgcGQ9MDtcXFxcbmZvcihpPTA7aTxqeC50aXRsZS5sZW5ndGg7aSsrKXtcXFxcbmlmKGp4LnRpdGxlW2ldPT1uYW1lKXtcXFxcbnBkPTE7YnJlYWs7XFxcXG59XFxcXG59XFxcXG5pZihuYW1lPT0nJ3x8cGQ9PTApbmFtZT1qeC50aXRsZVswXTtcXFxcblxcXFxuZC5wdXNoKHtcXFxcbnRpdGxlOifmtYvor5Xku44gJytuYW1lKycg5byA5aeLOiAnLFxcXFxuZGVzYzon54K55Ye75YiH5o2i6LW354K56Kej5p6QJyxcXFxcbnVybDpgc2VsZWN0Oi8ve1xcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLpgInmi6nop6PmnpAuLi5cXFxcXFxcIixcXFxcXFxcIm9wdGlvbnNcXFxcXFxcIiA6W2ArangudGl0bGUubWFwKGE9PntyZXR1cm4gJ1xcXFxcXFwiJythKydcXFxcXFxcIid9KStgXSxjb2w6IDMsIFxcXFxcXFwianNcXFxcXFxcIjpcXFxcXFxcInB1dFZhcignaScsaW5wdXQpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLoh7MnK2lucHV0KyflvIDlp4vmtYvor5XvvIEnXFxcXFxcXCJ9YCxcXFxcbmNvbF90eXBlOid0ZXh0XzEnXFxcXG59KTtcXFxcbmQucHVzaCh7Y29sX3R5cGU6J2xpbmVfYmxhbmsnfSk7XFxcXG5pZihpbnB1dCE9JycmJmlucHV0LmluY2x1ZGVzKCc6Ly8nKSl7XFxcXG52YXIgY3M9MDtcXFxcbmZvcih2YXIgaWk9MDtpaTxqeC50aXRsZS5sZW5ndGg7aWkrKyl7XFxcXG5cXFxcbmlmKG5hbWUhPWp4LnRpdGxlW2lpXSYmY3M9PTApe1xcXFxuY29udGludWU7XFxcXG59ZWxzZSBpZihuYW1lPT1qeC50aXRsZVtpaV0pe2NzPTE7fVxcXFxuXFxcXG5cXFxcblxcXFxuaWYoangudGl0bGVbaWldIT0nZGVmYXVsdFBhcnNlJyl7XFxcXG50cnl7XFxcXG5zaG93TG9hZGluZygn5q2j5Zyo5rWL6K+VICcrangudGl0bGVbaWldKTtcXFxcblxcXFxuaWYoKHR5cGVvZiBqeC5jb2Rlc1tqeC50aXRsZVtpaV1dKSE9J3N0cmluZycpe1xcXFxudmFyIHVybD1qeC5jb2Rlc1tqeC50aXRsZVtpaV1dKGlucHV0KS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFwiL2csJ1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcIicpLnJlcGxhY2UoL1xcXFxcXFxcJy9nLFxcXFxcXFwiXFxcXFxcXFxcXFxcXFxcXCdcXFxcXFxcIikucmVwbGFjZSgvXFxcXFxcXFxgL2csJ1xcXFxcXFxcXFxcXFxcXFxgJyk7XFxcXG5pZihzZWwoaW5wdXQpPT0nbWcnJiZ1cmwuc2VhcmNoKC9Vc2VyLUFnZW50fFJlZmVyZXIvKT09LTEpXFxcXG51cmw9dXJsKyc7e1VzZXItQWdlbnRATW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCl9JztcXFxcbn1cXFxcbmVsc2V7XFxcXG52YXIgdXJsPScnO1xcXFxufVxcXFxuXFxcXG5pZih1cmwuaW5jbHVkZXMoJ3RvYXN0Oi8vJyl8fCF1cmwuaW5jbHVkZXMoJzovLycpfHx1cmw9PWlucHV0KXVybD0nJztcXFxcbn1jYXRjaChlKXtcXFxcbnVybD0nJztcXFxcbn1cXFxcblxcXFxuaWYodXJsIT0nJylcXFxcbntcXFxcbmQxLnB1c2goe1xcXFxudGl0bGU6angudGl0bGVbaWldLFxcXFxuZGVzYzon5om+5Yiw5LiA5Liq5YWN5ZeFJyxcXFxcbnVybDpgc2VsZWN0Oi8ve1xcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLpgInmi6nmk43kvZwuLi5cXFxcXFxcIiwgXFxcXFxcXCJvcHRpb25zXFxcXFxcXCIgOlsn5pKt5pS+Jywn5re75YqgJywn5Yig6ZmkJ10sIGNvbDogMywgXFxcXFxcXCJqc1xcXFxcXFwiOiBcXFxcXFxcImlmKGlucHV0PT0n5pKt5pS+Jyl7XFxcXFxcXFxgYCt1cmwrYFxcXFxcXFxcYDt9ZWxzZSB7dmFyIHBhdGg9J2ZpbGU6Ly8vc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL3J1bGVzL0R1YW5OaWFuL015UGFyc2UuanNvbic7dmFyIGZpPWZldGNoKHBhdGgse30pO2V2YWwoJ2p4PScrZmkpO2V2YWwoJ2E9JytmaSk7aWYoaW5wdXQ9PSfmt7vliqAnKXt2YXIgc2V0PWp4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddO3NldD1zZXQuc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO2p4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddPSdgK2p4LnRpdGxlW2lpXStgJysoc2V0PT0nJz8nJzonLCcpK3NldDtmb3IoaiBvZiBqeC50aXRsZSl7anguY29kZXNbal09aisn6Kej5p6QJzt9dmFyIGZpPUpTT04uc3RyaW5naWZ5KGp4KTt9ZWxzZXt2YXIganhsPWp4LnRpdGxlLmZpbHRlcihhPT57aWYoYSE9J2ArangudGl0bGVbaWldK2AnKXJldHVybiBhO30pO2ZvcihqIG9mIGp4LnRpdGxlKXtpZihqIT0nYCtqeC50aXRsZVtpaV0rYCcpanguY29kZXNbal09aisn6Kej5p6QJztlbHNlIGRlbGV0ZSBqeC5jb2Rlc1tqXTt9angudGl0bGU9anhsO2ZvcihrIG9mIE9iamVjdC5rZXlzKGp4LnNldHRpbmdzKSl7anguc2V0dGluZ3Nba109anguc2V0dGluZ3Nba10uc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO312YXIgZmk9SlNPTi5zdHJpbmdpZnkoangpO31mb3IoaiBvZiBqeC50aXRsZSl7Zmk9ZmkucmVwbGFjZSgnXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwiJytqKyfop6PmnpBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCInLCgodHlwZW9mIGEuY29kZXNbal0pIT0nZnVuY3Rpb24nPygnXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwiJythLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKydcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCInKTphLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKSk7fXdyaXRlRmlsZShwYXRoLGZpKTsndG9hc3Q6Ly/lrozmiJDvvIEnfVxcXFxcXFwifWAsXFxcXG5jb2xfdHlwZTondGV4dF8xJ1xcXFxufSk7XFxcXG50cnl7XFxcXG5wdXRWYXIoJ2knLGp4LnRpdGxlW2lpKzFdKTtcXFxcbn1jYXRjaChlKXtcXFxcbmNsZWFyVmFyKCdpJyk7fVxcXFxuZDEucHVzaCh7Y29sX3R5cGU6J2xpbmUnfSk7XFxcXG5kMS5wdXNoKHtcXFxcbnRpdGxlOifkuIvkuIDkuKonLFxcXFxudXJsOmBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2lucHV0JywnYCtpbnB1dCtgJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+S4i+S4gOS4qidgLFxcXFxuY29sX3R5cGU6J3RleHRfMidcXFxcbn0pO1xcXFxuZDEucHVzaCh7XFxcXG50aXRsZTon5LuO5aS05byA5aeLJyxcXFxcbnVybDpgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0VmFyKCdpbnB1dCcsJ2AraW5wdXQrYCcpO2NsZWFyVmFyKCdpJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+W8gOWniydgLFxcXFxuY29sX3R5cGU6J3RleHRfMidcXFxcbn0pO1xcXFxuaGlkZUxvYWRpbmcoKTtcXFxcbmJyZWFrO1xcXFxufVxcXFxuXFxcXG5cXFxcbmVsc2V7XFxcXG5pZigodHlwZW9mIGp4LmNvZGVzW2p4LnRpdGxlW2lpXV0pIT0nc3RyaW5nJylcXFxcbmQyLnB1c2goe1xcXFxudGl0bGU6angudGl0bGVbaWldLFxcXFxuXFxcXG51cmw6YHNlbGVjdDovL3tcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6YCJ5oup5pON5L2cLi4uXFxcXFxcXCIsIFxcXFxcXFwib3B0aW9uc1xcXFxcXFwiIDpbJ+mHjeivlScsJ+a3u+WKoCcsJ+WIoOmZpCddLCBjb2w6IDMsIFxcXFxcXFwianNcXFxcXFxcIjogXFxcXFxcXCJpZihpbnB1dD09J+mHjeivlScpe1xcXFxcXFxcYGhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnZhciBwYXRoPSdmaWxlOi8vL3N0b3JhZ2UvZW11bGF0ZWQvMC9BbmRyb2lkL2RhdGEvY29tLmV4YW1wbGUuaGlrZXJ2aWV3L2ZpbGVzL0RvY3VtZW50cy9ydWxlcy9EdWFuTmlhbi9NeVBhcnNlLmpzb24nO3ZhciBmaT1mZXRjaChwYXRoLHt9KTtldmFsKCdqeD0nK2ZpKTtqeC5jb2Rlc1snYCtqeC50aXRsZVtpaV0rYCddKCdgK2lucHV0K2AnKTtcXFxcXFxcXGB9ZWxzZSB7dmFyIHBhdGg9J2ZpbGU6Ly8vc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL3J1bGVzL0R1YW5OaWFuL015UGFyc2UuanNvbic7dmFyIGZpPWZldGNoKHBhdGgse30pO2V2YWwoJ2p4PScrZmkpO2V2YWwoJ2E9JytmaSk7aWYoaW5wdXQ9PSfmt7vliqAnKXt2YXIgc2V0PWp4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddO3NldD1zZXQuc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO2p4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddPSdgK2p4LnRpdGxlW2lpXStgJysoc2V0PT0nJz8nJzonLCcpK3NldDtmb3IoaiBvZiBqeC50aXRsZSl7anguY29kZXNbal09aisn6Kej5p6QJzt9dmFyIGZpPUpTT04uc3RyaW5naWZ5KGp4KTt9ZWxzZXt2YXIganhsPWp4LnRpdGxlLmZpbHRlcihhPT57aWYoYSE9J2ArangudGl0bGVbaWldK2AnKXJldHVybiBhO30pO2ZvcihqIG9mIGp4LnRpdGxlKXtpZihqIT0nYCtqeC50aXRsZVtpaV0rYCcpanguY29kZXNbal09aisn6Kej5p6QJztlbHNlIGRlbGV0ZSBqeC5jb2Rlc1tqXTt9angudGl0bGU9anhsO2ZvcihrIG9mIE9iamVjdC5rZXlzKGp4LnNldHRpbmdzKSl7anguc2V0dGluZ3Nba109anguc2V0dGluZ3Nba10uc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO312YXIgZmk9SlNPTi5zdHJpbmdpZnkoangpO31mb3IoaiBvZiBqeC50aXRsZSl7Zmk9ZmkucmVwbGFjZSgnXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwiJytqKyfop6PmnpBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCInLCgodHlwZW9mIGEuY29kZXNbal0pIT0nZnVuY3Rpb24nPygnXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwiJythLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKydcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCInKTphLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKSk7fXdyaXRlRmlsZShwYXRoLGZpKTsndG9hc3Q6Ly/lrozmiJDvvIEnfVxcXFxcXFwifWAsXFxcXG5jb2xfdHlwZTondGV4dF8zJ1xcXFxufSk7XFxcXG5lbHNle1xcXFxudmFyIHg1PWp4LmNvZGVzWydkZWZhdWx0UGFyc2UnXShqeC5jb2Rlc1tqeC50aXRsZVtpaV1dK2lucHV0KS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFxcL2csJ1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnKS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFwiL2csJ1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcIicpLnJlcGxhY2UoL1xcXFxcXFxcJy9nLFxcXFxcXFwiXFxcXFxcXFxcXFxcXFxcXCdcXFxcXFxcIikucmVwbGFjZSgvXFxcXFxcXFxgL2csJ1xcXFxcXFxcXFxcXFxcXFxgJykucmVwbGFjZSgvW1xcXFxcXFxcc10vZywnICcpO1xcXFxuZDQucHVzaCh7XFxcXG50aXRsZTpqeC50aXRsZVtpaV0sXFxcXG5cXFxcbnVybDpgc2VsZWN0Oi8ve1xcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLpgInmi6nmk43kvZwuLi5cXFxcXFxcIiwgXFxcXFxcXCJvcHRpb25zXFxcXFxcXCIgOlsn6Kej5p6QJywn5re75YqgJywn5Yig6ZmkJ10sIGNvbDogMywgXFxcXFxcXCJqc1xcXFxcXFwiOiBcXFxcXFxcImlmKGlucHV0PT0n6Kej5p6QJyl7J2AreDUrYCd9ZWxzZSB7dmFyIHBhdGg9J2ZpbGU6Ly8vc3RvcmFnZS9lbXVsYXRlZC8wL0FuZHJvaWQvZGF0YS9jb20uZXhhbXBsZS5oaWtlcnZpZXcvZmlsZXMvRG9jdW1lbnRzL3J1bGVzL0R1YW5OaWFuL015UGFyc2UuanNvbic7dmFyIGZpPWZldGNoKHBhdGgse30pO2V2YWwoJ2p4PScrZmkpO2V2YWwoJ2E9JytmaSk7aWYoaW5wdXQ9PSfmt7vliqAnKXt2YXIgc2V0PWp4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddO3NldD1zZXQuc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO2p4LnNldHRpbmdzWydgK3NlbChpbnB1dCkrYCddPSdgK2p4LnRpdGxlW2lpXStgJysoc2V0PT0nJz8nJzonLCcpK3NldDtmb3IoaiBvZiBqeC50aXRsZSl7anguY29kZXNbal09aisn6Kej5p6QJzt9dmFyIGZpPUpTT04uc3RyaW5naWZ5KGp4KTt9ZWxzZXt2YXIganhsPWp4LnRpdGxlLmZpbHRlcihhPT57aWYoYSE9J2ArangudGl0bGVbaWldK2AnKXJldHVybiBhO30pO2ZvcihqIG9mIGp4LnRpdGxlKXtpZihqIT0nYCtqeC50aXRsZVtpaV0rYCcpanguY29kZXNbal09aisn6Kej5p6QJztlbHNlIGRlbGV0ZSBqeC5jb2Rlc1tqXTt9angudGl0bGU9anhsO2ZvcihrIG9mIE9iamVjdC5rZXlzKGp4LnNldHRpbmdzKSl7anguc2V0dGluZ3Nba109anguc2V0dGluZ3Nba10uc3BsaXQoJywnKS5maWx0ZXIoYT0+e2lmKGEhPScnJiZhIT0nYCtqeC50aXRsZVtpaV0rYCcpcmV0dXJuIGE7fSkuam9pbignLCcpO312YXIgZmk9SlNPTi5zdHJpbmdpZnkoangpO31mb3IoaiBvZiBqeC50aXRsZSl7Zmk9ZmkucmVwbGFjZSgnXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwiJytqKyfop6PmnpBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCInLCgodHlwZW9mIGEuY29kZXNbal0pIT0nZnVuY3Rpb24nPygnXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwiJythLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKydcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCInKTphLmNvZGVzW2pdLnRvU3RyaW5nKCkudHJpbSgpKSk7fXdyaXRlRmlsZShwYXRoLGZpKTsndG9hc3Q6Ly/lrozmiJDvvIEnfVxcXFxcXFwifWAsXFxcXG5jb2xfdHlwZTondGV4dF8zJ1xcXFxufSk7fVxcXFxufVxcXFxufX1cXFxcbn1cXFxcbmhpZGVMb2FkaW5nKCk7XFxcXG5pZihkMiE9JycpXFxcXG5kMy5wdXNoKHtcXFxcbnRpdGxlOifirZDvuI/ku6XkuIvmmK/op6PmnpDlpLHotKXnmoTlhY3ll4U6JyxcXFxcbmNvbF90eXBlOid0ZXh0XzEnXFxcXG5cXFxcbn0pO1xcXFxuaWYoZDQhPScnKVxcXFxuZDUucHVzaCh7XFxcXG50aXRsZTon4q2Q77iP5Lul5LiL5LiN5piv5YWN5ZeF77yM6ZyA6KaB5omL5Yqo5rWL6K+VOicsXFxcXG5jb2xfdHlwZTondGV4dF8xJ1xcXFxuXFxcXG59KTtcXFxcbn1jYXRjaChlKXtcXFxcbmQucHVzaCh7XFxcXG50aXRsZTon5paH5Lu25o2f5Z2P77yM54K55Ye75q2k5aSE5oGi5aSNKOWmguaenOacieWkh+S7veeahOivnSknLFxcXFxuY29sX3R5cGU6J3RleHRfY2VudGVyXzEnLFxcXFxuZGVzYzon5YWI54K55LiA5LiL6K+V5LiA6K+V5ZCnJyxcXFxcbnVybDpgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6d3JpdGVGaWxlKCdgK3BhdGgrYCcscmVhZEZpbGUoJ3NhdmUudHh0JykpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/miafooYzmiJDlip/vvIEnYFxcXFxufSk7XFxcXG59XFxcXG5kPWQuY29uY2F0KGQxKS5jb25jYXQoZDMpLmNvbmNhdChkMikuY29uY2F0KGQ1KS5jb25jYXQoZDQpO1xcXFxuXFxcXHJcXFxcbnJlcy5kYXRhID0gZDtcXFxcclxcXFxuc2V0SG9tZVJlc3VsdChyZXMpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuaQnOe0olxcXCIsXFxcInBhdGhcXFwiOlxcXCJzby5odG1sXFxcIixcXFwicnVsZVxcXCI6XFxcImlmKGlucHV0PT0n5pCc57Si5YiG57uEJyl7YGlucHV0Oi8ve1xcXFxcXFwiaGludFxcXFxcXFwiOifovpPlhaXliIbnu4TlkI3np7DvvJonLFxcXFxcXFwianNcXFxcXFxcIjpcXFxcXFxcImE9W107YVswXT0wO2FbMV09aW5wdXQ7aWYoYVsxXSE9Jycpe3NlPSdoaWtlcjovL2ZpbGVzL+eVquWJp+abtOaWsOihqC9zZXQudHh0Jzt2YXIgZmk9SlNPTi5wYXJzZShmZXRjaChzZSx7fSkpO2ZpLnNvPWE7d3JpdGVGaWxlKHNlLEpTT04uc3RyaW5naWZ5KGZpKSk7cmVmcmVzaFBhZ2UoZmFsc2UpO31cXFxcXFxcIn1gfVxcXFxuZWxzZXtgaW5wdXQ6Ly97XFxcXFxcXCJoaW50XFxcXFxcXCI6J+i+k+WFpeWwj+eoi+W6j+WQjeensO+8micsXFxcXFxcXCJqc1xcXFxcXFwiOlxcXFxcXFwiYT1bXTthWzBdPTE7YVsxXT1pbnB1dDtpZihhWzFdIT0nJyl7c2U9J2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL3NldC50eHQnO3ZhciBmaT1KU09OLnBhcnNlKGZldGNoKHNlLHt9KSk7Zmkuc289YTt3cml0ZUZpbGUoc2UsSlNPTi5zdHJpbmdpZnkoZmkpKTtyZWZyZXNoUGFnZShmYWxzZSk7fVxcXFxcXFwifWB9XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi566A5LuLXFxcIixcXFwicGF0aFxcXCI6XFxcImppYW5qXFxcIixcXFwicnVsZVxcXCI6XFxcImZ1bmN0aW9uIGppYW5qKGEpe1xcXFxucmV0dXJuIGBoaWtlcjovL2VtcHR5QHJ1bGU9anM6dmFyIHJlcyA9IHt9O3ZhciBkID0gW107ZC5wdXNoKHt0aXRsZTon566A5LuL77yaXFxcXFxcXFxcXFxcXFxcXG4nK1xcXFxcXFxcYGArYStgXFxcXFxcXFxgLGNvbF90eXBlOidsb25nX3RleHQnfSk7cmVzLmRhdGEgPSBkO3NldEhvbWVSZXN1bHQocmVzKTtgXFxcXG59XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5YiG57G7XFxcIixcXFwicGF0aFxcXCI6XFxcImNsYXNzaWZ5XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxuZD1bXTtcXFxcbnB1dFZhcign5YiG57G7JywnJyk7XFxcXG52YXIgcGF0aD1cXFxcXFxcImhpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHRcXFxcXFxcIjtcXFxcbnZhciBmaWxlPXJlcXVlc3QocGF0aCk7XFxcXG5pZihmaWxlIT1cXFxcXFxcIlxcXFxcXFwiKXtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6XFxcXFxcXCLmk43kvZzor7TmmI7vvJpcXFxcXFxcIixcXFxcbiAgICBkZXNjOlxcXFxcXFwi5YWI6YCJ5oup5pS+5Yiw5LiA5Liq5YiG57uE55qE55Wq5Ymn77yM54K55Ye75a6M5oiQ77yM6L6T5YWl5ZCN56ew5Y2z5Y+v77yBXFxcXFxcXCIsXFxcXG4gICAgY29sX3R5cGU6XFxcXFxcXCJ0ZXh0XzFcXFxcXFxcIixcXFxcbiAgICBleHRyYTp7aWQ6J+atpemqpCd9XFxcXG5cXFxcbn0pO1xcXFxudmFyIHh4PWZpbGUuc3BsaXQoJ0BAJykuZmlsdGVyKGE9PntyZXR1cm4gYSE9XFxcXFxcXCJcXFxcXFxcIjt9KTtcXFxcbnZhciBhcnI9eHgubWFwKGE9PntcXFxcbiAgICB2YXIgYj17fTtcXFxcbnZhciBjYXRlPWEuc3BsaXQoXFxcXFxcXCImJlxcXFxcXFwiKTtcXFxcbiAgICB2YXIgdD1jYXRlWzBdO1xcXFxudGk9dDtcXFxcbmlmKGNhdGVbNF0mJmNhdGVbNF0hPVxcXFxcXFwiXFxcXFxcXCIpdGk9J+KAmOKAmCcrdCsn4oCZ4oCZJztcXFxcbiAgICBiLnRpdGxlPXRpO1xcXFxuICAgIGIudXJsPVxcXFxcXFwiaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjQGxhenlSdWxlPS5qczp2YXIgYT1nZXRWYXIoJ+WIhuexuycsJycpO3ZhciBiPTA7YT1hPT0nJz9bXTpKU09OLnBhcnNlKGEpO2E9YS5maWx0ZXIoaT0+e2lmKGk9PSdcXFxcXFxcIit0K1xcXFxcXFwiJyl7Yj0xO31lbHNle3JldHVybiBpO319KTtpZihiPT0wKWEucHVzaCgnXFxcXFxcXCIrdCtcXFxcXFxcIicpO3B1dFZhcign5YiG57G7JyxhKTt1cGRhdGVJdGVtKHt0aXRsZTpiPT0wPygn4oCc4oCcXFxcXFxcXCIrdCtcXFxcXFxcIuKAneKAnScpOignXFxcXFxcXCIrdGkrXFxcXFxcXCInKSxleHRyYTp7aWQ6J1xcXFxcXFwiK3QrXFxcXFxcXCInfX0pOygndG9hc3Q6Ly8nKyhiPT0wPyflt7LpgInkuK3vvIEnOiflj5bmtojpgInkuK3vvIEnKSlcXFxcXFxcIjtcXFxcbiAgICBiLmNvbF90eXBlPVxcXFxcXFwidGV4dF8yXFxcXFxcXCI7XFxcXG4gICAgYi5leHRyYT17aWQ6dH07XFxcXG4gICAgcmV0dXJuIGI7XFxcXG59KTtcXFxcbmQ9ZC5jb25jYXQoYXJyKTtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6XFxcXFxcXCLlrozmiJBcXFxcXFxcIixcXFxcbiAgICBjb2xfdHlwZTpcXFxcXFxcInRleHRfY2VudGVyXzFcXFxcXFxcIixcXFxcbiAgICB1cmw6YGlucHV0Oi8ve1xcXFxcXFwiaGludFxcXFxcXFwiOlxcXFxcXFwi5YiG57uE5ZCN56ewLi4uLi4uXFxcXFxcXCIsIFxcXFxcXFwianNcXFxcXFxcIjogXFxcXFxcXCJ2YXIgZmk9YCtKU09OLnN0cmluZ2lmeSh4eCkucmVwbGFjZSgvXFxcXFxcXCIvZyxcXFxcXFxcIidcXFxcXFxcIikrYDt2YXIgYT1nZXRWYXIoJ+WIhuexuycsJycpO2E9YT09Jyc/W106SlNPTi5wYXJzZShhKTtmb3IobGV0IGkgb2YgYSl7Zm9yKGxldCBqIGluIGZpKXt2YXIgY2F0ZT1maVtqXS5zcGxpdCgnJiYnKTt2YXIgdGk9Y2F0ZVswXTtpZih0aT09aSl7Y2F0ZVs0XT1pbnB1dDtmaVtqXT1jYXRlLmpvaW4oJyYmJyk7YnJlYWs7fX19d3JpdGVGaWxlKCdgK3BhdGgrYCcsZmkuam9pbignQEAnKSsnQEAnKTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WujOaIkCEnXFxcXFxcXCJ9YFxcXFxufSlcXFxcblxcXFxuXFxcXG59ZWxzZXtcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgIHRpdGxlOlxcXFxcXFwi5rKh5pyJ6L+955Wq44CC44CC44CCXFxcXFxcXCIsXFxcXG4gICAgZGVzYzpcXFxcXFxcIuivt+WFiOa3u+WKoOi/veeVquWGjeivle+8ge+8gVxcXFxcXFwiLFxcXFxuICAgIGNvbF90eXBlOlxcXFxcXFwidGV4dF9jZW50ZXJfMVxcXFxcXFwiXFxcXG59KTtcXFxcbn1cXFxcblxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIui/veeVquWIhue7hFxcXCIsXFxcInBhdGhcXFwiOlxcXCJ6ZmZ6XFxcIixcXFwicnVsZVxcXCI6XFxcInB1dFZhcignamwnLHBhcnNlSW50KGdldFZhcignamwnLCcwJyksMTApLTEpO1xcXFxuXFxcXG52YXIgaW5wPWdldFZhcigndXJsMScpLnNwbGl0KCcmJicpO2lucFs0XT1pbnB1dDtpbnA9aW5wLmpvaW4oJyYmJyk7XFxcXG5cXFxcbnZhciB4cj1pbnArJ0BAJytmZXRjaCgnaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagv5oiR55qE6L+955WqLnR4dCcse30pO1xcXFxuXFxcXG53cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMv55Wq5Ymn5pu05paw6KGoL+aIkeeahOi/veeVqi50eHQnLHhyKTtcXFxcblxcXFxucmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxuXFxcXG4ndG9hc3Q6Ly/ov73nlarmiJDlip/vvIEnO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcInNlbmRlY3J5cHRcXFwiLFxcXCJwYXRoXFxcIjpcXFwic2VuZnVuLmpzXFxcIixcXFwicnVsZVxcXCI6XFxcImZ1bmN0aW9uIGRlY3J5cHQodXJsLHZpZSxjaCkge1xcXFxucmVxdWlyZSgnaHR0cHM6Ly9sZjYtY2RuLXRvcy5ieXRlY2RudHAuY29tL2Nkbi9leHBpcmUtMS1NL2NyeXB0by1qcy80LjAuMC9jcnlwdG8tanMubWluLmpzJyk7XFxcXHJcXFxcbiAgICBsZXQgXzB4NDBmMzA4ID0gdmllO1xcXFxyXFxcXG4gICAgbGV0IF8weDE5Njg5ZSA9IGNoO1xcXFxyXFxcXG4gICAgbGV0IF8weDQwMDkwNCA9IFtdXFxcXHJcXFxcbiAgICAgICwgXzB4MmM0NDA3ID0gW11cXFxcclxcXFxuICAgICAgLCBfMHg0YzRlNGIgPSAnJztcXFxcclxcXFxuICAgIGZvciAodmFyIF8weDFhYzY1MyA9IDB4MDsgXzB4MWFjNjUzPCBfMHgxOTY4OWUubGVuZ3RoOyBfMHgxYWM2NTMrKykge1xcXFxyXFxcXG4gICAgICAgXFxcXHJcXFxcbiAgICAgICAgICAgIF8weDQwMDkwNC5wdXNoKHtcXFxcclxcXFxuICAgICAgICAgICAgICAgICdpZCc6IF8weDE5Njg5ZVtfMHgxYWM2NTNdLFxcXFxyXFxcXG4gICAgICAgICAgICAgICAgJ3RleHQnOiBfMHg0MGYzMDhbXzB4MWFjNjUzXVxcXFxyXFxcXG4gICAgICAgICAgICB9KTtcXFxcclxcXFxuICAgICAgIFxcXFxyXFxcXG4gICAgfVxcXFxyXFxcXG4gICAgIF8weDJjNDQwNyA9XzB4NDAwOTA0LnNvcnQoZnVuY3Rpb24oeydpZCc6IGR9LHsnaWQnOiBlfSl7cmV0dXJuIGQtZTt9KTtcXFxcclxcXFxuICAgIGZvciAodmFyIF8weDFhYzY1MyA9IDA7IF8weDFhYzY1MzwgXzB4MmM0NDA3Lmxlbmd0aDsgXzB4MWFjNjUzKyspIHtcXFxcclxcXFxuICAgICAgICBfMHg0YzRlNGIgKz0gXzB4MmM0NDA3W18weDFhYzY1M10udGV4dDtcXFxcclxcXFxuICAgIH1cXFxcclxcXFxuICAgIGxldCBfMHg5NzZmOWYgPSBDcnlwdG9KUy5NRDUoXzB4NGM0ZTRiKydmYXZub3cnKS50b1N0cmluZygpO1xcXFxyXFxcXG4gICAgbGV0IF8weDFjOGRiNCA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKF8weDk3NmY5Zi5zdWJzdHJpbmcoMTYpKTtcXFxcclxcXFxuICAgIGxldCBfMHgyMjAwOTcgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShfMHg5NzZmOWYuc3Vic3RyaW5nKDAsIDE2KSk7XFxcXHJcXFxcbiAgICBsZXQgXzB4NDhjNmFiID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQodXJsLCBfMHgxYzhkYjQsIHtcXFxcclxcXFxuICAgICAgICAnaXYnOiBfMHgyMjAwOTcsXFxcXHJcXFxcbiAgICAgICAgJ21vZGUnOiBDcnlwdG9KUy5tb2RlLkNCQyxcXFxcclxcXFxuICAgICAgICAncGFkZGluZyc6IENyeXB0b0pTLnBhZC5Qa2NzN1xcXFxyXFxcXG4gICAgfSk7XFxcXHJcXFxcbiAgICByZXR1cm4gXzB4NDhjNmFiLnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcXFxcclxcXFxufVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIueZu+W9lVxcXCIsXFxcInBhdGhcXFwiOlxcXCJkbC5odG1sXFxcIixcXFwicnVsZVxcXCI6XFxcIlxcXFxuc2V0UmVzdWx0KFt7XFxcXG4gICAgY29sX3R5cGU6IFxcXFxcXFwieDVfd2Vidmlld19zaW5nbGVcXFxcXFxcIixcXFxcbiAgICB1cmw6IFxcXFxcXFwiaHR0cHM6Ly93d3cueGZhbmkuY29tL3VzZXIvbG9naW4uaHRtbFxcXFxcXFwiLFxcXFxuICAgIGRlc2M6IFxcXFxcXFwiZmxvYXQmJjEwMCVcXFxcXFxcIixcXFxcbiAgICBleHRyYToge1xcXFxuICAgICAgICBqczogJC50b1N0cmluZygoKSA9PiB7XFxcXG4gICAgICAgICAgICBmeV9icmlkZ2VfYXBwLndyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy/nlarliafmm7TmlrDooagvY29va2llLnR4dCcsIGZ5X2JyaWRnZV9hcHAuZ2V0Q29va2llKCdodHRwczovL3d3dy54ZmFuaS5jb20vdXNlci9sb2dpbi5odG1sJykpO1xcXFxuICAgICAgICB9KVxcXFxuICAgIH1cXFxcbn1dKVxcXCJ9XVwifSIsInBpY1VybCI6Imh0dHA6Ly9wdXVpLnFwaWMuY24vbWVkaWFfaW1nL2xlbmEvUElDM3h1bWF3XzU4MF8xNjgwLzAiLCJ0aXRsZSI6IuelnuWNsOeOi+W6pyJ9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement