xiaomianao666

小程序:異世界動漫

Sep 28th, 2022
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@異世界動漫@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi55Ww5LiW55WM5YuV5ryrIiwiYXV0aG9yIjoi5p6r5p6X6Zuo5q6HIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjaHR0cDovL3lzamRtLm5ldC8jI2Z5cGFnZSIsInZlcnNpb24iOjEsImNvbF90eXBlIjoibW92aWVfMyIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoidmlkZW8iLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbmlmKGdldFZhcigneXNqLm1iJyk9PVwi5pawXCIpe1xuZXZhbChKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9wYWdlL3hpbnlpamlcIikpLnJ1bGUpXG59ZWxzZXtcbmV2YWwoSlNPTi5wYXJzZShmZXRjaChcImhpa2VyOi8vcGFnZS95aWppXCIpKS5ydWxlKVxufSIsInNlYXJjaF91cmwiOiJodHRwOi8veXNqZG0ubmV0LyMjKiojI2Z5cGFnZSIsImdyb3VwIjoi4pGh5Yqo5ryrIiwic2VhcmNoRmluZCI6ImpzOlxudmFyIHBhZ2U9TVlfUEFHRTtcbnZhciBrZXk9TVlfVVJMLnNwbGl0KCcjIycpWzFdLnNwbGl0KCcjIycpWzBdO1xuaWYoZ2V0VmFyKCd5c2oubWInKT09J+aWsCcpe1xuZXZhbChKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9wYWdlL3hpbnNvdVwiKSkucnVsZSlcbn1lbHNle1xuZXZhbChKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9wYWdlL3NvdVwiKSkucnVsZSlcbn0iLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6ImpzOlxuaWYoZ2V0VmFyKCd5c2oubWInKT09XCLmlrBcIil7XG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goXCJoaWtlcjovL3BhZ2UveGluZXJqaVwiKSkucnVsZSlcbn1lbHNle1xuZXZhbChKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9wYWdlL2VyamlcIikpLnJ1bGUpXG59Iiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IioiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiJpZighZ2V0VmFyKCd5c2oubWInKSl7XG52YXIgZmU9cmVxdWVzdChcImh0dHA6Ly95c2pkbS5uZXQvaW5kZXgucGhwL2xhYmVsL3VwZGF0ZS5odG1sXCIpO1xuaWYoL+WQjuWPsOabtOaWsC8udGVzdChmZSkpe1xucHV0VmFyKCd5c2oubWInLCfmlrAnKVxufWVsc2V7XG5wdXRWYXIoJ3lzai5tYicsJ+aXpycpXG59XG59IiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuebruW9lVwiLFwicGF0aFwiOlwiY3VycmVudFwiLFwicnVsZVwiOlwiXFxudmFyIGdldFJhbmdlQ29sb3JzID0gZnVuY3Rpb24oKSB7wqDCoMKgwqDCoMKgwqBcXG4gICAgcmV0dXJuICcjJyArICgnMDAwMDAnICsgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAgPDwgMCkudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTYpO8KgwqDCoMKgwqBcXG59XFxuXFxuY29uc3Qg5YiG57G76aKc6ImyID0gZ2V0UmFuZ2VDb2xvcnMoKVxcbmNvbnN0IOWkp+exu+WumuS9jSA9ICdib2R5JiYuc2VhcmNoLXRhZydcXG5jb25zdCDmi7zmjqXliIbnsbsgPSAnJ1xcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhJ1xcbmNvbnN0IOWIhuexu+agh+mimCA9ICdhJiZUZXh0J1xcbmNvbnN0IOWIhuexu+mTvuaOpSA9ICdhJiZocmVmJ1xcbmNvbnN0IOWIl+ihqCA9ICcuYmxvY2tjb250ZW50MSYmLmNlbGwnXFxuY29uc3Qg5qCH6aKYID0gJ2ltZyYmYWx0J1xcbmNvbnN0IOWbvueJhyA9ICdpbWcmJnNyYydcXG5jb25zdCDmj4/ov7AgPSAnLm5ld25hbWUmJlRleHQnXFxuY29uc3Qg6ZO+5o6lID0gJ2EmJmhyZWYnXFxuXFxuXFxuXFxudmFyIG15PSBNWSsnL2luZGV4LnBocC92b2QvdHlwZS9pZC8yMC5odG1sJ1xcblxcbmxldCB0cnVlX3VybCA9IGdldFZhcihNWV9SVUxFLnVybCwgbXkpXFxuY29uc3QgcGFnZSA9IE1ZX1BBR0VcXG5cXG50cnVlX3VybCA9IHRydWVfdXJsLnJlcGxhY2UoJy5odG1sJywnL3BhZ2UvJytwYWdlKycuaHRtbCcpXFxuXFxudmFyIGh0bWwgPSByZXF1ZXN0KHRydWVfdXJsKVxcblxcbmNvbnN0IGVtcHR5ID0gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuXFxudHJ5IHtcXG4gICAgdmFyIGNhdGVnb3JpZXMgPSBwZGZhKGh0bWwsIOWkp+exu+WumuS9jSkuY29uY2F0KHBkZmEoaHRtbCwg5ou85o6l5YiG57G7KSlcXG59IGNhdGNoIChlKSB7XFxuICAgIHZhciBjYXRlZ29yaWVzID0gcGRmYShodG1sLCDlpKfnsbvlrprkvY0pXFxufVxcblxcbmxldCBpbml0X2NhdGUgPSBbXVxcblxcbmZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykge1xcbiAgICBpbml0X2NhdGUucHVzaChcXFwiMFxcXCIpXFxufVxcblxcbmNvbnN0ICBmb2xkPSBnZXRWYXIoTVlfUlVMRS5ncm91cCwgXFxcIjBcXFwiKVxcbmNvbnN0IGNhdGVfdGVtcF9qc29uID0gZ2V0VmFyKE1ZX1JVTEUudGl0bGUsIEpTT04uc3RyaW5naWZ5KGluaXRfY2F0ZSkpXFxuY29uc3QgY2F0ZV90ZW1wID0gSlNPTi5wYXJzZShjYXRlX3RlbXBfanNvbilcXG5cXG5pZiAocGFyc2VJbnQocGFnZSkgPT09IDEpIHtcXG5kLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdibGFua19ibG9jaydcXG4gICAgfSlcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBmb2xkID09PSAnMScgPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjMTlCODlEXFxcIj46ICg8L3NwYW4+PC9iPicgOiAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjOTEwMTEzXFxcIj46ICk8L3NwYW4+PC9iPicsXFxuICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgoZm9sZCkgPT4ge1xcbiAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLmdyb3VwLCBmb2xkID09PSAnMScgPyAnMCcgOiAnMScpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICB9LCBmb2xkKSxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxuICAgIH0pXFxuXFxuY2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeSwgaW5kZXgpID0+IHtcXG4gICAgICAgIGxldCBzdWJfY2F0ZWdvcmllcyA9IHBkZmEoY2F0ZWdvcnksIOWwj+exu+WumuS9jSk7XFxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcXG4gICAgICAgICAgICBzdWJfY2F0ZWdvcmllcy5mb3JFYWNoKChpdGVtLCBrZXkpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChpdGVtLCDliIbnsbvmoIfpopgpXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZToga2V5LnRvU3RyaW5nKCkgPT09IGNhdGVfdGVtcFtpbmRleF0gPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAnICsg5YiG57G76aKc6ImyICsgJ1xcXCI+JyArIHRpdGxlICsgJzwvc3Bhbj48L2I+JyA6IHRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKHBkKGl0ZW0sIOWIhuexu+mTvuaOpSkgKyAnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgocGFyYW1zKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld19jYXRlID0gW11cXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuY2F0ZV90ZW1wLmZvckVhY2goKGNhdGUsIGluZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19jYXRlLnB1c2goaW5kZXggPT09IDAgPyBwYXJhbXMua2V5LnRvU3RyaW5nKCkgOiBcXFwiMFxcXCIpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS50aXRsZSwgSlNPTi5zdHJpbmdpZnkobmV3X2NhdGUpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnVybCwgaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZV90ZW1wOiBjYXRlX3RlbXAsXFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogcGFnZSxcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiYmxhbmtfYmxvY2tcXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9IGVsc2UgaWYgKGZvbGQgPT09ICcxJykge1xcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0sIGtleSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKGl0ZW0sIOWIhuexu+agh+mimClcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXkudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2luZGV4XSA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICcgKyDliIbnsbvpopzoibIgKyAnXFxcIj4nICsgdGl0bGUgKyAnPC9zcGFuPjwvYj4nIDogdGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQocGQoaXRlbSwg5YiG57G76ZO+5o6lKSArICcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuY2F0ZV90ZW1wW3BhcmFtcy5pbmRleF0gPSBwYXJhbXMua2V5LnRvU3RyaW5nKClcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS50aXRsZSwgSlNPTi5zdHJpbmdpZnkocGFyYW1zLmNhdGVfdGVtcCkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudXJsLCBpbnB1dClcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlX3RlbXA6IGNhdGVfdGVtcCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXgsXFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogcGFnZSxcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiYmxhbmtfYmxvY2tcXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH0pXFxufVxcblxcbnZhciBsaXN0cz1wZGZhKGh0bWws5YiX6KGoKTtcXG5mb3IodmFyIGxpc3Qgb2YgbGlzdHMpe1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHBkZmgobGlzdCzmoIfpopgpLFxcbiAgICAgICAgZGVzYzogcGRmaChsaXN0LCDmj4/ov7ApLFxcbiAgICAgICAgaW1nOiBNWStwZGZoKGxpc3QsIOWbvueJhyksXFxuICAgICAgICB1cmw6IHBkKGxpc3Qs6ZO+5o6lKSArICcjaW1tZXJzaXZlVGhlbWUjJ1xcbiAgICB9KTtcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmr4/lkajmlL7pgIFcIixcInBhdGhcIjpcImFuaW1lXCIsXCJydWxlXCI6XCJmdW5jdGlvbiBHZXRkRGF0YSh1KSB7XFxuICAgIHZhciBodG0gPSByZXF1ZXN0KHUpO1xcbiAgICB2YXIgZGF0YSA9IGh0bS5tYXRjaCgvbmV3X2FuaW1lX2xpc3QgPSguKj9dKTsvKVsxXS5yZXBsYWNlKCcsXScsICddJyk7XFxuICAgIHB1dE15VmFyKCd5c2ouZHQnLCBkYXRhKTtcXG4gICAgcmV0dXJuIGRhdGFcXG59XFxuXFxuZnVuY3Rpb24gd2Vla2RhdGEodCkge1xcbiAgICB2YXIgdGl0bGUgPSB0LnJlcGxhY2UoJ+WRqOS4gCcsICcxJykucmVwbGFjZSgn5ZGo5LqMJywgJzInKS5yZXBsYWNlKCflkajkuIknLCAnMycpLnJlcGxhY2UoJ+WRqOWbmycsICc0JykucmVwbGFjZSgn5ZGo5LqUJywgJzUnKS5yZXBsYWNlKCflkajlha0nLCAnNicpLnJlcGxhY2UoJ+WRqOaXpScsICcwJylcXG4gICAgcmV0dXJuIHRpdGxlXFxufVxcblxcbmlmIChnZXRNeVZhcigneXNqLmR0JykpIHtcXG4gICAgZXZhbCgndmFyIGpzb249JyArIGdldE15VmFyKCd5c2ouZHQnKSk7XFxufSBlbHNlIHtcXG4gICAgZXZhbCgndmFyIGpzb249JyArIEdldGREYXRhKE1ZKSlcXG59XFxuXFxudmFyIHdlZWsgPSBuZXcgRGF0ZSgpLmdldERheSgpO1xcblxcbnB1dE15VmFyKFxcXCJ3ZWVrXFxcIix3ZWVrKVxcbnZhciBmbCA9IGdldFZhcigneWpzLmZsJykgPyBnZXRWYXIoJ3lqcy5mbCcpIDogZ2V0TXlWYXIoXFxcIndlZWtcXFwiKTtcXG52YXIgdGFicyA9IFtcXFwi5ZGo5LiAXFxcIiwgXFxcIuWRqOS6jFxcXCIsIFxcXCLlkajkuIlcXFwiLCBcXFwi5ZGo5ZubXFxcIiwgXFxcIuWRqOS6lFxcXCIsIFxcXCLlkajlha1cXFwiLCBcXFwi5ZGo5pelXFxcIl07XFxuXFxuXFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdibGFua19ibG9jaydcXG59KVxcbmZvciAodmFyIGkgaW4gdGFicykge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGZsID09IHdlZWtkYXRhKHRhYnNbaV0pID8gJ+KAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9XFxcIiMxOUI4OURcXFwiPicgKyB0YWJzW2ldICsgJzwvZnJvbnQ+PC9zdHJvbmc+JyA6IHRhYnNbaV0sXFxuICAgICAgICB1cmw6ICQoXFxcIlxcXCIpLmxhenlSdWxlKCh0YWIpID0+IHtcXG4gICAgICAgICAgICBwdXRWYXIoJ3lqcy5mbCcsIHRhYik7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICB9LCB3ZWVrZGF0YSh0YWJzW2ldKSksXFxuICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICB9KVxcbn1cXG5cXG5cXG5mb3IgKHZhciBpdCBvZiBqc29uKSB7XFxuICAgIHZhciB3ZCA9IGl0LndkO1xcblxcbiAgICBpZiAoZmw9PSB3ZCkge1xcblxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogaXQubmFtZSArIChpdC5pc25ldyA9PSB0cnVlID8gJ1xcXFx0XFxcXHRcXFxcdOKAmOKAmOKAmeKAmTxmb250IGNvbG9yPVxcXCJyZWRcXFwiPuaWsCE8L2ZvbnQ+JyA6IFxcXCJcXFwiKSxcXG4gICAgICAgICAgICB1cmw6IE1ZICsgJy9pbmRleC5waHAvdm9kL2RldGFpbC9pZC8nICsgaXQuaWQgKyAnLmh0bWwjaW1tZXJzaXZlVGhlbWUjJyxcXG4gICAgICAgICAgIGRlc2M6aXQubmFtZWZvcm5ldyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxuICAgICAgICB9KVxcblxcbiAgICB9XFxuXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5LiA57qn6aG16Z2iXCIsXCJwYXRoXCI6XCJ5aWppXCIsXCJydWxlXCI6XCJ2YXIgZCA9IFtdO1xcblxcbnZhciBNWSA9IE1ZX0hPTUU7XFxuXFxuXFxudmFyIHRhYmwgPSBnZXRNeVZhcigneXNqZG0nLCAn5pyA6L+R5pu05pawJylcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdGFibCA9PSAn5pyA6L+R5pu05pawJyA/ICfigJjigJjigJnigJk8Zm9udCBjb2xvcj1cXFwiIzQ0QkI0NFxcXCI+5pyA6L+R5pu05pawPC9mb250PicgOiAn5pyA6L+R5pu05pawJyxcXG4gICAgICAgIHVybDogJChcXFwiXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIHB1dE15VmFyKCd5c2pkbScsICfmnIDov5Hmm7TmlrAnKVxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICB9KSxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgfSlcXG5cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiB0YWJsID09ICfmr4/lkajmlL7pgIEnID8gJ+KAmOKAmOKAmeKAmTxmb250IGNvbG9yPVxcXCIjNDRCQjQ0XFxcIj7mr4/lkajmlL7pgIE8L2ZvbnQ+JyA6ICfmr4/lkajmlL7pgIEnLFxcbiAgICAgICAgdXJsOiAkKFxcXCJcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ3lzamRtJywgJ+avj+WRqOaUvumAgScpXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgIH0pLFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICB9KVxcblxcblxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRhYmwgPT0gXFxcIuebruW9lVxcXCIgPyAn4oCY4oCY4oCZ4oCZPGZvbnQgY29sb3I9XFxcIiM0NEJCNDRcXFwiPuebruW9lTwvZm9udD4nIDogJ+ebruW9lScsXFxuICAgICAgICB1cmw6ICQoXFxcIlxcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICBwdXRNeVZhcigneXNqZG0nLCAn55uu5b2VJylcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgfSksXFxuICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgIH0pXFxufVxcblxcbmlmICh0YWJsID09IFxcXCLmnIDov5Hmm7TmlrBcXFwiKSB7XFxuICAgIGxldCByZXNDb2RlXzEgPSBmZXRjaChNWSArIFxcXCIvaW5kZXgucGhwL2xhYmVsL3VwZGF0ZS9wYWdlL1xcXCIgKyBNWV9QQUdFICsgXFxcIi5odG1sXFxcIiwge30pO1xcbiAgICBsZXQgbW92aWVzID0gcGFyc2VEb21Gb3JBcnJheShyZXNDb2RlXzEsICcudWxfbGlfYTYmJi5hbmltZV9pY29uMicpO1xcbiAgICBmb3IgKGxldCBpIG9mIG1vdmllcykge1xcblxcblxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogcGFyc2VEb21Gb3JIdG1sKGksICcuYW5pbWVfaWNvbjJfbmFtZSYmVGV4dCcpLFxcbiAgICAgICAgICAgIHVybDogcGFyc2VEb20oaSwgJ2EmJmhyZWYnKSArICcjaW1tZXJzaXZlVGhlbWUjJyxcXG4gICAgICAgICAgICBkZXNjOiBwYXJzZURvbUZvckh0bWwoaSwgJy5hbmltZV9pY29uMV9uYW1lMSYmVGV4dCcpLFxcbiAgICAgICAgICAgIGltZzogTVkgKyBwYXJzZURvbUZvckh0bWwoaSwgJ2ltZyYmc3JjJyksXFxuXFxuICAgICAgICB9KTtcXG4gICAgfVxcbn0gZWxzZSBpZiAodGFibCA9PSBcXFwi5q+P5ZGo5pS+6YCBXFxcIikge1xcbiAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9hbmltZVxcXCIpKS5ydWxlKVxcbn0gZWxzZSB7XFxuXFxuICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL2N1cnJlbnRcXFwiKSkucnVsZSlcXG5cXG59XFxuXFxuXFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5LqM57qn6aG16Z2iXCIsXCJwYXRoXCI6XCJlcmppXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbnZhciBodG1sID0gZ2V0UmVzQ29kZSgpO1xcblxcbnZhciBhcnRzID0gcGFyc2VEb21Gb3JBcnJheShodG1sLCAnLm1lbnUwJiZsaScpO1xcbnZhciB0YWJzID0gW107XFxuXFxuZm9yICh2YXIgaSBpbiBhcnRzKSB7XFxuICAgIHRhYnMucHVzaChwZGZoKGFydHNbaV0sICdUZXh0JykpXFxufVxcblxcbnZhciBjb250cyA9IHBhcnNlRG9tRm9yQXJyYXkoaHRtbCwgJ2JvZHkmJi52aWRlb3VybCcpO1xcbnZhciBsaXN0cyA9IFtdO1xcbmZvciAodmFyIGkgaW4gY29udHMpIHtcXG4gICAgbGlzdHMucHVzaChwYXJzZURvbUZvckFycmF5KGNvbnRzW2ldLCAndWwmJmxpJykpXFxufVxcblxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL2xhenlcXFwiKSkucnVsZSlcXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuYmFzZWJsb2NrMiYmbGksLTImJlRleHQnKSArICdcXFxcbicgKyBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5iYXNlYmxvY2syJiZsaSwtNSYmVGV4dCcpICsgJ1xcXFxuJyArIHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLmJhc2VibG9jazImJmxpLC0zJiZUZXh0JyksXFxuICAgIGRlc2M6IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLmJhc2VibG9jazImJmxpLC02JiZUZXh0JyksXFxuICAgIHBpY191cmw6IHBhcnNlRG9tKGh0bWwsICcuYmFzZWJsb2NrJiZpbWcmJnNyYycpLFxcbiAgICB1cmw6IE1ZX1VSTCxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJ1xcbn0pO1xcbnZhciBDb2xvciA9IFxcXCIjZjEzYjY2YVxcXCI7XFxudmFyIENvbG9yMSA9IFxcXCIjMDk4QUMxXFxcIjtcXG5cXG5mdW5jdGlvbiBnZXRIZWFkKHRpdGxlKSB7XFxuICAgIHJldHVybiAn4oCY4oCY4oCZ4oCZPGZvbnQgY29sb3I9XFxcIicgKyBDb2xvciArICdcXFwiPicgKyB0aXRsZSArICc8L2Zyb250Pic7XFxufVxcbmxldCBsaW5lX21vZGVsID0gODtcXG5sZXQgbGluZV90eXBlX21vZGVsID0gJ2JsYW5rX2Jsb2NrJztcXG5cXG5cXG5cXG52YXIgZGVzYyA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLmRldGFpbF9pbWZvcm1fZGVzY19wcmUmJlRleHQnKS5yZXBsYWNlKCfmlLbotbcnLCAnJyk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfigJjigJjigJnigJk8c21hbGw+PGZvbnQgY29sb3I9XFxcIiNmZjE0OGU4ZVxcXCI+IOeugOS7i++8micgKyBkZXNjLnN1YnN0cigwLCA0NSkucmVwbGFjZSgn6K+m5oOF77yaJywgJycpICsgJy4uLjwvZm9udD48c21hbGw+PGZvbnQgY29sb3I9XFxcInJlZFxcXCI+5p+l55yL6K+m5oOFPC9mb250Pjwvc21hbGw+PC9zbWFsbD4nLFxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5I+WKqOa8q+eugOS7i++8mlxcXFxuXFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0JyArIGRlc2MgKyBgQHJ1bGU9anM6dmFyIHJlcyA9IHt9OyB2YXIgZCA9IFtdO2QucHVzaCh7dGl0bGU6TVlfVVJMLnNwbGl0KCdoaWtlcjovL2VtcHR5IycpWzFdLGNvbF90eXBlOidsb25nX3RleHQnfSk7cmVzLmRhdGEgPSBkOyBzZXRIb21lUmVzdWx0KHJlcyk7YCxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxufSk7XFxuZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lX21vZGVsOyBpKyspIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiBsaW5lX3R5cGVfbW9kZWxcXG4gICAgfSlcXG59XFxuXFxuZnVuY3Rpb24gc2V0VGFicyh0YWJzLCB2YXJpKSB7XFxuICAgIGZvciAodmFyIGkgaW4gdGFicykge1xcbiAgICAgICAgdmFyIHVybCA9IFxcXCIjbm9Mb2FkaW5nI0BsYXp5UnVsZT0uanM6cHV0VmFyKCdcXFwiICsgdmFyaSArIFxcXCInLCAnXFxcIiArIGkgKyBcXFwiJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSc7JyNub0hpc3RvcnkjaGlrZXI6Ly9lbXB0eSdcXFwiO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZ2V0VmFyKHZhcmksICcwJykgPT0gaSA/IGdldEhlYWQodGFic1tpXSkgOiB0YWJzW2ldLFxcbiAgICAgICAgICAgIHVybDogdXJsLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgICAgIH0pXFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXG4gICAgfSlcXG59XFxuXFxuZnVuY3Rpb24gc2V0TGlzdHMobGlzdHMsIGluZGV4KSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxuICAgIH0pXFxufVxcbmlmIChnZXRWYXIoJ3Noc29ydCcpID09ICcxJykge1xcbiAgICB2YXIgc3ggPSAn4oCY4oCY4oCZ4oCZPGZvbnQgY29sb3I9XFxcIiMwYWEzNDRcXFwiPuaOkuW6jzwvZm9udD48L3NtYWxsPicgKyAnPHNtYWxsPjxmb250IGNvbG9yPVxcXCIjZmY0YzAwXFxcIj7ihpE8L2ZvbnQ+PC9zbWFsbD4nICsgJzxzbWFsbD48Zm9udCBjb2xvcj1cXFwiIzBhYTM0NFxcXCI+4oaTPC9mb250Pjwvc21hbGw+JztcXG59IGVsc2Uge1xcbiAgICB2YXIgc3ggPSAn4oCY4oCY4oCZ4oCZPGZvbnQgY29sb3I9XFxcIiMwYWEzNDRcXFwiPuaOkuW6jzwvZm9udD48L3NtYWxsPicgKyAnPHNtYWxsPjxmb250IGNvbG9yPVxcXCIjZmY0YzAwXFxcIj7ihpM8L2ZvbnQ+PC9zbWFsbD4nICsgJzxzbWFsbD48Zm9udCBjb2xvcj1cXFwiIzBhYTM0NFxcXCI+4oaRPC9mb250Pjwvc21hbGw+JztcXG59XFxuXFxuZnVuY3Rpb24gc2V0TGlzdHMobGlzdHMsIGluZGV4KSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxzcGFuIHN0eWxlPVxcXCJjb2xvcjonICsgQ29sb3IxICsgJ1xcXCI+PHNtYWxsPumAiembhuWIl+ihqDwvc21hbGw+JyArICdcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHQ8c3BhbiBzdHlsZT1cXFwiZmxvYXQ6cmlnaHRcXFwiPicgKyAnPHNtYWxsPicgKyBzeCArICc8L3NtYWxsPicsXFxuICAgICAgICB1cmw6IGAjbm9Mb2FkaW5nI0BsYXp5UnVsZT0uanM6bGV0IGNvbmYgPSBnZXRWYXIoJ3Noc29ydCcpO2lmKGNvbmY9PScxJyl7cHV0VmFyKHtrZXk6J3Noc29ydCcsIHZhbHVlOicwJ30pO31lbHNle3B1dFZhcih7a2V5OidzaHNvcnQnLCB2YWx1ZTonMSd9KX07cmVmcmVzaFBhZ2UoKTsndG9hc3Q6Ly/liIfmjaLmjpLluo/miJDlip8nOycjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknYCxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXG4gICAgfSlcXG4gICAgdmFyIGxpc3QgPSBsaXN0c1tpbmRleF07XFxuXFxuICAgIGlmIChnZXRWYXIoJ3Noc29ydCcpID09ICcxJykge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gbGlzdC5sZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBhcnNlRG9tRm9ySHRtbChsaXN0W2pdLCAnYSYmVGV4dCcpLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHBhcnNlRG9tKGxpc3Rbal0sICdhJiZocmVmJykgKyBsYXp5LFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGxpc3QubGVuZ3RoID4gNCA/ICd0ZXh0XzUnIDogJ3RleHRfMicsXFxuZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1J1bGVzOiBbICcuYXZpJywgJy4zZ3AnLCAnLm1wZWcnLCAnLndtdicsICcubW92JywgJy5ybXZiJywgJy5naWYnLCAnLmpwZycsICcuanBlZycsICcucG5nJywgJy5pY28nLCAnLnN2ZyddLFxcbiAgICAgICAgIHJlZmVyZXI6IHBhcnNlRG9tKGxpc3Rbal0sICdhJiZocmVmJylcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+ayoeaciemAiembhuWTn++8jOS4jeS/oeeCueWbvueJh+WOu+eci+eci/CfkYAnLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBhcnNlRG9tRm9ySHRtbChsaXN0W2pdLCAnYSYmVGV4dCcpLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHBhcnNlRG9tKGxpc3Rbal0sICdhJiZocmVmJykgKyBsYXp5LFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGxpc3QubGVuZ3RoID4gNCA/ICd0ZXh0XzUnIDogJ3RleHRfMicsXFxuICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tSdWxlczogWyAnLmF2aScsICcuM2dwJywgJy5tcGVnJywgJy53bXYnLCAnLm1vdicsICcucm12YicsICcuZ2lmJywgJy5qcGcnLCAnLmpwZWcnLCAnLnBuZycsICcuaWNvJywgJy5zdmcnXSxcXG4gICByZWZlcmVyOiBwYXJzZURvbShsaXN0W2pdLCAnYSYmaHJlZicpXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmsqHmnInpgInpm4blk5/vvIzkuI3kv6Hngrnlm77niYfljrvnnIvnnIvwn5GAJyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcblxcbiAgICB9XFxufVxcbnNldFRhYnModGFicywgTVlfVVJMKTtcXG5zZXRMaXN0cyhsaXN0cywgZ2V0VmFyKE1ZX1VSTCwgJzAnKSk7XFxuXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICc8YnI+JyxcXG4gICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxufSk7XFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pCc57SiXCIsXCJwYXRoXCI6XCJzb3VcIixcInJ1bGVcIjpcInZhciBkPSBbXTtcXG4gICAgdmFyIHVybD1NWV9IT01FK1xcXCIvaW5kZXgucGhwL3ZvZC9zZWFyY2guaHRtbD93ZD1cXFwiK2tleStcXFwiJnBhZ2U9XFxcIitwYWdlO1xcbiAgICB2YXIgbW92aWVzID0gcGFyc2VEb21Gb3JBcnJheShyZXF1ZXN0KHVybCksICcuYmxvY2tjb250ZW50MSYmLmNlbGwnKTtcXG4gICAgZm9yIChsZXQgaSBvZiBtb3ZpZXMpIHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IHBhcnNlRG9tRm9ySHRtbChpLCAnLmNlbGxfaW1mb3JtJiYuY2VsbF9pbWZvcm1fbmFtZSYmVGV4dCcpLFxcbiAgICAgICAgICAgIHVybDpwYXJzZURvbShpLCAnYSYmaHJlZicpKyAnI2ltbWVyc2l2ZVRoZW1lIycsXFxuICAgICAgICAgICAgZGVzYzogcGFyc2VEb21Gb3JIdG1sKGksICcubmV3bmFtZSYmVGV4dCcpLFxcbiAgICAgICAgICAgIGltZzpNWV9IT01FKyBwYXJzZURvbUZvckh0bWwoaSwgJ2ltZyYmc3JjJyksXFxuICAgICAgICAgICAgY29udGVudDogcGFyc2VEb21Gb3JIdG1sKGksICcuY2VsbF9pbWZvcm1fa3ZfZGVzYyYmVGV4dCcpLFxcbiAgICAgICAgICAgXFxuICAgICAgICB9KTtcXG4gICAgfVxcblxcbiAgICBzZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLliqjmgIHop6PmnpBcIixcInBhdGhcIjpcImxhenlcIixcInJ1bGVcIjpcInZhciBsYXp5ID0gJChcXFwiXFxcIikubGF6eVJ1bGUoKG15KSA9PiB7XFxuXFxuICAgIHZhciBwbGF5ZXIgPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pO1xcbiAgICB2YXIgdXJsID0gcGxheWVyLnVybDtcXG4gICAgdmFyIGZyb20gPSBwbGF5ZXIuZnJvbTtcXG4gICAgaWYgKHVybC5tYXRjaCgvbTN1OHxtcDQvKSkge1xcbiAgICAgICAgcmV0dXJuIHVybFxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgZXZhbChmZXRjaChteSArIFxcXCIvc3RhdGljL2pzL3BsYXllcmNvbmZpZy5qc1xcXCIpKTtcXG5cXG4gICAgICAgIHZhciBqeCA9IE1hY1BsYXllckNvbmZpZy5wbGF5ZXJfbGlzdFtmcm9tXS5wYXJzZTtcXG5cXG4gICAgICAgIGlmIChqeCA9PSAnJykge1xcbiAgICAgICAgICAgIGp4ID0gTWFjUGxheWVyQ29uZmlnLnBhcnNlXFxuICAgICAgICB9O1xcbiAgICAgICAgaWYgKGp4LnN0YXJ0c1dpdGgoXFxcIi9cXFwiKSkge1xcbiAgICAgICAgICAgIGp4ID0gXFxcImh0dHBzOlxcXCIgKyBqeDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9jb2RlLmFsaXl1bi5jb20vbHprMjM1NTkvUHVibGljUnVsZS9yYXcvbWFzdGVyL3g1cnVsZS5qcycsIDI0KTtcXG4gICAgICAgIHJldHVybiB4NXJ1bGUoanggKyB1cmwsIGlucHV0KTtcXG4gICAgfVxcbn0sIE1ZX0hPTUUpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5paw5LiA57qnXCIsXCJwYXRoXCI6XCJ4aW55aWppXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbnZhciBnZXRSYW5nZUNvbG9ycyA9IGZ1bmN0aW9uKCkge8KgwqDCoMKgwqDCoMKgXFxuICAgIHJldHVybiAnIycgKyAoJzAwMDAwJyArIChNYXRoLnJhbmRvbSgpICogMHgxMDAwMDAwIDw8IDApLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC02KTvCoMKgwqDCoMKgXFxufVxcbmNvbnN0IOWIhuexu+minOiJsiA9IGdldFJhbmdlQ29sb3JzKClcXG5jb25zdCDlpKfnsbvlrprkvY0gPSAnYm9keSYmLnNjcmVlbl9saXN0J1xcbmNvbnN0IOaLvOaOpeWIhuexuyA9ICcnXFxuY29uc3Qg5bCP57G75a6a5L2NID0gJ2JvZHkmJmEnXFxuY29uc3Qg5YiG57G75qCH6aKYID0gJ2EmJlRleHQnXFxuY29uc3Qg5YiG57G76ZO+5o6lID0gJ2EmJmhyZWYnXFxuXFxuXFxuXFxudmFyIE0gPSBNWV9VUkwuc3BsaXQoJyMjJyk7XFxuXFxubGV0IHRydWVfdXJsID0gZ2V0VmFyKE1ZX1JVTEUudXJsLCdodHRwOi8veXNqZG0ubmV0L2luZGV4LnBocC92b2Qvc2hvdy9pZC8yMC5odG1sJylcXG5jb25zdCBwYWdlID0gTVsyXTtcXG5cXG4gICAgdHJ1ZV91cmwgPSB0cnVlX3VybC5yZXBsYWNlKCcuaHRtbCcsICcvcGdlLycrcGFnZSsnLmh0bWwnKVxcblxcblxcblxcbnZhciBodG1sID0gZmV0Y2godHJ1ZV91cmwsIHtcXG4gICAgaGVhZGVyczoge1xcbiAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCknXFxuICAgIH1cXG59KVxcblxcbmNvbnN0IGVtcHR5ID0gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuXFxudHJ5IHtcXG4gICAgdmFyIGNhdGVnb3JpZXMgPSBwZGZhKGh0bWwsIOWkp+exu+WumuS9jSkuY29uY2F0KHBkZmEoaHRtbCwg5ou85o6l5YiG57G7KSlcXG59IGNhdGNoIChlKSB7XFxuICAgIHZhciBjYXRlZ29yaWVzID0gcGRmYShodG1sLCDlpKfnsbvlrprkvY0pXFxufVxcblxcbmxldCBpbml0X2NhdGUgPSBbXTtcXG5mb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcXG4gICAgaW5pdF9jYXRlLnB1c2goXFxcIjBcXFwiKVxcbn1cXG5cXG5jb25zdCBmb2xkID0gZ2V0VmFyKE1ZX1JVTEUuZ3JvdXAsIFxcXCIwXFxcIilcXG5jb25zdCBjYXRlX3RlbXBfanNvbiA9IGdldFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUpKVxcbmNvbnN0IGNhdGVfdGVtcCA9IEpTT04ucGFyc2UoY2F0ZV90ZW1wX2pzb24pXFxuXFxuXFxuXFxuXFxuaWYgKHBhcnNlSW50KHBhZ2UpID09PSAxKSB7XFxuXFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogZm9sZCA9PT0gJzEnID8gJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVxcXCJjb2xvcjogIzE5Qjg5RFxcXCI+OiAoPC9zcGFuPjwvYj4nIDogJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVxcXCJjb2xvcjogIzkxMDExM1xcXCI+OiApPC9zcGFuPjwvYj4nLFxcbiAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKGZvbGQpID0+IHtcXG4gICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS5ncm91cCwgZm9sZCA9PT0gJzEnID8gJzAnIDogJzEnKTtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgfSwgZm9sZCksXFxuICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcbiAgICB9KVxcblxcbiAgICBjYXRlZ29yaWVzLmZvckVhY2goKGNhdGVnb3J5LCBpbmRleCkgPT4ge1xcbiAgICAgICAgbGV0IHN1Yl9jYXRlZ29yaWVzID0gcGRmYShjYXRlZ29yeSwg5bCP57G75a6a5L2NKTtcXG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0sIGtleSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKGl0ZW0sIOWIhuexu+agh+mimClcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXkudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2luZGV4XSA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICcgKyDliIbnsbvpopzoibIgKyAnXFxcIj4nICsgdGl0bGUgKyAnPC9zcGFuPjwvYj4nIDogdGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQocGQoaXRlbSwg5YiG57G76ZO+5o6lKSArICcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X2NhdGUgPSBbXVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlX3RlbXAuZm9yRWFjaCgoY2F0ZSwgaW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2NhdGUucHVzaChpbmRleCA9PT0gMCA/IHBhcmFtcy5rZXkudG9TdHJpbmcoKSA6IFxcXCIwXFxcIilcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShuZXdfY2F0ZSkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudXJsLCBpbnB1dClcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlX3RlbXA6IGNhdGVfdGVtcCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYWdlLFxcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCJcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0gZWxzZSBpZiAoZm9sZCA9PT0gJzEnKSB7XFxuICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXMuZm9yRWFjaCgoaXRlbSwga2V5KSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IHBkZmgoaXRlbSwg5YiG57G75qCH6aKYKVxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGtleS50b1N0cmluZygpID09PSBjYXRlX3RlbXBbaW5kZXhdID8gJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVxcXCJjb2xvcjogJyArIOWIhuexu+minOiJsiArICdcXFwiPicgKyB0aXRsZSArICc8L3NwYW4+PC9iPicgOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChwZChpdGVtLCDliIbnsbvpk77mjqUpICsgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlX3RlbXBbcGFyYW1zLmluZGV4XSA9IHBhcmFtcy5rZXkudG9TdHJpbmcoKVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShwYXJhbXMuY2F0ZV90ZW1wKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS51cmwsIGlucHV0KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVfdGVtcDogY2F0ZV90ZW1wLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYWdlLFxcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCJcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgfSlcXG59XFxuXFxuXFxuXFxuXFxudmFyIGxpc3QgPSBwYXJzZURvbUZvckFycmF5KGh0bWwsICcudm9kbGlzdCYmbGknKTtcXG5mb3IgKHZhciBpIGluIGxpc3QpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBwYXJzZURvbUZvckh0bWwobGlzdFtpXSwgJ2EmJnRpdGxlJyksXFxuICAgICAgICBpbWc6IHBhcnNlRG9tKGxpc3RbaV0sICdhJiZkYXRhLW9yaWdpbmFsJyksXFxuICAgICAgICBkZXNjOiBwYXJzZURvbUZvckh0bWwobGlzdFtpXSwgJy5waWNfdGV4dCYmVGV4dCcpLFxcblxcbiAgICAgICAgdXJsOiBwYXJzZURvbShsaXN0W2ldLCAnYSYmaHJlZicpKycjaW1tZXJzaXZlVGhlbWUjJ1xcbiAgICB9KVxcbn1cXG5cXG5pZiAobGlzdC5sZW5ndGggPT0gMCkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLigJzigJzliLDlupXkuoblkaLigJ3igJ1cXFwiLFxcbiAgICAgICAgZGVzYzogJ+eCueWHu+i/lOWbnummlumhtScsXFxuICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICBjbGVhclZhcihcXFwiTXlrZXlcXFwiKVxcbiAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgIH0pLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIlxcbiAgICB9KTtcXG59XFxuXFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5paw5LqM57qnXCIsXCJwYXRoXCI6XCJ4aW5lcmppXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbnZhciBodG1sID0gZ2V0UmVzQ29kZSgpO1xcblxcbnZhciBhcnRzID0gcGFyc2VEb21Gb3JBcnJheShodG1sLCcjTnVtVGFiJiZhJyk7XFxudmFyIHRhYnMgPSBbXTtcXG5mb3IgKHZhciBpIGluIGFydHMpIHtcXG4gICAgdGFicy5wdXNoKHBhcnNlRG9tRm9ySHRtbChhcnRzW2ldLCAnYSYmYWx0JykpXFxufVxcblxcbnZhciBjb250cyA9IHBhcnNlRG9tRm9yQXJyYXkoaHRtbCwgJ2JvZHkmJi5jb250ZW50X3BsYXlsaXN0Om5vdCgubGlzdF9zY3JvbGwpJyk7XFxudmFyIGxpc3RzID1bXTtcXG5mb3IgKHZhciBpIGluIGNvbnRzKSB7XFxuICAgIGxpc3RzLnB1c2gocGFyc2VEb21Gb3JBcnJheShjb250c1tpXSwgJ3VsJiZsaScpKVxcbn1cXG5cXG5cXG52YXIgbGF6eT0kKFxcXCJcXFwiKS5sYXp5UnVsZSgoKT0+e1xcbnZhciB1cmw9SlNPTi5wYXJzZShyZXF1ZXN0KGlucHV0KS5tYXRjaCgvciBwbGF5ZXJfLio/PSguKj8pPC8pWzFdKS51cmxcXG5yZXR1cm4gdXJsXFxufSlcXG5cXG5cXG5kLnB1c2goe1xcbiAgICB0aXRsZTogcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuZGF0YSYmVGV4dCcpLnJlcGxhY2UoJ+WcsOWMuicsJ1xcXFxu5Zyw5Yy6JykucmVwbGFjZSgn57G75Z6LJywnXFxcXG7nsbvlnosnKSxcXG4gICAgZGVzYzogcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuZGF0YSwxJiZUZXh0JyksXFxuICAgIHBpY191cmw6IHBhcnNlRG9tKGh0bWwsICcubGF6eWxvYWQmJmRhdGEtb3JpZ2luYWwnKSxcXG4gICAgdXJsOiBNWV9VUkwsXFxuICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cidcXG59KTtcXG52YXIgQ29sb3IgPSBcXFwiI2YxM2I2NmFcXFwiO1xcbnZhciBDb2xvcjEgPSBcXFwiIzA5OEFDMVxcXCI7XFxuZnVuY3Rpb24gZ2V0SGVhZCh0aXRsZSkge1xcbiAgICByZXR1cm4gJ+KAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9XFxcIicgKyBDb2xvciArICdcXFwiPicgKyB0aXRsZSArICc8L2Zyb250Pjwvc3Ryb25nPic7XFxufVxcbmxldCBsaW5lX21vZGVsID0gODtcXG5sZXQgbGluZV90eXBlX21vZGVsID0gJ2JsYW5rX2Jsb2NrJztcXG5cXG5cXG5cXG52YXIgZGVzYyA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCAnLmNvbnRlbnRfZGVzYyYmVGV4dCcpLnJlcGxhY2UoJ+aUtui1tycsJycpO1xcbmQucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxzbWFsbD48Zm9udCBjb2xvcj1cXFwiI2ZmMTQ4ZThlXFxcIj4g566A5LuL77yaJytkZXNjLnN1YnN0cigwLCA0NSkucmVwbGFjZSgn6K+m5oOF77yaJywnJykgKyAnLi4uPC9mb250PjxzbWFsbD48Zm9udCBjb2xvcj1cXFwicmVkXFxcIj7mn6XnnIvor6bmg4U8L2ZvbnQ+PC9zbWFsbD48L3NtYWxsPicsXFxuICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHkjJyArIGRlc2MrIGBAcnVsZT1qczp2YXIgcmVzID0ge307IHZhciBkID0gW107ZC5wdXNoKHt0aXRsZTpNWV9VUkwuc3BsaXQoJ2hpa2VyOi8vZW1wdHkjJylbMV0sY29sX3R5cGU6J2xvbmdfdGV4dCd9KTtyZXMuZGF0YSA9IGQ7IHNldEhvbWVSZXN1bHQocmVzKTtgLFxcbiAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICB9KTtcXG5mb3IgKGxldCBpID0gMDsgaSA8IGxpbmVfbW9kZWw7IGkrKykge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IGxpbmVfdHlwZV9tb2RlbFxcbiAgICB9KVxcbn1cXG5mdW5jdGlvbiBzZXRUYWJzKHRhYnMsIHZhcmkpIHtcXG4gICAgZm9yICh2YXIgaSBpbiB0YWJzKSB7XFxuICAgICAgICB2YXIgdXJsID0gXFxcIiNub0xvYWRpbmcjQGxhenlSdWxlPS5qczpwdXRWYXIoJ1xcXCIgKyB2YXJpICsgXFxcIicsICdcXFwiICsgaSArIFxcXCInKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJzsnI25vSGlzdG9yeSNoaWtlcjovL2VtcHR5J1xcXCI7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBnZXRWYXIodmFyaSwgJzAnKSA9PSBpID8gZ2V0SGVhZCh0YWJzW2ldKSA6IHRhYnNbaV0sXFxuICAgICAgICAgICAgdXJsOiB1cmwsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICAgICAgfSlcXG4gICAgfVxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICB9KVxcbn1cXG5mdW5jdGlvbiBzZXRMaXN0cyhsaXN0cywgaW5kZXgpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXG4gICAgfSlcXG59XFxuaWYgKGdldFZhcignc2hzb3J0JykgPT0gJzEnKSB7XFxuICAgIHZhciBzeCA9ICfigJjigJjigJnigJk8Zm9udCBjb2xvcj1cXFwiIzBhYTM0NFxcXCI+5o6S5bqPPC9mb250Pjwvc21hbGw+JyArICc8c21hbGw+PGZvbnQgY29sb3I9XFxcIiNmZjRjMDBcXFwiPuKGkTwvZm9udD48L3NtYWxsPicgKyAnPHNtYWxsPjxmb250IGNvbG9yPVxcXCIjMGFhMzQ0XFxcIj7ihpM8L2ZvbnQ+PC9zbWFsbD4nO1xcbn0gZWxzZSB7XFxuICAgIHZhciBzeCA9ICfigJjigJjigJnigJk8Zm9udCBjb2xvcj1cXFwiIzBhYTM0NFxcXCI+5o6S5bqPPC9mb250Pjwvc21hbGw+JyArICc8c21hbGw+PGZvbnQgY29sb3I9XFxcIiNmZjRjMDBcXFwiPuKGkzwvZm9udD48L3NtYWxsPicgKyAnPHNtYWxsPjxmb250IGNvbG9yPVxcXCIjMGFhMzQ0XFxcIj7ihpE8L2ZvbnQ+PC9zbWFsbD4nO1xcbn1cXG5mdW5jdGlvbiBzZXRMaXN0cyhsaXN0cywgaW5kZXgpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNwYW4gc3R5bGU9XFxcImNvbG9yOicgKyBDb2xvcjEgKyAnXFxcIj48c21hbGw+6YCJ6ZuG5YiX6KGoPC9zbWFsbD4nICsgJ1xcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdDxzcGFuIHN0eWxlPVxcXCJmbG9hdDpyaWdodFxcXCI+JyArICc8c21hbGw+JyArIHN4ICsgJzwvc21hbGw+JyxcXG4gICAgICAgIHVybDogYCNub0xvYWRpbmcjQGxhenlSdWxlPS5qczpsZXQgY29uZiA9IGdldFZhcignc2hzb3J0Jyk7aWYoY29uZj09JzEnKXtwdXRWYXIoe2tleTonc2hzb3J0JywgdmFsdWU6JzAnfSk7fWVsc2V7cHV0VmFyKHtrZXk6J3Noc29ydCcsIHZhbHVlOicxJ30pfTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WIh+aNouaOkuW6j+aIkOWKnyc7JyNub0hpc3RvcnkjaGlrZXI6Ly9lbXB0eSdgLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICB9KVxcbiAgICB2YXIgbGlzdCA9IGxpc3RzW2luZGV4XTtcXG5cXG4gICAgaWYgKGdldFZhcignc2hzb3J0JykgPT0gJzEnKSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIGZvciAodmFyIGogPSBsaXN0Lmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGFyc2VEb21Gb3JIdG1sKGxpc3Rbal0sICdhJiZUZXh0JykucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogcGFyc2VEb20obGlzdFtqXSwgJ2EmJmhyZWYnKStsYXp5LFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGxpc3QubGVuZ3RoID4gNCA/ICd0ZXh0XzUnIDogJ3RleHRfMidcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5rKh5pyJ6YCJ6ZuG5ZOf77yM5LiN5L+h54K55Zu+54mH5Y6755yL55yL8J+RgCcsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGFyc2VEb21Gb3JIdG1sKGxpc3Rbal0sICdhJiZUZXh0JykucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogcGFyc2VEb20obGlzdFtqXSwgJ2EmJmhyZWYnKStsYXp5ICxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBsaXN0Lmxlbmd0aCA+IDQgPyAndGV4dF81JyA6ICd0ZXh0XzInXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+ayoeaciemAiembhuWTn++8jOS4jeS/oeeCueWbvueJh+WOu+eci+eci/CfkYAnLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuXFxuICAgIH1cXG59XFxuc2V0VGFicyh0YWJzLCBNWV9VUkwpO1xcbnNldExpc3RzKGxpc3RzLCBnZXRWYXIoTVlfVVJMLCAnMCcpKTtcXG5cXG5kLnB1c2goe3RpdGxlOiAnPGJyPicsIGNvbF90eXBlOiAncmljaF90ZXh0J30pO1xcblxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaWsOaQnOe0olwiLFwicGF0aFwiOlwieGluc291XCIsXCJydWxlXCI6XCJ2YXIgZD0gW107XFxudmFyIHVybD1NWV9IT01FK1xcXCIvaW5kZXgucGhwL3ZvZC9zZWFyY2gvcGFnZS9cXFwiK3BhZ2UrXFxcIi93ZC9cXFwiK2tleStcXFwiLmh0bWxcXFwiXFxuICAgIHZhciByZXMgPSByZXF1ZXN0KHVybClcXG4gICAgdmFyIG1vdmllcyA9IHBhcnNlRG9tRm9yQXJyYXkocmVzLCAnLnZvZGxpc3QmJmxpJyk7XFxuICAgIGZvciAobGV0IGkgb2YgbW92aWVzKSB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBwYXJzZURvbUZvckh0bWwoaSwgJ2EmJnRpdGxlJyksXFxuICAgICAgICAgICAgdXJsOnBhcnNlRG9tKGksICdhJiZocmVmJykrICcjaW1tZXJzaXZlVGhlbWUjJyxcXG4gICAgICAgICAgICBkZXNjOiBwYXJzZURvbUZvckh0bWwoaSwgJy5waWNfdGV4dCYmVGV4dCcpLFxcbiAgICAgICAgICAgIGltZzpNWV9IT01FKyBwYXJzZURvbUZvckh0bWwoaSwgJ2EmJmRhdGEtb3JpZ2luYWwnKSxcXG4gICAgICAgICAgICBjb250ZW50OiBwYXJzZURvbUZvckh0bWwoaSwgJ3AsLTEmJlRleHQnKSxcXG4gICAgICAgICAgIFxcbiAgICAgICAgfSk7XFxuICAgIH1cXG5cXG4gICAgc2V0UmVzdWx0KGQpO1wifV0iLCJpY29uIjoiaHR0cDovL3lzamRtLm5ldC90ZW1wbGF0ZS8yM3MvaW1nL2xvZ28ucG5nIn0=
Add Comment
Please, Sign In to add comment