Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥♥管理-V2.7@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIumFjee9ruWPguaVsFwiLFwicGF0aFwiOlwiY29uZmlnXCIsXCJydWxlXCI6XCJqczpcXG4kLmV4cG9ydHMudmVyc2lvbiA9IDE1O1xcbiQuZXhwb3J0cy7kvp3otZYgPSBnZXRJdGVtKCfkvp3otZYnLCAnaHR0cHM6Ly9yYXcuZ2l0Y29kZS5jb20vc3JjNDg1OTc5NjIvanV5aW5nL3Jhdy9tYXN0ZXIvU3JjSnV5aW5nLmpzJyk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkupHlj6Pku6Tlr7zlhaVcIixcInBhdGhcIjpcImltcG9ydFwiLFwicnVsZVwiOlwianM6XFxuZnVuY3Rpb24gY2xvdWRpbXBvcnQoKSB7XFxuICAgIGxldCBKWUNvZGUgPSBmZXRjaChcXFwiaGlrZXI6Ly9ob21lQOiBmuW9sVxcXCIpO1xcbiAgICBpZiAoSllDb2RlKSB7XFxuICAgICAgICB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvX2NhY2hlL0p1eWluZzIvY2xvdWRpbXBvcnQudHh0XFxcIiwgaW5wdXQpO1xcbiAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL3BhZ2UvaW1wb3J0Q29uZmlybSNmdWxsVGhlbWUjI25vUmVjb3JkSGlzdG9yeSMjbm9IaXN0b3J5Iz9ydWxlPeiBmuW9sVxcXCJcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/msqHmnInogZrlvbHlsI/nqIvluo/vvIzopoHmmK/mlrDniYjlk6ZcXFwiO1xcbiAgICB9XFxufVxcbiQuZXhwb3J0cyA9IGNsb3VkaW1wb3J0KCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLku6PnkIbnrqHnkIZcIixcInBhdGhcIjpcImdocHJveHlcIixcInJ1bGVcIjpcImpzOlxcbmxldCBjZmdmaWxlID0gXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvU3JjL0p1eWluZzIvY29uZmlnLmpzb25cXFwiO1xcbmxldCBKdWNvbmZpZyA9IHt9O1xcbmxldCBKdWNmZyA9IGZldGNoKGNmZ2ZpbGUpO1xcbmlmIChKdWNmZyAhPSBcXFwiXFxcIikge1xcbiAgICBldmFsKFxcXCJKdWNvbmZpZz1cXFwiICsgSnVjZmcgKyBcXFwiO1xcXCIpO1xcbn1cXG5sZXQgcHJveHlsaXN0ID0gSnVjb25maWdbJ2docHJveHknXSB8fCBbXTtcXG5cXG5mdW5jdGlvbiBnZXRwcm94eSgpIHtcXG4gICAgcmV0dXJuIHByb3h5bGlzdC5maWx0ZXIodiA9PiAhdi5zdG9wKS5tYXAoaXQgPT4gaXQudXJsKTtcXG59XFxuXFxuZnVuY3Rpb24gc2V0cHJveHkoaW5wdXQsIHp0KSB7XFxuICAgIGlucHV0ID0gaW5wdXQudHJpbSgpO1xcbiAgICBpZiAoaW5wdXQpIHtcXG4gICAgICAgIGxldCBpbmRleCA9IHByb3h5bGlzdC5maW5kSW5kZXgoaXQgPT4gaXQudXJsID09IGlucHV0KTtcXG4gICAgICAgIGlmIChpbmRleCA9PSAtMSkge1xcbiAgICAgICAgICAgIHByb3h5bGlzdC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdXJsOiBpbnB1dFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfSBlbHNlIGlmICh6dCA9PSAxKSB7XFxuICAgICAgICAgICAgZGVsZXRlIHByb3h5bGlzdFtpbmRleF0uc3RvcDtcXG4gICAgICAgIH0gZWxzZSBpZiAoenQgPT0gMCkge1xcbiAgICAgICAgICAgIHByb3h5bGlzdFtpbmRleF0uc3RvcCA9IDE7XFxuICAgICAgICB9IGVsc2UgaWYgKHp0ID09IDIpIHtcXG4gICAgICAgICAgICBwcm94eWxpc3QgPSBwcm94eWxpc3QuZmlsdGVyKHYgPT4gdi51cmwgIT0gaW5wdXQpO1xcbiAgICAgICAgfVxcbiAgICAgICAgSnVjb25maWdbJ2docHJveHknXSA9IHByb3h5bGlzdDtcXG4gICAgICAgIHdyaXRlRmlsZShjZmdmaWxlLCBKU09OLnN0cmluZ2lmeShKdWNvbmZpZykpO1xcbiAgICB9XFxufVxcblxcbmZ1bmN0aW9uIHByb3h5UGFnZSgpIHtcXG4gICAgc2V0UGFnZVRpdGxlKCflkK/liqjku6PnkIbnrqHnkIYnKTtcXG4gICAgbGV0IGQgPSBbXTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBnZXRwcm94eSgpLmxlbmd0aD09MD8n6ZyA6KaBZ2l0aHVi5Luj55CG5p2l6I635Y+W5Luj56CB77yM54K55Ye75p2l5Liq5L6L5a2QJzon6YCJ5oup5Luj56CB5bqT6I635Y+W5pa55byPJyxcXG4gICAgICAgIGRlc2M6ICfmnInku6PnkIbvvJonICsgcHJveHlsaXN0Lmxlbmd0aCArICfvvIzmnInmlYjnmoTvvJonICsgZ2V0cHJveHkoKS5sZW5ndGgsXFxuICAgICAgICB1cmw6IGdldHByb3h5KCkubGVuZ3RoPT0wPyQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIGV2YWwocmMoZ2V0SXRlbSgn5L6d6LWWJywgJ2h0dHBzOi8vcmF3LmdpdGNvZGUuY29tL3NyYzQ4NTk3OTYyL2p1eWluZy9yYXcvbWFzdGVyL3BsdWdpbnMvZ2hwcm94eS5qcycpLDI0KSk7XFxuICAgICAgICAgICAgbGV0IGdocHJveHkgPSBnZXRwcm94eShwcm94eXMpO1xcbiAgICAgICAgICAgIGlmKGdocHJveHkpe1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcignZ2V0X2docHJveHknLGdocHJveHkpO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mnaXkuobvvIzngrnmt7vliqDlkKcnO1xcbiAgICAgICAgICAgIH1lbHNle1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5omL5bel5aGr5YaZ5aaC77yaaHR0cHM6Ly9naHByb3h5Lm5ldC8nO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pOiQoWyfmlrnlvI/kuIDvvJroh6rliqjojrflj5bku6PnoIHlupMnLCfmlrnlvI/kuozvvJrmiYvlt6XmjIflrprku6PnoIHlupMnLCfmlrnlvI/kuInvvJrkuIvovb3mnKzlnLDku6PnoIHlupMnXSwgMSwgJ+aMh+WumuiBmuW9seS7o+eggeiOt+WPluaWueW8jycpLnNlbGVjdCgoKSA9PiB7XFxuICAgICAgICAgICAgaWYoTVlfSU5ERVg9PTApe1xcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5re75Yqg5a6M5pyJ5pWI55qEZ2l0aHVi5Yqg6YCf5Luj55CG5ZCO6L+U5Zue5Yi35pawXFxcIjtcXG4gICAgICAgICAgICB9ZWxzZSBpZihNWV9JTkRFWD09MCl7XFxuICAgICAgICAgICAgICAgIHJldHVybiAkKGdldEl0ZW0oJ+S+nei1licsICcnKSwgXFxcIuaMh+WumuiBmuW9seS7o+eggeS7k+WcsOWdgFxcXCIpLmlucHV0KCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZSgvXFxcXHMrL2csICcnKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmKCFpbnB1dC5zdGFydHNXaXRoKCdodHRwJykpe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/ovpPlhaXmnInor69cXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgn5L6d6LWWJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7Lorr7nva5cXFwiO1xcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH1lbHNle1xcbiAgICAgICAgICAgICAgICB0b2FzdChcXFwi6L+b5YWl5LiL6L296ZO+5o6l77yM5a+85YWl5a6M5oiQ5ZCO6L+U5Zue5Yi35pawXFxcIik7XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwid2ViOi8vaHR0cHM6Ly9zcmM0ODU5Nzk2Mi5sYW56b3VvLmNvbS9pNFRpMTJlNjBsc2hcXFwiO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiXFxuICAgIH0pO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6ICfmt7vliqAnLFxcbiAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXFxuICAgICAgICBkZXNjOiAn6L6T5YWlZ2l0aHVi5Yqg6YCf5Luj55CG5Zyw5Z2AJyxcXG4gICAgICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgY2xlYXJNeVZhcignZ2V0X2docHJveHknKTtcXG4gICAgICAgICAgICBpbnB1dCA9IGlucHV0LnRyaW0oKTtcXG4gICAgICAgICAgICBpZihpbnB1dCAmJiBpbnB1dC5pbmNsdWRlcyhcXFwiL2h0dHBzXFxcIikpe1xcbiAgICAgICAgICAgICAgICBpbnB1dCA9IGlucHV0LnNwbGl0KFxcXCIvaHR0cFxcXCIpWzBdICsgXFxcIi9cXFwiO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoIWlucHV0LnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCBpbnB1dC5pbmNsdWRlcyhcXFwiZ2l0aHVidXNlcmNvbnRlbnQuY29tXFxcIikgfHwgIWlucHV0LmVuZHNXaXRoKFxcXCIvXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+i+k+WFpemUmeivr++8jOivt+i+k+WFpeato+ehrueahGdpdGh1YuWKoOmAn+S7o+eQhlxcXCI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICQucmVxdWlyZSgnZ2hwcm94eScpLnNldHByb3h5KGlucHV0KTtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgICAgICB9KSxcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcignZ2V0X2docHJveHknLCcnKSxcXG4gICAgICAgICAgICB0aXRsZVZpc2libGU6IHRydWVcXG4gICAgICAgIH1cXG4gICAgfSk7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogXFxcImxpbmVcXFwiXFxuICAgIH0pO1xcbiAgICBwcm94eWxpc3QucmV2ZXJzZSgpO1xcbiAgICBwcm94eWxpc3QuZm9yRWFjaChpdCA9PiB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBpdC5zdG9wID8gJ+KAmOKAmOKAmeKAmTxmb250IGNvbG9yPVxcXCIjZjIwYzAwXFxcIj4nICsgaXQudXJsICsgJzwvZm9udD4nIDogaXQudXJsLFxcbiAgICAgICAgICAgIHVybDogJChbaXQuc3RvcCA/IFxcXCLlkK/nlKhcXFwiIDogXFxcIuWBnOeUqFxcXCIsIFxcXCLliKDpmaRcXFwiLCBcXFwi5aSN5Yi2XFxcIixcXFwi5qOA5rWLXFxcIl0sIDEsIFxcXCJcXFwiKS5zZWxlY3QoKHVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIuWQr+eUqFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICQucmVxdWlyZSgnZ2hwcm94eScpLnNldHByb3h5KHVybCwgMSk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIuWBnOeUqFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICQucmVxdWlyZSgnZ2hwcm94eScpLnNldHByb3h5KHVybCwgMCk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIuWIoOmZpFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICQucmVxdWlyZSgnZ2hwcm94eScpLnNldHByb3h5KHVybCwgMik7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIuWkjeWItlxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvcHkodXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIuajgOa1i1xcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwocmMoZ2V0SXRlbSgn6IGa5b2xJywgJ2h0dHBzOi8vcmF3LmdpdGNvZGUuY29tL3NyYzQ4NTk3OTYyL2p1eWluZy9yYXcvbWFzdGVyL3BsdWdpbnMvZ2hwcm94eS5qcycpLDI0KSk7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgZ2hwcm94eSA9IGdldHByb3h5KFt1cmxdKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmKGdocHJveHkpe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/miJDlip8nO1xcbiAgICAgICAgICAgICAgICAgICAgfWVsc2V7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+Wksei0pSc7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcbiAgICAgICAgICAgIH0sIGl0LnVybCksXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJ0ZXh0XzFcXFwiLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIGlkOiBpdC51cmxcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgfSlcXG4gICAgc2V0UmVzdWx0KGQpO1xcbn1cXG4kLmV4cG9ydHMgPSB7XFxuICAgIGdldHByb3h5OiBnZXRwcm94eSxcXG4gICAgc2V0cHJveHk6IHNldHByb3h5LFxcbiAgICBwcm94eVBhZ2U6IHByb3h5UGFnZVxcbn07XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlr7zlhaXnoa7orqTpobVcIixcInBhdGhcIjpcImltcG9ydENvbmZpcm1cIixcInJ1bGVcIjpcImpzOlxcbmxldCBzcmNIb21lID0gZ2V0UHVibGljSXRlbSgn6IGa5b2xJywnJyk7XFxuaWYoIXNyY0hvbWUpe1xcbiAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vaG9tZUDogZrlvbFcXFwiKSkucHJlUnVsZSk7XFxuICAgIHNyY0hvbWUgPSBjb25maWcu6IGa5b2xO1xcbn1cXG5pZiAoIWNvbmZpZy7ogZrlvbEpIHtcXG4gICAgaW5pdENvbmZpZyh7XFxuICAgICAgICDogZrlvbE6IHNyY0hvbWVcXG4gICAgfSk7XFxufVxcbmxldCBleHRmaWxlID0gZ2V0UGFyYW0oXFxcImV4dGZpbGVcXFwiLFxcXCJcXFwiKTtcXG5cXG5yZXF1aXJlKHNyY0hvbWUucmVwbGFjZSgvW14vXSokLywnJykgKyAnU3JjSnlTZXQuanMnKTtcXG5pbXBvcnRDb25maXJtKGV4dGZpbGUpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiaW50ZW50I2pzI1wiLFwicGF0aFwiOlwiaW50ZW50XCIsXCJydWxlXCI6XCJqczpcXG5mdW5jdGlvbiBqc2ltcG9ydCgpIHtcXG4gICAgcmV0dXJuIFxcXCJoaWtlcjovL3BhZ2UvaW1wb3J0Q29uZmlybSNmdWxsVGhlbWUjI25vUmVjb3JkSGlzdG9yeSMjbm9IaXN0b3J5Iz9leHRmaWxlPVxcXCIgKyBpbnB1dDtcXG59XFxuJC5leHBvcnRzID0ganNpbXBvcnQoKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcImltcG9ydEdNXCIsXCJwYXRoXCI6XCJpbXBvcnRHTVwiLFwicnVsZVwiOlwibGV0IGcgPSAkLnJlcXVpcmUoJ2NvbmZpZycpLuS+nei1ljtcXG5sZXQgbSA9IGcucmVwbGFjZSgvW14vXSokLywnJykgKyBcXFwicGx1Z2lucy9nbG9iYWxtYXAuanNcXFwiO1xcbiQuaW1wb3J0UmVxdWlyZShtKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6IGa5b2x6Kej5p6QXCIsXCJwYXRoXCI6XCJwYXJzZVVybFwiLFwicnVsZVwiOlwiZnVuY3Rpb24gYXl0bVBhcnNlKGlucHV0KSB7XFxuICAgIGxldCBzcmNIb21lID0gZ2V0UHVibGljSXRlbSgn6IGa5b2xJywgJycpO1xcbiAgICBpZiAoIXNyY0hvbWUpIHtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/pnIDopoHlhYjlr7zlhaXogZrlvbHmlrDniYjmnKzlubbmiZPlvIDkuIDmrKFcXFwiO1xcbiAgICB9XFxuICAgIHJlcXVpcmUoc3JjSG9tZS5yZXBsYWNlKC9bXi9dKiQvLCAnJykgKyAnU3JjUGFyc2VTLmpzJyk7XFxuICAgIGxvZyhcXFwi6IGa5b2x6Kej5p6Q5byA5aeLPj4+XFxcIik7XFxuICAgIGxldCBwbGF5VXJsID0gU3JjUGFyc2VTLuiBmuW9sShpbnB1dCk7XFxuICAgIGxvZyhcXFwi6IGa5b2x6Kej5p6Q57uT5p2fPj4+XFxcIik7XFxuICAgIHJldHVybiBwbGF5VXJsO1xcbn1cXG5sZXQgbG9va1NldCA9ICQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICBsZXQgc3JjSG9tZSA9IGdldFB1YmxpY0l0ZW0oJ+iBmuW9sScsICcnKTtcXG4gICAgaWYgKCFzcmNIb21lKSB7XFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6ZyA6KaB5YWI5a+85YWl6IGa5b2x5paw54mI5pys5bm25omT5byA5LiA5qyhXFxcIjtcXG4gICAgfVxcbiAgICByZXF1aXJlKHNyY0hvbWUucmVwbGFjZSgvW14vXSokLywgJycpICsgJ1NyY0p5UHVibGljLmpzJyk7XFxuICAgIHJldHVybiAkKCdoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSMjbm9IaXN0b3J5IycpLnJ1bGUoKHNyY0hvbWUpID0+IHtcXG4gICAgICAgIHJlcXVpcmUoc3JjSG9tZS5yZXBsYWNlKC9bXi9dKiQvLCAnJykgKyAnU3JjSnlNZW51LmpzJyk7XFxuICAgICAgICBsb29rc2V0KCk7XFxuICAgIH0sc3JjSG9tZSlcXG59KVxcblxcbiQuZXhwb3J0cy7op6PmnpAgPSBheXRtUGFyc2U7XFxuJC5leHBvcnRzLuiuvue9riA9IGxvb2tTZXQ7XCJ9XSxcInBhcmFtc1wiOlwie1xcXCJpZFxcXCI6XFxcImJ1dHRvbm1lbnUxXFxcIixcXFwibG9uZ0NsaWNrXFxcIjpbe1xcXCJqc1xcXCI6XFxcIihcXFxcbigpID0+IHtcXFxcbiAgICByZXR1cm4gJChcXFxcXFxcImhpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IyNub0hpc3RvcnkjXFxcXFxcXCIpLnJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICByZXF1aXJlKGNvbmZpZy7ogZrlvbEucmVwbGFjZSgvW14vXSokLywgXFxcXFxcXCJcXFxcXFxcIikgKyBcXFxcXFxcIlNyY0p5TWVudS5qc1xcXFxcXFwiKTtcXFxcbiAgICAgICAgbWFuYWdlU2V0KCk7XFxcXG4gICAgfVxcXFxuICAgICk7XFxcXG59XFxcXG4pKClcXFwiLFxcXCJ0aXRsZVxcXCI6XFxcIuKZpe+4j+euoeeQhlxcXCJ9LHtcXFwianNcXFwiOlxcXCIoXFxcXG4obWVudWJ0bnMpID0+IHtcXFxcbiAgICByZXR1cm4gJChtZW51YnRucywgMiwgXFxcXFxcXCJcXFxcXFxcXHU4MWVhXFxcXFxcXFx1NWI5YVxcXFxcXFxcdTRlNDlcXFxcXFxcXHU3YjJjMVxcXFxcXFxcdTRlMmFcXFxcXFxcXHU2MzA5XFxcXFxcXFx1OTRhZVxcXFxcXFxcdTUyOWZcXFxcXFxcXHU4MGZkXFxcXFxcXCIpLnNlbGVjdCgoKSA9PiB7XFxcXG4gICAgICAgIHNldEl0ZW0oXFxcXFxcXCJidXR0b25tZW51MVxcXFxcXFwiLCBpbnB1dCk7XFxcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly9cXFxcXFxcXHU3YjJjMVxcXFxcXFxcdTYzMDlcXFxcXFxcXHU5NGFlXFxcXFxcXFx1NWRmMlxcXFxcXFxcdThiYmVcXFxcXFxcXHU3ZjZlXFxcXFxcXFx1NGUzYVxcXFxcXFwiICsgaW5wdXQ7XFxcXG4gICAgfVxcXFxuICAgICk7XFxcXG59XFxcXG4pKFtcXFxcXFxcIueuoeeQhlxcXFxcXFwiLFxcXFxcXFwi5Y6G5Y+yXFxcXFxcXCIsXFxcXFxcXCLmlLbol49cXFxcXFxcIixcXFxcXFxcIueCueaSrVxcXFxcXFwiLFxcXFxcXFwi55u05pKtXFxcXFxcXCIsXFxcXFxcXCJBbGlzdFxcXFxcXFwiLFxcXFxcXFwi5LqR55uYXFxcXFxcXCJdKVxcXCIsXFxcInRpdGxlXFxcIjpcXFwi8J+SoeWIh+aNouaMiemSrlxcXCJ9XX1cIixcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi6IGa5b2xXCIsXCJ2ZXJzaW9uXCI6MCxcInVybFwiOlwiaGlrZXI6Ly9lbXB0eSNub1JlY29yZEhpc3RvcnkjO2dldDtVVEYtODt7VXNlci1BZ2VudEBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4w77yb77ybIFdpbjY077yb77ybIHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyNi4wLjAuMCBTYWZhcmkvNTM3LjM2fVwiLFwiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcImZpbmRfcnVsZVwiOlwianM6KFxcbigpID0+IHtcXG4gICAgcmVxdWlyZShjb25maWcu6IGa5b2xLnJlcGxhY2UoL1teL10qJC8sIFxcXCJcXFwiKSArIFxcXCJTcmNKeU1lbnUuanNcXFwiKTtcXG4gICAgbWFuYWdlU2V0KCk7XFxufVxcbikoKVwiLFwiZ3JvdXBcIjpcIiMj5bi455SoXCIsXCJ1YVwiOlwicGNcIixcInByZVJ1bGVcIjpcIi8qPCQ+XFxuQGluY2x1ZGUgc3RhcnRcXG5pbXBvcnRHTVxcbkBpbmNsdWRlIGVuZFxcbjwkPiovXFxuXFxuaWYgKCFjb25maWcu6IGa5b2xKSB7XFxuICAgIGxldCBzcmNIb21lID0gZ2V0SXRlbSgn5L6d6LWWJywgJycpO1xcbiAgICBpZiAoIXNyY0hvbWUpIHtcXG4gICAgICAgIC8v6L+c56iL5L6d6LWW57Si5byV5paH5Lu25Luj55CG5Zyw5Z2A5YiX6KGoXFxuICAgICAgICBsZXQgZ2hwcm94eSA9ICQucmVxdWlyZSgnZ2hwcm94eScpLmdldHByb3h5KCk7XFxuICAgICAgICBpZihnaHByb3h5Lmxlbmd0aD09MCl7XFxuICAgICAgICAgICAgZ2hwcm94eS5wdXNoKFxcXCJcXFwiKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ2hwcm94eS5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgIHRyeSB7IC8v6L+c56iL5L6d6LWW57Si5byVXFxuICAgICAgICAgICAgICAgIHJlcXVpcmUoZ2hwcm94eVtpXSArICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3JjNDg1OTc5NjIvaGsvbWFzdGVyL0p5UmVxdWlyZS5qcycsIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDMwMDBcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGlmIChyZWx5ZmlsZSkge1xcbiAgICAgICAgICAgICAgICAgICAgc3JjSG9tZSA9IHJlbHlmaWxlLmluY2x1ZGVzKCdyYXcuZ2l0aHViJykgPyBnaHByb3h5W2ldICsgcmVseWZpbGUgOiByZWx5ZmlsZTtcXG4gICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ+S+nei1licsIHNyY0hvbWUpO1xcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICQucmVxdWlyZSgnZ2hwcm94eScpLnNldHByb3h5KGdocHJveHlbaV0sIDApO1xcbiAgICAgICAgICAgICAgICBsb2coZS5tZXNzYWdlKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH1cXG4gICAgbGV0IGxvY2FsY29kZSA9IFxcXCJoaWtlcjovL2ZpbGVzL2RhdGEvXFxcIitNWV9SVUxFLnRpdGxlK1xcXCIvY29kZS9TcmNKdXlpbmcuanNcXFwiO1xcbiAgICBpZihnZXRJdGVtKCfmnKzlnLDkvp3otZblupMnKT09XFxcIjFcXFwiICYmIGZpbGVFeGlzdChsb2NhbGNvZGUpKXtcXG4gICAgICAgIHNyY0hvbWUgPSBsb2NhbGNvZGU7XFxuICAgIH1cXG4gICAgaW5pdENvbmZpZyh7XFxuICAgICAgICDkvp3otZY6IHNyY0hvbWUsXFxuICAgICAgICDogZrlvbE6IHNyY0hvbWVcXG4gICAgfSk7XFxuICAgIHNldFB1YmxpY0l0ZW0oJ+iBmuW9sScsIHNyY0hvbWUpO1xcbn1cXG4vL2J5LuW4heKImmDkurrmiY1cIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6YWN572u5Y+C5pWwXFxcIixcXFwicGF0aFxcXCI6XFxcImNvbmZpZ1xcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbiQuZXhwb3J0cy52ZXJzaW9uID0gMTU7XFxcXG4kLmV4cG9ydHMu5L6d6LWWID0gZ2V0SXRlbSgn5L6d6LWWJywgJ2h0dHBzOi8vcmF3LmdpdGNvZGUuY29tL3NyYzQ4NTk3OTYyL2p1eWluZy9yYXcvbWFzdGVyL1NyY0p1eWluZy5qcycpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuS6keWPo+S7pOWvvOWFpVxcXCIsXFxcInBhdGhcXFwiOlxcXCJpbXBvcnRcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5mdW5jdGlvbiBjbG91ZGltcG9ydCgpIHtcXFxcbiAgICBsZXQgSllDb2RlID0gZmV0Y2goXFxcXFxcXCJoaWtlcjovL2hvbWVA6IGa5b2xXFxcXFxcXCIpO1xcXFxuICAgIGlmIChKWUNvZGUpIHtcXFxcbiAgICAgICAgd3JpdGVGaWxlKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9fY2FjaGUvSnV5aW5nMi9jbG91ZGltcG9ydC50eHRcXFxcXFxcIiwgaW5wdXQpO1xcXFxuICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL3BhZ2UvaW1wb3J0Q29uZmlybSNmdWxsVGhlbWUjI25vUmVjb3JkSGlzdG9yeSMjbm9IaXN0b3J5Iz9ydWxlPeiBmuW9sVxcXFxcXFwiXFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly/msqHmnInogZrlvbHlsI/nqIvluo/vvIzopoHmmK/mlrDniYjlk6ZcXFxcXFxcIjtcXFxcbiAgICB9XFxcXG59XFxcXG4kLmV4cG9ydHMgPSBjbG91ZGltcG9ydCgpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuS7o+eQhueuoeeQhlxcXCIsXFxcInBhdGhcXFwiOlxcXCJnaHByb3h5XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxubGV0IGNmZ2ZpbGUgPSBcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvU3JjL0p1eWluZzIvY29uZmlnLmpzb25cXFxcXFxcIjtcXFxcbmxldCBKdWNvbmZpZyA9IHt9O1xcXFxubGV0IEp1Y2ZnID0gZmV0Y2goY2ZnZmlsZSk7XFxcXG5pZiAoSnVjZmcgIT0gXFxcXFxcXCJcXFxcXFxcIikge1xcXFxuICAgIGV2YWwoXFxcXFxcXCJKdWNvbmZpZz1cXFxcXFxcIiArIEp1Y2ZnICsgXFxcXFxcXCI7XFxcXFxcXCIpO1xcXFxufVxcXFxubGV0IHByb3h5bGlzdCA9IEp1Y29uZmlnWydnaHByb3h5J10gfHwgW107XFxcXG5cXFxcbmZ1bmN0aW9uIGdldHByb3h5KCkge1xcXFxuICAgIHJldHVybiBwcm94eWxpc3QuZmlsdGVyKHYgPT4gIXYuc3RvcCkubWFwKGl0ID0+IGl0LnVybCk7XFxcXG59XFxcXG5cXFxcbmZ1bmN0aW9uIHNldHByb3h5KGlucHV0LCB6dCkge1xcXFxuICAgIGlucHV0ID0gaW5wdXQudHJpbSgpO1xcXFxuICAgIGlmIChpbnB1dCkge1xcXFxuICAgICAgICBsZXQgaW5kZXggPSBwcm94eWxpc3QuZmluZEluZGV4KGl0ID0+IGl0LnVybCA9PSBpbnB1dCk7XFxcXG4gICAgICAgIGlmIChpbmRleCA9PSAtMSkge1xcXFxuICAgICAgICAgICAgcHJveHlsaXN0LnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHVybDogaW5wdXRcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICB9IGVsc2UgaWYgKHp0ID09IDEpIHtcXFxcbiAgICAgICAgICAgIGRlbGV0ZSBwcm94eWxpc3RbaW5kZXhdLnN0b3A7XFxcXG4gICAgICAgIH0gZWxzZSBpZiAoenQgPT0gMCkge1xcXFxuICAgICAgICAgICAgcHJveHlsaXN0W2luZGV4XS5zdG9wID0gMTtcXFxcbiAgICAgICAgfSBlbHNlIGlmICh6dCA9PSAyKSB7XFxcXG4gICAgICAgICAgICBwcm94eWxpc3QgPSBwcm94eWxpc3QuZmlsdGVyKHYgPT4gdi51cmwgIT0gaW5wdXQpO1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIEp1Y29uZmlnWydnaHByb3h5J10gPSBwcm94eWxpc3Q7XFxcXG4gICAgICAgIHdyaXRlRmlsZShjZmdmaWxlLCBKU09OLnN0cmluZ2lmeShKdWNvbmZpZykpO1xcXFxuICAgIH1cXFxcbn1cXFxcblxcXFxuZnVuY3Rpb24gcHJveHlQYWdlKCkge1xcXFxuICAgIHNldFBhZ2VUaXRsZSgn5ZCv5Yqo5Luj55CG566h55CGJyk7XFxcXG4gICAgbGV0IGQgPSBbXTtcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogZ2V0cHJveHkoKS5sZW5ndGg9PTA/J+mcgOimgWdpdGh1YuS7o+eQhuadpeiOt+WPluS7o+egge+8jOeCueWHu+adpeS4quS+i+WtkCc6J+mAieaLqeS7o+eggeW6k+iOt+WPluaWueW8jycsXFxcXG4gICAgICAgIGRlc2M6ICfmnInku6PnkIbvvJonICsgcHJveHlsaXN0Lmxlbmd0aCArICfvvIzmnInmlYjnmoTvvJonICsgZ2V0cHJveHkoKS5sZW5ndGgsXFxcXG4gICAgICAgIHVybDogZ2V0cHJveHkoKS5sZW5ndGg9PTA/JChcXFxcXFxcIiNub0xvYWRpbmcjXFxcXFxcXCIpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgIGV2YWwocmMoZ2V0SXRlbSgn5L6d6LWWJywgJ2h0dHBzOi8vcmF3LmdpdGNvZGUuY29tL3NyYzQ4NTk3OTYyL2p1eWluZy9yYXcvbWFzdGVyL3BsdWdpbnMvZ2hwcm94eS5qcycpLDI0KSk7XFxcXG4gICAgICAgICAgICBsZXQgZ2hwcm94eSA9IGdldHByb3h5KHByb3h5cyk7XFxcXG4gICAgICAgICAgICBpZihnaHByb3h5KXtcXFxcbiAgICAgICAgICAgICAgICBwdXRNeVZhcignZ2V0X2docHJveHknLGdocHJveHkpO1xcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5p2l5LqG77yM54K55re75Yqg5ZCnJztcXFxcbiAgICAgICAgICAgIH1lbHNle1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/miYvlt6XloavlhpnlpoLvvJpodHRwczovL2docHJveHkubmV0Lyc7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pOiQoWyfmlrnlvI/kuIDvvJroh6rliqjojrflj5bku6PnoIHlupMnLCfmlrnlvI/kuozvvJrmiYvlt6XmjIflrprku6PnoIHlupMnLCfmlrnlvI/kuInvvJrkuIvovb3mnKzlnLDku6PnoIHlupMnXSwgMSwgJ+aMh+WumuiBmuW9seS7o+eggeiOt+WPluaWueW8jycpLnNlbGVjdCgoKSA9PiB7XFxcXG4gICAgICAgICAgICBpZihNWV9JTkRFWD09MCl7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly/mt7vliqDlrozmnInmlYjnmoRnaXRodWLliqDpgJ/ku6PnkIblkI7ov5Tlm57liLfmlrBcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgIH1lbHNlIGlmKE1ZX0lOREVYPT0wKXtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJChnZXRJdGVtKCfkvp3otZYnLCAnJyksIFxcXFxcXFwi5oyH5a6a6IGa5b2x5Luj56CB5LuT5Zyw5Z2AXFxcXFxcXCIpLmlucHV0KCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKC9cXFxcXFxcXHMrL2csICcnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYoIWlucHV0LnN0YXJ0c1dpdGgoJ2h0dHAnKSl7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJ0b2FzdDovL+i+k+WFpeacieivr1xcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ+S+nei1licsIGlucHV0KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly/lt7Lorr7nva5cXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgfWVsc2V7XFxcXG4gICAgICAgICAgICAgICAgdG9hc3QoXFxcXFxcXCLov5vlhaXkuIvovb3pk77mjqXvvIzlr7zlhaXlrozmiJDlkI7ov5Tlm57liLfmlrBcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwid2ViOi8vaHR0cHM6Ly9zcmM0ODU5Nzk2Mi5sYW56b3VvLmNvbS9pNFRpMTJlNjBsc2hcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInRleHRfMVxcXFxcXFwiXFxcXG4gICAgfSk7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6ICfmt7vliqAnLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcXFxcbiAgICAgICAgZGVzYzogJ+i+k+WFpWdpdGh1YuWKoOmAn+S7o+eQhuWcsOWdgCcsXFxcXG4gICAgICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XFxcXG4gICAgICAgICAgICBjbGVhck15VmFyKCdnZXRfZ2hwcm94eScpO1xcXFxuICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC50cmltKCk7XFxcXG4gICAgICAgICAgICBpZihpbnB1dCAmJiBpbnB1dC5pbmNsdWRlcyhcXFxcXFxcIi9odHRwc1xcXFxcXFwiKSl7XFxcXG4gICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5zcGxpdChcXFxcXFxcIi9odHRwXFxcXFxcXCIpWzBdICsgXFxcXFxcXCIvXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBpZiAoIWlucHV0LnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCBpbnB1dC5pbmNsdWRlcyhcXFxcXFxcImdpdGh1YnVzZXJjb250ZW50LmNvbVxcXFxcXFwiKSB8fCAhaW5wdXQuZW5kc1dpdGgoXFxcXFxcXCIvXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwidG9hc3Q6Ly/ovpPlhaXplJnor6/vvIzor7fovpPlhaXmraPnoa7nmoRnaXRodWLliqDpgJ/ku6PnkIZcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICQucmVxdWlyZSgnZ2hwcm94eScpLnNldHByb3h5KGlucHV0KTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCI7XFxcXG4gICAgICAgIH0pLFxcXFxuICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcignZ2V0X2docHJveHknLCcnKSxcXFxcbiAgICAgICAgICAgIHRpdGxlVmlzaWJsZTogdHJ1ZVxcXFxuICAgICAgICB9XFxcXG4gICAgfSk7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwibGluZVxcXFxcXFwiXFxcXG4gICAgfSk7XFxcXG4gICAgcHJveHlsaXN0LnJldmVyc2UoKTtcXFxcbiAgICBwcm94eWxpc3QuZm9yRWFjaChpdCA9PiB7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogaXQuc3RvcCA/ICfigJjigJjigJnigJk8Zm9udCBjb2xvcj1cXFxcXFxcIiNmMjBjMDBcXFxcXFxcIj4nICsgaXQudXJsICsgJzwvZm9udD4nIDogaXQudXJsLFxcXFxuICAgICAgICAgICAgdXJsOiAkKFtpdC5zdG9wID8gXFxcXFxcXCLlkK/nlKhcXFxcXFxcIiA6IFxcXFxcXFwi5YGc55SoXFxcXFxcXCIsIFxcXFxcXFwi5Yig6ZmkXFxcXFxcXCIsIFxcXFxcXFwi5aSN5Yi2XFxcXFxcXCIsXFxcXFxcXCLmo4DmtYtcXFxcXFxcIl0sIDEsIFxcXFxcXFwiXFxcXFxcXCIpLnNlbGVjdCgodXJsKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFxcXFxcXFwi5ZCv55SoXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgJC5yZXF1aXJlKCdnaHByb3h5Jykuc2V0cHJveHkodXJsLCAxKTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09IFxcXFxcXFwi5YGc55SoXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgJC5yZXF1aXJlKCdnaHByb3h5Jykuc2V0cHJveHkodXJsLCAwKTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09IFxcXFxcXFwi5Yig6ZmkXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgJC5yZXF1aXJlKCdnaHByb3h5Jykuc2V0cHJveHkodXJsLCAyKTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09IFxcXFxcXFwi5aSN5Yi2XFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgY29weSh1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PSBcXFxcXFxcIuajgOa1i1xcXFxcXFwiKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwocmMoZ2V0SXRlbSgn6IGa5b2xJywgJ2h0dHBzOi8vcmF3LmdpdGNvZGUuY29tL3NyYzQ4NTk3OTYyL2p1eWluZy9yYXcvbWFzdGVyL3BsdWdpbnMvZ2hwcm94eS5qcycpLDI0KSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCBnaHByb3h5ID0gZ2V0cHJveHkoW3VybF0pO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZihnaHByb3h5KXtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/miJDlip8nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lpLHotKUnO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCI7XFxcXG4gICAgICAgICAgICB9LCBpdC51cmwpLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwidGV4dF8xXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgICAgIGlkOiBpdC51cmxcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfSlcXFxcbiAgICBzZXRSZXN1bHQoZCk7XFxcXG59XFxcXG4kLmV4cG9ydHMgPSB7XFxcXG4gICAgZ2V0cHJveHk6IGdldHByb3h5LFxcXFxuICAgIHNldHByb3h5OiBzZXRwcm94eSxcXFxcbiAgICBwcm94eVBhZ2U6IHByb3h5UGFnZVxcXFxufTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLlr7zlhaXnoa7orqTpobVcXFwiLFxcXCJwYXRoXFxcIjpcXFwiaW1wb3J0Q29uZmlybVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmxldCBzcmNIb21lID0gZ2V0UHVibGljSXRlbSgn6IGa5b2xJywnJyk7XFxcXG5pZighc3JjSG9tZSl7XFxcXG4gICAgZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9ob21lQOiBmuW9sVxcXFxcXFwiKSkucHJlUnVsZSk7XFxcXG4gICAgc3JjSG9tZSA9IGNvbmZpZy7ogZrlvbE7XFxcXG59XFxcXG5pZiAoIWNvbmZpZy7ogZrlvbEpIHtcXFxcbiAgICBpbml0Q29uZmlnKHtcXFxcbiAgICAgICAg6IGa5b2xOiBzcmNIb21lXFxcXG4gICAgfSk7XFxcXG59XFxcXG5sZXQgZXh0ZmlsZSA9IGdldFBhcmFtKFxcXFxcXFwiZXh0ZmlsZVxcXFxcXFwiLFxcXFxcXFwiXFxcXFxcXCIpO1xcXFxuXFxcXG5yZXF1aXJlKHNyY0hvbWUucmVwbGFjZSgvW14vXSokLywnJykgKyAnU3JjSnlTZXQuanMnKTtcXFxcbmltcG9ydENvbmZpcm0oZXh0ZmlsZSk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwiaW50ZW50I2pzI1xcXCIsXFxcInBhdGhcXFwiOlxcXCJpbnRlbnRcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5mdW5jdGlvbiBqc2ltcG9ydCgpIHtcXFxcbiAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL3BhZ2UvaW1wb3J0Q29uZmlybSNmdWxsVGhlbWUjI25vUmVjb3JkSGlzdG9yeSMjbm9IaXN0b3J5Iz9leHRmaWxlPVxcXFxcXFwiICsgaW5wdXQ7XFxcXG59XFxcXG4kLmV4cG9ydHMgPSBqc2ltcG9ydCgpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcImltcG9ydEdNXFxcIixcXFwicGF0aFxcXCI6XFxcImltcG9ydEdNXFxcIixcXFwicnVsZVxcXCI6XFxcImxldCBnID0gJC5yZXF1aXJlKCdjb25maWcnKS7kvp3otZY7XFxcXG5sZXQgbSA9IGcucmVwbGFjZSgvW14vXSokLywnJykgKyBcXFxcXFxcInBsdWdpbnMvZ2xvYmFsbWFwLmpzXFxcXFxcXCI7XFxcXG4kLmltcG9ydFJlcXVpcmUobSlcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLogZrlvbHop6PmnpBcXFwiLFxcXCJwYXRoXFxcIjpcXFwicGFyc2VVcmxcXFwiLFxcXCJydWxlXFxcIjpcXFwiZnVuY3Rpb24gYXl0bVBhcnNlKGlucHV0KSB7XFxcXG4gICAgbGV0IHNyY0hvbWUgPSBnZXRQdWJsaWNJdGVtKCfogZrlvbEnLCAnJyk7XFxcXG4gICAgaWYgKCFzcmNIb21lKSB7XFxcXG4gICAgICAgIHJldHVybiBcXFxcXFxcInRvYXN0Oi8v6ZyA6KaB5YWI5a+85YWl6IGa5b2x5paw54mI5pys5bm25omT5byA5LiA5qyhXFxcXFxcXCI7XFxcXG4gICAgfVxcXFxuICAgIHJlcXVpcmUoc3JjSG9tZS5yZXBsYWNlKC9bXi9dKiQvLCAnJykgKyAnU3JjUGFyc2VTLmpzJyk7XFxcXG4gICAgbG9nKFxcXFxcXFwi6IGa5b2x6Kej5p6Q5byA5aeLPj4+XFxcXFxcXCIpO1xcXFxuICAgIGxldCBwbGF5VXJsID0gU3JjUGFyc2VTLuiBmuW9sShpbnB1dCk7XFxcXG4gICAgbG9nKFxcXFxcXFwi6IGa5b2x6Kej5p6Q57uT5p2fPj4+XFxcXFxcXCIpO1xcXFxuICAgIHJldHVybiBwbGF5VXJsO1xcXFxufVxcXFxubGV0IGxvb2tTZXQgPSAkKFxcXFxcXFwiI25vTG9hZGluZyNcXFxcXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgIGxldCBzcmNIb21lID0gZ2V0UHVibGljSXRlbSgn6IGa5b2xJywgJycpO1xcXFxuICAgIGlmICghc3JjSG9tZSkge1xcXFxuICAgICAgICByZXR1cm4gXFxcXFxcXCJ0b2FzdDovL+mcgOimgeWFiOWvvOWFpeiBmuW9seaWsOeJiOacrOW5tuaJk+W8gOS4gOasoVxcXFxcXFwiO1xcXFxuICAgIH1cXFxcbiAgICByZXF1aXJlKHNyY0hvbWUucmVwbGFjZSgvW14vXSokLywgJycpICsgJ1NyY0p5UHVibGljLmpzJyk7XFxcXG4gICAgcmV0dXJuICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IyNub0hpc3RvcnkjJykucnVsZSgoc3JjSG9tZSkgPT4ge1xcXFxuICAgICAgICByZXF1aXJlKHNyY0hvbWUucmVwbGFjZSgvW14vXSokLywgJycpICsgJ1NyY0p5TWVudS5qcycpO1xcXFxuICAgICAgICBsb29rc2V0KCk7XFxcXG4gICAgfSxzcmNIb21lKVxcXFxufSlcXFxcblxcXFxuJC5leHBvcnRzLuino+aekCA9IGF5dG1QYXJzZTtcXFxcbiQuZXhwb3J0cy7orr7nva4gPSBsb29rU2V0O1xcXCJ9XVwifSIsInBpY1VybCI6Imh0dHBzOi8vcmF3LmdpdGNvZGUuY29tL3NyYzQ4NTk3OTYyL2p1eWluZy9yYXcvbWFzdGVyL2ltZy/kuLvpobUt566h55CGLnN2ZyIsInRpdGxlIjoi4pml566h55CGLVYyLjcifQ==
Add Comment
Please, Sign In to add comment