xiaomianao666

小程序:长风音乐🎶

Oct 15th, 2024
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@长风音乐🎶@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi6ZW/6aOO6Z+z5LmQ8J+OtiIsImF1dGhvciI6Iue8mOWIhiIsInVybCI6Imhpa2VyOi8vZW1wdHkjI2h0dHBzOi8vY2Z5eS5jY2Z5QWxsP3NzPSMjZnlwYWdlIiwidmVyc2lvbiI6MjAyNDAyMDMsImNvbF90eXBlIjoiY2FyZF9waWNfMyIsImNsYXNzX25hbWUiOiLpn7PkuZAm55S16KeGJuatjOWNlSbmrYzmiYsmTVYm55S15Y+wIiwidHlwZSI6Im11c2ljIiwiY2xhc3NfdXJsIjoiL3lpbnl1ZS8mL2RzLyYvbXAzL2tnZ2QucGhwJi9tcDMvZ3MucGhwJi9tcDMvIyYvZm0vIiwiYXJlYV9uYW1lIjoi5oqW6Z+zJuW/q+aJiyZZWSblha3pl7TmiL8m56eA6ImyJuS5kOWXqCbljYPluIYm5LmI5LmIJuaWl+mxvCbnvprokIwm5ZOO57GzJuaYoOWuoiY5NeengCblpYfnp4AmIiwiYXJlYV91cmwiOiIvQ2YvZHl6Ympzb24ucGhwJi9DZi9rcy5waHAmL0NmL1lZLnBocCYvQ2YvNmYucGhwJi9DZi94cy5waHAmL0NmL2xoLnBocCYvQ2YvcWYucGhwJi9DZi9tbS5waHAmL0NmL2R5dS5waHAmL0NmL2xtLnBocCYvQ2YvYW0ucGhwJi9DZi9pay5waHAmL0NmLzk1eC5waHAmL0NmL3F4LnBocCYiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiLll6jnp4Am5oiR56eAJuWTlOWTqSbkurrkurom6L+F6Zu3JueMq+aSrSbmtarmkq0m6Iqx5qSSJuihl+WUsSbmmJ/lhYkmQ0MmS0smTk9XJuajieiKseezliIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIvQ2YvaHgucGhwJi9DZi93eC5waHAmL0NmL2J6Yi5waHAmL0NmL3JyLnBocCYvQ2YveGwucGhwJi9DZi9tei5waHAmL0NmL2xiLnBocCYvQ2YvaGoucGhwJi9DZi9qYy5waHAmL0NmL3hnemIucGhwJi9DZi9jYy5waHAmL0NmL2trLnBocCYvQ2Yvbm93LnBocCYvQ2YvbWh0LnBocCIsImZpbmRfcnVsZSI6ImpzOlxudmFyIGQgPSBbXTtcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2xhenknLCB7fSkpLnJ1bGUpO1xudmFyIGdldFJhbmdlQ29sb3JzID0gZnVuY3Rpb24oKSB7wqDCoMKgwqDCoMKgwqBcbiAgICByZXR1cm4gJyMnICsgKCcwMDAwMCcgKyAoTWF0aC5yYW5kb20oKSAqIDB4MTAwMDAwMCA8PCAwKS50b1N0cmluZygxNikpLnN1YnN0cigtNik7wqDCoMKgwqDCoFxufVxuJC5yZXF1aXJlKFwiTG9hZGluZ1wiKS5Mb2FkaW5nKClcbk1ZX1VSTCA9IE1ZX1VSTC5zcGxpdChcIiMjXCIpWzFdXG52YXIgZnlhbGwgPSBNWV9SVUxFLmNsYXNzX3VybDtcbmlmICgvQ2YvLnRlc3QoTVlfVVJMKSkge1xuICAgICQucmVxdWlyZShcImhpa2VyOi8vcGFnZS96Yj9ydWxlPemVv+mjjumfs+S5kPCfjrZcIilcbn0gZWxzZVxuICAgIHN3aXRjaCAoZnlhbGwpIHtcbiAgICAgICAgY2FzZSAnL21wMy9rZ2dkLnBocCc6XG4gICAgICAgICAgICAkLnJlcXVpcmUoXCJoaWtlcjovL3BhZ2UvZ2Q/cnVsZT3plb/po47pn7PkuZDwn462XCIpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICcvZm0vJzpcbiAgICAgICAgICAgICQucmVxdWlyZShcImhpa2VyOi8vcGFnZS9kdD9ydWxlPemVv+mjjumfs+S5kPCfjrZcIilcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJy9kcy8nOlxuICAgICAgICAgICAgJC5yZXF1aXJlKFwiaGlrZXI6Ly9wYWdlL2RzP3J1bGU96ZW/6aOO6Z+z5LmQ8J+OtlwiKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnL21wMy9ncy5waHAnOlxuICAgICAgICAgICAgJC5yZXF1aXJlKFwiaGlrZXI6Ly9wYWdlL2dzP3J1bGU96ZW/6aOO6Z+z5LmQ8J+OtlwiKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnL21wMy8jJzpcbiAgICAgICAgICAgICQucmVxdWlyZShcImhpa2VyOi8vcGFnZS9NVj9ydWxlPemVv+mjjumfs+S5kPCfjrZcIilcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJy95aW55dWUvJzpcbiAgICAgICAgICAgICQucmVxdWlyZShcImhpa2VyOi8vcGFnZS9tcDM/cnVsZT3plb/po47pn7PkuZDwn462XCIpXG4gICAgICAgICAgICBicmVha1xuICAgIH1cbiQucmVxdWlyZShcImhpa2VyOi8vcGFnZS/mm7TmlrA/cnVsZT3plb/po47pn7PkuZDwn462XCIpXG5NWV9QQUdFID09IDEgPyBzZXRQcmVSZXN1bHQoZCkgOiBzZXRSZXN1bHQoZCk7XG5kZWxldGVJdGVtQnlDbHMoJ2xvYWRpbmdfZ2lmJyk7Iiwic2VhcmNoX3VybCI6Imhpa2VyOi8vZW1wdHk/a2V5PSoqJnA9ZnlwYWdlIiwiZ3JvdXAiOiIj57yY5YiGIiwic2VhcmNoRmluZCI6ImpzOlxuZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvbGF6eScsIHt9KSkucnVsZSk7XG5sZXQgY29uZmlnID0gW3tcbiAgICBcIm5hbWVcIjogXCLphbfmiJHpn7PkuZBcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vY2Z5eS5jYy9tcDMva3cucGhwP3NzPSoqXCJcbn0sIHtcbiAgICBcIm5hbWVcIjogXCLphbfni5fpn7PkuZBcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vY2Z5eS5jYy9tcDMva2cucGhwP3NzPSoqXCJcbn0sIHtcbiAgICBcIm5hbWVcIjogXCLnvZHmmJPpn7PkuZBcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vY2Z5eS5jYy9tcDMvMTYzLnBocD9zcz0qKlwiXG59LCB7XG4gICAgXCJuYW1lXCI6IFwiTVZcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vY2Z5eS5jYy9tcDQva2cvY2YucGhwP3NzPSoqXCJcblxufV1cbmxldCBydWxlcyA9IGNvbmZpZy5tYXAoKHNvdXJjZSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiBzb3VyY2UubmFtZSxcbiAgICAgICAgc2VhcmNoX3VybDogJ2hpa2VyOi8vZW1wdHk/a2V5PSoqJnA9ZnlwYWdlJyxcbiAgICAgICAgc2VhcmNoRmluZDogJ2pzOicgKyAkLnRvU3RyaW5nKChuYW1lLCB1cmwsIGxhenkpID0+IHtcbiAgICAgICAgICAgIGxldCBkID0gW107XG4gICAgICAgICAgICBrZXkgPSBnZXRQYXJhbSgna2V5Jyk7XG4gICAgICAgICAgICB2YXIgdXJsID0gdXJsLnJlcGxhY2UoL1xcKlxcKi8sIGtleSk7XG4gICAgICAgICAgICBpZiAobmFtZSA9PT0gJ01WJykge1xuICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gcGRmYShyZXF1ZXN0KHVybCwge30pLCAnYm9keSYmLmpjJylcbiAgICAgICAgICAgICAgICBsaXN0LmZvckVhY2goZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGRmaChkYXRhLCAnYSYmdGl0bGUnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlc2M6IGRhdGEuYXV0aG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nOiBwZGZoKGRhdGEsICdpbWcmJnNyYycpICsgJ0BSZWZlcmVyPScsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL2NmeXkuY2MvbXA0L2tnLycgKyBwZGZoKGRhdGEsICdhJiZocmVmJykgKyBsYXp5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICcnLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gSlNPTi5wYXJzZShyZXF1ZXN0KHVybCwge30pKS5EYXRhXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5mb3JFYWNoKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGRhdGEucGljXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS9odHRwLy50ZXN0KHBpYykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gJ2h0dHBzOicgKyBwaWNcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogZGF0YS5hdXRob3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nOiBwaWMgKyAnQFJlZmVyZXI9JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGRhdGEudXJsICsgJChcIlwiKS5sYXp5UnVsZSgobHJjKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbaW5wdXRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHlyaWM6IGxyY1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGRhdGEubHJjKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRSZXN1bHQoZCk7XG4gICAgICAgIH0sIHNvdXJjZS5uYW1lLCBzb3VyY2UudXJsLCBsYXp5KVxuICAgIH07XG59KVxuc2V0UmVzdWx0KFt7XG4gICAgdGl0bGU6IFwi54K55oiR5byA5aeL6IGa5pCcXCIsXG4gICAgdXJsOiBcImhpa2VyOi8vc2VhcmNoP3M9XCIgKyBnZXRQYXJhbShcImtleVwiKSxcbiAgICBleHRyYToge1xuICAgICAgICBydWxlczogJC50b1N0cmluZygocnVsZXMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBydWxlc1xuICAgICAgICB9LCBydWxlcylcbiAgICB9XG59XSkiLCJkZXRhaWxfY29sX3R5cGUiOiJjYXJkX3BpY18zIiwiZGV0YWlsX2ZpbmRfcnVsZSI6ImpzOlxudmFyIGQgPSBbXTtcbmh0bWwgPSBnZXRSZXNDb2RlKCk7XG5pZiAoTVlfUEFHRSA9PSAxKSB7XG4gICAgdmFyIGFyciA9IFtcIumFt+aIkemfs+S5kFwiLCBcIue9keaYk+mfs+S5kFwiLCBcIumFt+eLl+mfs+S5kFwiXVxuICAgIGFyci5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICB4eSA9ICfigJjigJjigJnigJk8Yj48c3BhbiBzdHlsZT1cImNvbG9yOiAjMWFhZDE5XCI+JyArIGl0ZW0gKyAnPC9zcGFuPjwvYj4nO1xuICAgICAgICB2YXIgdGl0bGUgPSBpdGVtID09PSBnZXRNeVZhcignZmwnLCAn6YW35oiR6Z+z5LmQJykgPyB4eSA6IGl0ZW07XG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2ZsJywgdGEpXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxuICAgICAgICAgICAgICAgIHJldHVybiBcImhpa2VyOi8vZW1wdHlcIlxuICAgICAgICAgICAgfSwgaXRlbSksXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMycsXG4gICAgICAgIH0pXG4gICAgfSk7XG4gICAgJC5yZXF1aXJlKFwiTG9hZGluZ1wiKS5Mb2FkaW5nKCk7XG59XG5sZXQgbW9kZSA9IGdldE15VmFyKCdmbCcsICfphbfmiJHpn7PkuZAnKVxuc3dpdGNoIChtb2RlKSB7XG4gICAgY2FzZSAn6YW35oiR6Z+z5LmQJzpcbiAgICAgICAgdmFyIGxpc3QgPSBKU09OLnBhcnNlKGh0bWwpLkRhdGFcbiAgICAgICAgYnJlYWtcbiAgICBjYXNlICfnvZHmmJPpn7PkuZAnOlxuICAgICAgICB2YXIgbGlzdCA9IEpTT04ucGFyc2UocmVxdWVzdChNWV9VUkwucmVwbGFjZSgna3cnLCAnMTYzJyksIHt9KSkuRGF0YVxuICAgICAgICBicmVha1xuICAgIGNhc2UgJ+mFt+eLl+mfs+S5kCc6XG4gICAgICAgIHZhciBsaXN0ID0gSlNPTi5wYXJzZShyZXF1ZXN0KE1ZX1VSTC5yZXBsYWNlKCdrdycsICdrZycpLCB7fSkpLkRhdGFcbiAgICAgICAgYnJlYWtcbn1cbnRyeSB7XG4gICAgbGlzdC5mb3JFYWNoKGRhdGEgPT4ge1xuICAgICAgICB2YXIgcGljID0gZGF0YS5waWNcbiAgICAgICAgaWYgKCEvaHR0cC8udGVzdChwaWMpKSB7XG4gICAgICAgICAgICB2YXIgcGljID0gJ2h0dHBzOicgKyBwaWNcbiAgICAgICAgfVxuICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXG4gICAgICAgICAgICBkZXNjOiBkYXRhLmF1dGhvcixcbiAgICAgICAgICAgIGltZzogcGljICsgJ0BSZWZlcmVyPScsXG4gICAgICAgICAgICB1cmw6IGRhdGEudXJsICsgJChcIlwiKS5sYXp5UnVsZSgobHJjKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKC9cXC8xNjNcXC8vLnRlc3QoaW5wdXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBscmMgPSByZXF1ZXN0KGxyYywge30pLnJlcGxhY2UoL1xcWy9nLCAnXFxuWycpLnJlcGxhY2UoL1tcXHNcXFNdKj9cXFsvLCAnWycpLnJlcGxhY2UoL1tcXHNcXFNdKlxcPi8sICcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgdXJsczogW2lucHV0XSxcbiAgICAgICAgICAgICAgICAgICAgbHlyaWM6IGxyY1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9LCBkYXRhLmxyYyksXG4gICAgICAgICAgICBjb2xfdHlwZTogJycsXG4gICAgICAgIH0pXG4gICAgfSlcbn0gY2F0Y2ggKGUpIHt9XG5NWV9QQUdFID09IDEgPyBzZXRQcmVSZXN1bHQoZCkgOiBzZXRSZXN1bHQoZCk7XG5kZWxldGVJdGVtQnlDbHMoJ2xvYWRpbmdfZ2lmJyk7Iiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInVhIjoibW9iaWxlIiwicHJlUnVsZSI6IiIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLnm7Tmkq1cIixcInBhdGhcIjpcInpiXCIsXCJydWxlXCI6XCIgdmFyIGxhenkgPSAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICB0cnkge1xcbiAgICAgICAgIHZhciB1cmwgPSBmZXRjaChpbnB1dCkubWF0Y2goL3VybDogJyguKj8pJy8pWzFdO1xcbiAgICAgICAgIHVybCA9IHVybC5zdGFydHNXaXRoKCdodHRwJykgPyB1cmwgOiAnaHR0cHM6JyArIHVybDtcXG4gICAgICAgICByZXR1cm4gdXJsLnJlcGxhY2UoL1xcXFxcXFxcdTAwMjYvZywgJyYnKVxcbiAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgIHJldHVybiBpbnB1dFxcbiAgICAgfVxcbiB9KTtcXG5cXG4gZnVuY3Rpb24gY29sb3IoYSwgYiwgdHh0KSB7XFxuICAgICByZXR1cm4gYSA9PSBiID8gJ+KAnOKAnOKAneKAnTxiPjxmb250IGNvbG9yPScgKyBnZXRSYW5nZUNvbG9ycygpICsgJz4nICsgdHh0ICsgJzwvZm9udD48L2I+JyA6IHR4dFxcbiB9XFxuIGlmIChNWV9VUkwuaW5jbHVkZXMoJ2R5emJqc29uLnBocCcpKSB7XFxuICAgICBNWV9VUkwgPSBNWV9VUkwucmVwbGFjZSgnc3M9JywgJ3A9JykgKyBNWV9QQUdFICsgJyZpZD0nO1xcbiAgICAgaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snXFxuICAgICAgICAgfSk7XFxuICAgICAgICAgW3tcXG4gICAgICAgICAgICAg6Z+z5LmQOiAnMjcwNydcXG4gICAgICAgICB9LCB7XFxuICAgICAgICAgICAgIOaDheaEnzogJzI4MzYnXFxuICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICDoiJ7ouYg6ICcyNzI2J1xcbiAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAg5oi35aSWOiAnMjc0MidcXG4gICAgICAgICB9XS5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgICB0aXRsZSA9IE9iamVjdC5rZXlzKGl0ZW0pWzBdO1xcbiAgICAgICAgICAgICBpZCA9IE9iamVjdC52YWx1ZXMoaXRlbSlbMF07XFxuICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICB0aXRsZTogY29sb3IoaWQsIGdldE15VmFyKCfmipbpn7MnLCAnMjcwNycpLCB0aXRsZSksXFxuICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGlkKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ+aKlumfsycsIGlkKVxcbiAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgIH0sIGlkKSxcXG4gICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgICAgICAgICAgfSlcXG4gICAgICAgICB9KVxcbiAgICAgfVxcbiAgICAgbGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1VSTCArIGdldE15VmFyKCfmipbpn7MnLCAnMjcwNycpKSkuRGF0YTtcXG5sb2cobGlzdFswXSlcXG4gICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICB0aXRsZTogaXRlbS5qcyxcXG4gICAgICAgICAgICAgZGVzYzogJ+inguS8l/CfkoM6JytpdGVtLmd6LFxcbiAgICAgICAgICAgICBpbWc6IGl0ZW0udHAsXFxuICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKChpbnB1dCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICBuYW1lczogWydmbHYnLCAnaGxzJ10sXFxuICAgICAgICAgICAgICAgICAgICAgdXJsczogW2lucHV0LmZsdiwgaW5wdXQuaGxzXVxcbiAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgfSwgaXRlbSksXFxuICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMidcXG4gICAgICAgICB9KVxcbiAgICAgfSlcXG4gfSBlbHNlXFxuIGlmIChNWV9VUkwuaW5jbHVkZXMoJ1lZJykpIHtcXG4gICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJ1xcbiAgICAgICAgIH0pO1xcbiAgICAgICAgIGxldCBiamVjdCA9IFt7XFxuICAgICAgICAgICAgIOmfs+S5kDogJ2h0dHBzOi8vd3d3Lnl5LmNvbS9tb3JlL3BhZ2UuYWN0aW9uP21vZHVsZUlkPTMwOCZwYWdlPTEmYml6PXNpbmcmc3ViQml6PWlkeCZwYWdlU2l6ZT0zMCdcXG4gICAgICAgICB9LCB7XFxuICAgICAgICAgICAgIOiEseWPo+engDogJ2h0dHBzOi8vd3d3Lnl5LmNvbS9tb3JlL3BhZ2UuYWN0aW9uP2Jpej10YWxrJnN1YkJpej1pZHgmcGFnZT0xJm1vZHVsZUlkPTMyOCZwYWdlU2l6ZT0zMCdcXG4gICAgICAgICB9LCB7XFxuICAgICAgICAgICAgIOiInui5iDogJ2h0dHBzOi8vd3d3Lnl5LmNvbS9tb3JlL3BhZ2UuYWN0aW9uP2Jpej1kYW5jZSZzdWJCaXo9aWR4JnBhZ2U9MSZtb2R1bGVJZD0zMTMmcGFnZVNpemU9MzAnXFxuICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICDmiLflpJY6ICdodHRwczovL3d3dy55eS5jb20vbW9yZS9wYWdlLmFjdGlvbj9iaXo9cmVkJnN1YkJpej1pZHgmcGFnZT0xJm1vZHVsZUlkPTE4NzImcGFnZVNpemU9MzAnXFxuICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICDpopzlgLw6ICdodHRwczovL3d3dy55eS5jb20vbW9yZS9wYWdlLmFjdGlvbj9iaXo9cHJldHR5JnN1YkJpej1pZHgmcGFnZT0xJm1vZHVsZUlkPTQ0OTIzNyZwYWdlU2l6ZT0zMCdcXG4gICAgICAgICB9ICx7XFxuICAgICAgICAgICAgIOWWium6pjogJ2h0dHBzOi8vd3d3Lnl5LmNvbS9tb3JlL3BhZ2UuYWN0aW9uP2Jpej1tYyZzdWJCaXo9aWR4JnBhZ2U9MSZtb2R1bGVJZD0zMjImcGFnZVNpemU9MjAnXFxuICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICDkvZPogrI6ICdodHRwczovL3d3dy55eS5jb20vbW9yZS9wYWdlLmFjdGlvbj9iaXo9c3BvcnQmc3ViQml6PWlkeCZwYWdlPTEmbW9kdWxlSWQ9NDQ5MzU5JnBhZ2VTaXplPTMwJ1xcbiAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAg5LqM5qyh5YWDOiAnaHR0cHM6Ly93d3cueXkuY29tL21vcmUvcGFnZS5hY3Rpb24/Yml6PWNhciZzdWJCaXo9aWR4JnBhZ2U9MSZtb2R1bGVJZD0xODc3JnBhZ2VTaXplPTMwJ1xcbiAgICAgICAgIH1dO1xcbmxldCBiamVjdHMgPSBbe1xcbiAgICAgICAgICAgICDnjovogIXojaPogIA6ICdodHRwczovL3d3dy55eS5jb20vbW9yZS9wYWdlLmFjdGlvbj9iaXo9Z2FtZSZzdWJCaXo9aWR4JnBhZ2U9MSZtb2R1bGVJZD0xMTgwJnBhZ2VTaXplPTMwJ1xcbiAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAg5ZKM5bmz57K+6IuxOiAnaHR0cHM6Ly93d3cueXkuY29tL21vcmUvcGFnZS5hY3Rpb24/Yml6PWNoaWNrZW4mc3ViQml6PWNqemMmcGFnZT0xJm1vZHVsZUlkPTE3NzYmcGFnZVNpemU9NjAnXFxuICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICDnu7zlkIjmuLjmiI86ICdodHRwczovL3d3dy55eS5jb20vbW9yZS9wYWdlLmFjdGlvbj9iaXo9Y2hpY2tlbiZzdWJCaXo9ZGpyeSZwYWdlPTEmbW9kdWxlSWQ9MzY4NyZwYWdlU2l6ZT02MCdcXG4gICAgICAgICB9XTtcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuYmplY3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgICAgdGl0bGUgPSBPYmplY3Qua2V5cyhpdGVtKVswXTtcXG4gICAgICAgICAgICAgaWQgPSBPYmplY3QudmFsdWVzKGl0ZW0pWzBdO1xcbiAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgdGl0bGU6IGNvbG9yKGlkLCBnZXRNeVZhcigneXknLCBiamVjdFswXS7pn7PkuZApLCB0aXRsZSksXFxuICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGlkKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3l5JywgaWQpXFxuICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgICAgICAgfSwgaWQpLFxcbiAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICAgICAgICAgICB9KVxcbiAgICAgICAgIH0pXFxuZC5wdXNoKHtcXG4gICAgICAgICAgICAgY29sX3R5cGU6ICdibGFua19ibG9jaydcXG4gICAgICAgICB9KTtcXG5iamVjdHMuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgICAgdGl0bGUgPSBPYmplY3Qua2V5cyhpdGVtKVswXTtcXG4gICAgICAgICAgICAgaWQgPSBPYmplY3QudmFsdWVzKGl0ZW0pWzBdO1xcbiAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgdGl0bGU6IGNvbG9yKGlkLCBnZXRNeVZhcigneXknLCBiamVjdFswXS7pn7PkuZApLCB0aXRsZSksXFxuICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGlkKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3l5JywgaWQpXFxuICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgICAgICAgfSwgaWQpLFxcbiAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICAgICAgICAgICB9KVxcbiAgICAgICAgIH0pXFxuICAgICB9XFxuXFxuICAgICB5eSA9IGdldE15VmFyKCd5eScsIGJqZWN0WzBdLumfs+S5kCkucmVwbGFjZSgncGFnZT0xJywncGFnZT0nK01ZX1BBR0UpO1xcbiAgICAgbGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoKHl5KSkuZGF0YS5kYXRhO1xcblxcbiAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgIHRpdGxlOiBpdGVtLmRlc2MsXFxuICAgICAgICAgICAgIGRlc2M6ICfwn5SlJytpdGVtLnVzZXJzLFxcbiAgICAgICAgICAgICBpbWc6IGl0ZW0udGh1bWIsXFxuICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vY2Z5eS5jYy9hcGkveXkvJyArIGl0ZW0uc2lkICsgJy5tM3U4JyArIGxhenksXFxuICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMidcXG4gICAgICAgICB9KVxcbiAgICAgfSlcXG4gfSBlbHNlXFxuIGlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgIHRyeSB7XFxuICAgICAgICAgbGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1VSTCkpO1xcbiAgICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnVzZXJuYW1lLFxcbiAgICAgICAgICAgICAgICAgaW1nOiBpdGVtLnBpYyxcXG4gICAgICAgICAgICAgICAgIHVybDogTVlfSE9NRSArICcvY2YvNi8nICsgaXRlbS5yaWQgKyAnLmZsdicgKyBsYXp5LFxcbiAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcbiAgICAgICAgICAgICB9KVxcbiAgICAgICAgIH0pXFxuICAgICB9IGNhdGNoIChlKSB7fVxcblxcbiAgICAgZnVuY3Rpb24g6YCa55SoKE1ZX1VSTCkge1xcbiAgICAgICAgIGlmIChNWV9VUkwuaW5jbHVkZXMoJ2tzLnBocCcpKSB7XFxuICAgICAgICAgICAgIGlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdibGFua19ibG9jaydcXG4gICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgW3tcXG4gICAgICAgICAgICAgICAgICAgICDpopzlgLw6ICcxMDAwMDA2J1xcbiAgICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgIOaJjeiJujogJzEwMDAwMDQnXFxuICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAg6Z+z5LmQOiAnMTAwMDAwMydcXG4gICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICDmg4XmhJ86ICcxMDAwMDA3J1xcbiAgICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgIOiInui5iDogJzEwMDAwMDInXFxuICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAg6ISx5Y+j56eAOiAnMTAwMDAwNSdcXG4gICAgICAgICAgICAgICAgIH1dLmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBPYmplY3Qua2V5cyhpdGVtKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICBpZCA9IE9iamVjdC52YWx1ZXMoaXRlbSlbMF07XFxuICAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGNvbG9yKGlkLCBnZXRNeVZhcign5b+r5omLJywgJzEwMDAwMDYnKSwgdGl0bGUpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGlkKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcign5b+r5omLJywgaWQpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgfSwgaWQpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgdmFyIGh0bWwgPSBmZXRjaChNWV9VUkwgKyBnZXRNeVZhcign5b+r5omLJywgJzEwMDAwMDYnKSk7XFxuICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgaHRtbCA9IGZldGNoKE1ZX1VSTCk7XFxuICAgICAgICAgfVxcbiAgICAgICAgIGxldCBsaXN0ID0gcGRmYShodG1sLCAnYm9keSYmcCcpO1xcbiAgICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgICAgaW1nID0gcGRmaChpdGVtLCAnaW1nJiZzcmMnKTtcXG4gICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICdUZXh0Jykuc3BsaXQoJy0nKVswXSxcXG4gICAgICAgICAgICAgICAgIGRlc2M6IHBkZmgoaXRlbSwgJ1RleHQnKS5zcGxpdCgnLScpWzFdLFxcbiAgICAgICAgICAgICAgICAgaW1nOiBpbWcuc3RhcnRzV2l0aCgnaHR0cCcpID8gaW1nIDogJ2h0dHBzOicgKyBpbWcsXFxuICAgICAgICAgICAgICAgICB1cmw6IE1ZX0hPTUUgKyBwZGZoKGl0ZW0sICdhJiZocmVmJykgKyBsYXp5LFxcbiAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcbiAgICAgICAgICAgICB9KVxcbiAgICAgICAgIH0pXFxuICAgICB9XFxuICAgICBpZiAoTVlfVVJMLmluY2x1ZGVzKCdrcy5waHAnKSkge1xcbiAgICAgICAgIOmAmueUqChNWV9VUkwucmVwbGFjZSgnc3M9JywgJ2lkPScpKVxcbiAgICAgfSBlbHNlXFxuICAgICBpZiAoTVlfVVJMLmluY2x1ZGVzKCdub3cucGhwJykpIHtcXG4gICAgICAgICDpgJrnlKgoTVlfVVJMLnJlcGxhY2UoJ3NzPScsICdpZD0wJykpXFxuICAgICB9IGVsc2Uge1xcbiAgICAgICAgIOmAmueUqChNWV9VUkwpXFxuICAgICB9XFxuIH1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueUteWPsFwiLFwicGF0aFwiOlwiZHRcIixcInJ1bGVcIjpcImlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgZnVuY3Rpb24gY29sb3IoYSwgYiwgdHh0KSB7XFxuICAgICAgICByZXR1cm4gYSA9PSBiID8gJ+KAnOKAnOKAneKAnTxiPjxmb250IGNvbG9yPScgKyBnZXRSYW5nZUNvbG9ycygpICsgJz4nICsgdHh0ICsgJzwvZm9udD48L2I+JyA6IHR4dFxcbiAgICB9XFxuICAgIHZhciB1cmwgPSBNWV9VUkwucmVwbGFjZShNWV9VUkwsIE1ZX0hPTUUgKyAnL2ZtLycpO1xcbiAgICB2YXIgaHRtbCA9IGZldGNoKHVybCk7XFxuICAgIHZhciBsaXN0ID0gcGRmYShodG1sLCAnLmJ0JiZhJykuc2xpY2UoMSk7XFxuICAgIHZhciBsaXN0MiA9IHBkZmEoaHRtbCwgJy5idCYmb3B0aW9uJykuc2xpY2UoMSk7XFxuICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgIHZhciB0aXRsZSA9IHBkZmgoaXRlbSwgJ2EmJlRleHQnKTtcXG4gICAgICAgIHZhciBkdXJsID0gcGRmaChpdGVtLCAnYSYmaHJlZicpO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogY29sb3IoZHVybCwgZ2V0TXlWYXIoJ+eUteWPsCcsICc/Zm09NDA3JyksIHRpdGxlKSxcXG4gICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcign55S15Y+wJywgdXJsKVxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgIH0sIGR1cmwpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgICAgIH0pXFxuICAgIH0pXFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJ1xcbiAgICB9KVxcbiAgICBsaXN0Mi5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgdmFyIHRpdGxlID0gcGRmaChpdGVtLCAnVGV4dCcpO1xcbiAgICAgICAgdmFyIGR1cmwgPSBwZGZoKGl0ZW0sICdvcHRpb24mJnZhbHVlJyk7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBjb2xvcihkdXJsLCBnZXRNeVZhcign55S15Y+wJyksIHRpdGxlKSxcXG4gICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcign55S15Y+wJywgdXJsKVxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgIH0sIGR1cmwpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgICAgIH0pXFxuICAgIH0pXFxuXFxuICAgIHVybCA9IE1ZX0hPTUUgKyAnL2ZtL3F0LnBocCcgKyBnZXRNeVZhcign55S15Y+wJywgJz9mbT00MDcnKTtcXG4gICAgbGlzdCA9IEpTT04ucGFyc2UoZmV0Y2godXJsKSkuRGF0YTtcXG4gICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcXG4gICAgICAgICAgICAvL2Rlc2M6IGl0ZW0uYXV0aG9yLFxcbiAgICAgICAgICAgIGltZzogaXRlbS5waWMuc3RhcnRzV2l0aCgnaHR0cCcpID8gaXRlbS5waWMgOiAnaHR0cHM6JyArIGl0ZW0ucGljLFxcbiAgICAgICAgICAgIHVybDogaXRlbS51cmwgKyAkKFxcXCJcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dDtcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcidcXG4gICAgICAgIH0pXFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZSdcXG4gICAgICAgIH0pXFxuICAgIH0pXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pu05pawXCIsXCJwYXRoXCI6XCLmm7TmlrBcIixcInJ1bGVcIjpcImlmIChnZXRNeVZhcigncXgnLCAnMScpICE9IDApIHtcXG4gICAgdmFyIHVwbGluayA9ICdodHRwOi8vaGlrZXIubm9raWEucHJlc3MvaGlrZXJ1bGUvcnVsZWxpc3QuanNvbj9pZD02NTg0J1xcbiAgICBsZXQgbmV3VmVyc2lvbjtcXG4gICAgbGV0IG15VmVyc2lvbiA9IE1ZX1JVTEUudmVyc2lvbiA9PSAwID8gMjAyNDAyMDMgOiBNWV9SVUxFLnZlcnNpb247XFxuICAgIHRyeSB7XFxuICAgICAgICBuZXdWZXJzaW9uID0gSlNPTi5wYXJzZShmZXRjaENhY2hlKHVwbGluaywgMjQsIHtcXG4gICAgICAgICAgICB0aW1lb3V0OiAxMDAwXFxuICAgICAgICB9KSkudmVyc2lvbjtcXG4gICAgICAgIGxvZyhuZXdWZXJzaW9uKVxcbiAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICBuZXdWZXJzaW9uID0gbXlWZXJzaW9uO1xcbiAgICB9XFxuICAgIGxldCBpc1VwZGF0ZSA9IE51bWJlcihuZXdWZXJzaW9uKSA+IE51bWJlcihteVZlcnNpb24pO1xcbiAgICBpZiAoaXNVcGRhdGUpIHtcXG4gICAgICAgIGxvZygn5pyJ5paw54mI5pysOicgKyBuZXdWZXJzaW9uICsgJyzlvZPliY06JyArIG15VmVyc2lvbik7XFxuICAgICAgICBjb25maXJtKHtcXG4gICAgICAgICAgICB0aXRsZTogJ+abtOaWsOaPkOekuicsXFxuICAgICAgICAgICAgY29udGVudDogJ+ajgOa1i+WIsOS9oOeahOinhOWImeeJiOacrOWwj+S6juacjeWKoeWZqOeJiOacrO+8jOaYr+WQpueri+WNs+abtOaWsO+8nycsXFxuICAgICAgICAgICAgY29uZmlybTogJC50b1N0cmluZygodXBsaW5rKSA9PiB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBg5rW36ZiU6KeG55WM6aaW6aG16aKR6YGT6KeE5YiZ77+laG9tZV9ydWxlX3VybO+/pSR7dXBsaW5rfWBcXG4gICAgICAgICAgICB9LCB1cGxpbmspLFxcbiAgICAgICAgICAgIGNhbmNlbDogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBwdXRNeVZhcigncXgnLCAnMCcpXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH0pXFxuICAgIH1cXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLnlLXop4ZcIixcInBhdGhcIjpcImRzXCIsXCJydWxlXCI6XCJhZGRMaXN0ZW5lcihcXFwib25SZWZyZXNoXFxcIiwgJC50b1N0cmluZygoKSA9PiB7XFxuICAgIGNsZWFyTXlWYXIoXFxcImlcXFwiKTtcXG4gICAgXFxufSkpO1xcbnZhciBodG1sID0gcmVxdWVzdCgnaHR0cHM6Ly9jZnNzLmNjL2RzJywge30pO1xcbmlmIChodG1sID09ICcnKSB7XFxuICAgIHZhciBodG1sID0gcmVxdWVzdChNWV9VUkwsIHt9KTtcXG59XFxuXFxuZnVuY3Rpb24gY29sb3IoYSwgYiwgdHh0KSB7XFxuICAgIHJldHVybiBhID09IGIgPyAn4oCc4oCc4oCd4oCdPGI+PGZvbnQgY29sb3I9JyArIGdldFJhbmdlQ29sb3JzKCkgKyAnPicgKyB0eHQgKyAnPC9mb250PjwvYj4nIDogdHh0XFxufVxcbmlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgdmFyIGxpc3RzID0gcGRmYShodG1sLCAnYm9keSYmaDEnKTtcXG4gICAgbGlzdHMuZm9yRWFjaCgoZGF0YSwgaSkgPT4ge1xcbiAgICAgICAgdmFyIHRpdGxlID0gcGRmaChkYXRhLCAnaDEmJlRleHQnKS5yZXBsYWNlKCfplb/po44nLCAnJykucmVwbGFjZSgn5YyX5pa5JywgJycpLnJlcGxhY2UoJ+eUteinhicsICcnKTtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGNvbG9yKGksIGdldE15VmFyKCdpJywgJzAnKSwgdGl0bGUpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxuICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKCdpJywgaSlcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgfSwgaSlcXG4gICAgICAgIH0pXFxuICAgIH0pXFxuICAgIC8vJC5yZXF1aXJlKFxcXCJMb2FkaW5nXFxcIikuTG9hZGluZygpXFxuICAgIHZhciBsaXN0cyA9IHBkZmEoaHRtbCwgJ2JvZHkmJi51dScpO1xcbiAgICB2YXIgbGlzdCA9IHBkZmEobGlzdHNbZ2V0TXlWYXIoJ2knLCAnMCcpXSwgJ2JvZHkmJmEnKTtcXG4gICAgbGlzdC5mb3JFYWNoKGRhdGEgPT4ge1xcbiAgICAgICAgdmFyIGltZyA9IE1ZX0hPTUUgKyAnL2RzLycgKyBwZGZoKGRhdGEsICdpbWcmJnNyYycpICsgJ0BSZWZlcmVyPSc7XFxuICAgICAgICB2YXIgdGl0bGUgPSBwZGZoKGRhdGEsICdhJiZUZXh0Jyk7XFxuICAgICAgICB2YXIgdGl0bGUxID0gcGRmaChkYXRhLCAnaW1nJiZzcmMnKS5yZXBsYWNlKC8uKlxcXFwvKC4qPylcXFxcLmpwZy8sICckMScpO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUgfHwgdGl0bGUxLFxcbiAgICAgICAgICAgIGltZzogaW1nLFxcbiAgICAgICAgICAgIHVybDogcGQoZGF0YSwgJ2EmJmhyZWYnKSArIGxhenksXFxuICAgICAgICAgICAgY29sX3R5cGU6IHRpdGxlID09ICcnID8gJ2ljb25fNF9jYXJkJyA6ICd0ZXh0XzMnLFxcbiAgICAgICAgfSlcXG4gICAgfSlcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJsYXp5XCIsXCJwYXRoXCI6XCJsYXp5XCIsXCJydWxlXCI6XCJ2YXIgbGF6eSA9ICQoJycpLmxhenlSdWxlKChNWV9IT01FKSA9PiB7XFxuICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZSgnY2Z5eScsICdjZnNzJyk7XFxuICAgIGlmICgvXFxcXC9ta1xcXFwvLy50ZXN0KGlucHV0KSkge1xcbiAgICAgICAgdmFyIHVybCA9IHJlcXVlc3QoaW5wdXQsIHt9KS5tYXRjaCgvdXJsOiAnKC4qPyknLylbMV1cXG4gICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aChcXFwiaHR0cFxcXCIpKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHVybCArICc7e1JlZmVyZXJAJyArIGlucHV0ICsgJ30nO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICByZXR1cm4gJ2h0dHBzOi8vY2Zzcy5jYycgKyB1cmwgKyAnO3tSZWZlcmVyQCcgKyBpbnB1dCArICd9JztcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICB0cnkge1xcbiAgICAgICAgaWYgKGlucHV0LmluY2x1ZGVzKCdiZmdkJykpIHtcXG4gICAgICAgICAgICB2YXIgdXJsID0gcmVxdWVzdChpbnB1dCwge30pLm1hdGNoKC91cmw6ICcoLio/KScvKVsxXVxcbiAgICAgICAgICAgIHJldHVybiAnaHR0cHM6Ly9jZnNzLmNjJyArIHVybCArICc7e1JlZmVyZXJAJyArIGlucHV0ICsgJ30nO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICB2YXIgdXJsID0gcmVxdWVzdChpbnB1dCwge30pLm1hdGNoKC91cmw6ICcoLio/KScvKVsxXVxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKHVybC5zdGFydHNXaXRoKFxcXCJodHRwXFxcIikpIHtcXG4gICAgICAgICAgICByZXR1cm4gdXJsICsgJzt7UmVmZXJlckAnICsgaW5wdXQgKyAnfSc7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHJldHVybiAnaHR0cHM6Ly9jZnNzLmNjJyArIHVybCArICc7e1JlZmVyZXJAJyArIGlucHV0ICsgJ30nO1xcbiAgICAgICAgfVxcbiAgICB9IGNhdGNoIChlKSB7fVxcbiAgICByZXR1cm4gJ3ZpZGVvOi8vJyArIGlucHV0XFxufSwgTVlfSE9NRSlcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIk1WXCIsXCJwYXRoXCI6XCJNVlwiLFwicnVsZVwiOlwidmFyIGh0bWwgPSBNWV9VUkwuc3BsaXQoXFxcIiNcXFwiKVswXS5yZXBsYWNlKCdtcDMnLCAnbXA0JylcXG52YXIgc2ogPSBwZGZoKHJlcXVlc3QoaHRtbCwge30pLCAnaWZyYW1lJiZzcmMnKVxcbnZhciB1cmwgPSBodG1sICsgc2pcXG52YXIgbGF6eSA9ICQoXFxcIlxcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICB2YXIgdXJsID0gcmVxdWVzdChpbnB1dCwge30pLm1hdGNoKC92aWRlbzonKC4qPyknLylbMV1cXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgIHZhciB1cmwgPSByZXF1ZXN0KGlucHV0LCB7fSkubWF0Y2goL3VybDogJyguKj8pJy8pWzFdXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aChcXFwiaHR0cFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiB1cmxcXG4gICAgICAgICAgICB9IGVsc2UgXFxuICAgICAgICAgICAgaWYgKHVybC5zdGFydHNXaXRoKFxcXCIvL1xcXCIpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiAnaHR0cHM6JyArIHVybFxcbiAgICAgICAgICAgIH0ge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2h0dHBzOi8vY2Zzcy5jYycgKyB1cmxcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcbmlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgdmFyIGFyciA9IFtcXFwi6YW354uXXFxcIiwgXFxcIumFt+aIkVxcXCIsIFxcXCJRUVxcXCIsIFxcXCLnvZHmmJNcXFwiLCBcXFwi5ZOU5ZOpXFxcIl1cXG4gICAgYXJyLmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICB4eSA9ICfigJjigJjigJnigJk8Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICMxYWFkMTlcXFwiPicgKyBpdGVtICsgJzwvc3Bhbj48L2I+JztcXG4gICAgICAgIHZhciB0aXRsZSA9IGl0ZW0gPT09IGdldE15VmFyKCdmbHMnLCAn6YW354uXJykgPyB4eSA6IGl0ZW07XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHRhKSA9PiB7XFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKCdmbHMnLCB0YSlcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgfSwgaXRlbSksXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgICAgIH0pXFxuICAgIH0pO1xcbn1cXG5sZXQgbW9kZSA9IGdldE15VmFyKCdmbHMnLCAn6YW35oiRJylcXG5zd2l0Y2ggKG1vZGUpIHtcXG4gICAgY2FzZSAn6YW354uXJzpcXG4gICAgICAgIHZhciBsaXN0ID0gcGRmYShyZXF1ZXN0KHVybCwge30pLCAnYm9keSYmLmpjJylcXG4gICAgICAgIGJyZWFrXFxuICAgIGNhc2UgJ+mFt+aIkSc6XFxuICAgICAgICB2YXIgbGlzdCA9IHBkZmEocmVxdWVzdCh1cmwucmVwbGFjZSgna2cvY2YnLCAna3cnKSwge30pLCAnYm9keSYmLmpjJylcXG4gICAgICAgIGJyZWFrXFxuICAgIGNhc2UgJ1FRJzpcXG5sb2coJ2h0dHBzOi8vY2Z5eS5jYy9tcDQvcXEvanNvbi5waHA/c3M9JyArIHNqLnNwbGl0KFxcXCI9XFxcIilbMV0pXFxuICAgICAgICB2YXIgbGlzdCA9IHJlcXVlc3QoJ2h0dHBzOi8vY2Z5eS5jYy9tcDQvcXEvanNvbi5waHA/c3M9JyArIHNqLnNwbGl0KFxcXCI9XFxcIilbMV0pXFxuICAgICAgICB2YXIgbGlzdCA9IEpTT04ucGFyc2UobGlzdCkuRGF0YTtcXG5pZihsaXN0ID09ICcnKSB7XFxuICAgICAgICB2YXIgbGlzdCA9IEpTT04ucGFyc2UocmVxdWVzdCgnaHR0cHM6Ly9jZnl5LmNjL21wNC9xcS9qc29uLnBocCcpKS5EYXRhO1xcbn1cXG5saXN0LmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGRhdGEudHBcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS9odHRwLy50ZXN0KHBpYykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9ICdodHRwczonICsgcGljXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLnR4LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiBkYXRhLnNjLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWc6IHBpYyArICdAUmVmZXJlcj0nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IE1ZX0hPTUUrJy9DZi92cS8nK2RhdGEuaWQrJy5tcDQnKyBsYXp5LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJycsXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIH0pICAgICAgICBcXG4gICAgICAgIGJyZWFrXFxuICAgIGNhc2UgJ+e9keaYkyc6XFxuICAgICAgICB2YXIgbGlzdCA9IHJlcXVlc3QoJ2h0dHBzOi8vY2Z5eS5jYy9qbS8/dXJsPWh0dHA6Ly9tdXNpYy4xNjMuY29tL2FwaS9jbG91ZHNlYXJjaC9wYz9zPScgKyBzai5zcGxpdChcXFwiPVxcXCIpWzFdICsgJyZ0eXBlPTEwMTQmb2Zmc2V0PTAmdG90YWw9dHJ1ZSZsaW1pdD0yMCZKU09OY2FsbGJhY2s9PycsIHt9KVxcbiAgICAgICB2YXIgbGlzdCA9IEpTT04ucGFyc2UobGlzdC5tYXRjaCgvXFxcXCgoLiopXFxcXCkvKVsxXSkucmVzdWx0LnZpZGVvc1xcbmxpc3QuZm9yRWFjaChkYXRhID0+IHsgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogZGF0YS5jcmVhdG9yLnVzZXJOYW1lLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWc6IGRhdGEuY292ZXJVcmwgKyAnQFJlZmVyZXI9JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBNWV9IT01FKycvQ2YvMTYzLycrZGF0YS52aWQrJy5tcDQnKyBsYXp5LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJycsXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIH0pICAgICAgIFxcbiAgICAgICAgYnJlYWtcXG4gICAgY2FzZSAn5ZOU5ZOpJzpcXG4gICAgICAgIHZhciBsaXN0ID0gcmVxdWVzdCgnaHR0cHM6Ly9jZnl5LmNjL21wNC9iempzb24ucGhwP3A9MSZzcz0nICsgc2ouc3BsaXQoXFxcIj1cXFwiKVsxXSwge30pXFxuICAgICAgIHZhciBsaXN0ID0gSlNPTi5wYXJzZShsaXN0KS5kYXRhLnJlc3VsdFxcbmxpc3QuZm9yRWFjaChkYXRhID0+IHsgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZS5yZXBsYWNlKCdlbSBjbGFzcz1cXFwia2V5d29yZFxcXCI+JywnICcpLnJlcGxhY2UoJzwvZW0+JywnICcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiBkYXRhLmR1cmF0aW9uLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWc6ICdodHRwczonICsgZGF0YS5waWMgKyAnQFJlZmVyZXI9JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBNWV9IT01FKycvQ2YvYnovJytkYXRhLmlkKycubXA0JysgbGF6eSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICB9KSAgICAgICBcXG4gICAgICAgIGJyZWFrICAgIFxcbn1cXG5pZihtb2RlID09ICfphbfmiJEnIHx8IG1vZGUgPT0gJ+mFt+eLlycpIHtcXG5saXN0LmZvckVhY2goZGF0YSA9PiB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogcGRmaChkYXRhLCAnYSYmdGl0bGUnKSxcXG4gICAgICAgIC8vIGRlc2M6IGRhdGEuYXV0aG9yLFxcbiAgICAgICAgaW1nOiBwZGZoKGRhdGEsICdpbWcmJnNyYycpICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICB1cmw6IE1ZX0hPTUUgKyAnL21wNC9rZy8nICsgcGRmaChkYXRhLCAnYSYmaHJlZicpICsgbGF6eSxcXG4gICAgICAgIGNvbF90eXBlOiAnJyxcXG4gICAgfSlcXG59KVxcbn1cIn0se1wiY29sX3R5cGVcIjpcImF2YXRhclwiLFwibmFtZVwiOlwi5q2M5Y2VXCIsXCJwYXRoXCI6XCJnZFwiLFwicnVsZVwiOlwidmFyIGh0bWwgPSByZXF1ZXN0KE1ZX1VSTCwge30pXFxudmFyIGxpc3QgPSBwZGZhKGh0bWwsICdib2R5JiYuamMnKVxcbnRyeSB7XFxuICAgIGxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IHBkZmgoZGF0YSwgJ2EmJlRleHQnKSxcXG4gICAgICAgICAgICB1cmw6IE1ZX0hPTUUgKyAnL21wMy9rZy5waHA/c3M9JyArIHBkZmgoZGF0YSwgJ2EmJlRleHQnKSArICQoJycpLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgZCA9IFtdO1xcbiAgICAgICAgICAgICAgICAkLnJlcXVpcmUoXFxcIkxvYWRpbmdcXFwiKS5Mb2FkaW5nKClcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gSlNPTi5wYXJzZShyZXF1ZXN0KE1ZX1VSTCwge30pKS5EYXRhO1xcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IGV2YWwocmVxdWVzdChNWV9VUkwsIHt9KS5tYXRjaCgvXFxcIkRhdGFcXFwiOiAoXFxcXFtbXFxcXHNcXFxcU10qXFxcXF0pLylbMV0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0LmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGRhdGEucGljXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEvaHR0cC8udGVzdChwaWMpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSAnaHR0cHM6JyArIHBpY1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogZGF0YS5hdXRob3IsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZzogcGljICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogZGF0YS51cmwgKyAkKFxcXCJcXFwiKS5sYXp5UnVsZSgobHJjKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1xcXFwvMTYzXFxcXC8vLnRlc3QoaW5wdXQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxyYyA9IHJlcXVlc3QobHJjLCB7fSkucmVwbGFjZSgvXFxcXFsvZywgJ1xcXFxuWycpLnJlcGxhY2UoL1tcXFxcc1xcXFxTXSo/XFxcXFsvLCAnWycpLnJlcGxhY2UoL1tcXFxcc1xcXFxTXSpcXFxcPi8sICcnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2lucHV0XSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBseXJpYzogbHJjXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBkYXRhLmxyYyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnYXZhdGFyJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cXG5NWV9QQUdFID09IDEgPyBzZXRQcmVSZXN1bHQoZCkgOiBzZXRSZXN1bHQoZCk7XFxuZGVsZXRlSXRlbUJ5Q2xzKCdsb2FkaW5nX2dpZicpO1xcblxcbiAgICAgICAgICAgIH0pLFxcblxcbiAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJyxcXG4gICAgICAgIH0pXFxuICAgIH0pXFxufSBjYXRjaCAoZSkge31cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuatjOaJi1wiLFwicGF0aFwiOlwiZ3NcIixcInJ1bGVcIjpcInZhciBodG1sID0gcmVxdWVzdChNWV9VUkwsIHt9KTtcXG52YXIgbGlzdCA9IHBkZmEoaHRtbCwgJ2JvZHkmJi5qYycpXFxudHJ5IHtcXG4gICAgbGlzdC5mb3JFYWNoKGRhdGEgPT4ge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogcGRmaChkYXRhLCAnYSYmVGV4dCcpLFxcbiAgICAgICAgICAgIC8vaW1nOiBwZChkYXRhLCAnYSYmZGF0YS1vcmlnaW5hbCcpICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgdXJsOiBNWV9IT01FICsgJy9tcDMva3cucGhwP3NzPScgKyBwZGZoKGRhdGEsICdhJiZUZXh0JyksXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzMnLFxcbiAgICAgICAgfSlcXG4gICAgfSlcXG59IGNhdGNoIChlKSB7fVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6Z+z5LmQXCIsXCJwYXRoXCI6XCJtcDNcIixcInJ1bGVcIjpcImxldCBuYW1lID0gcmVxdWVzdChNWV9IT01FICsgJy9tcDMnLCB7fSkubWF0Y2goL0NmXFxcXChcXFwiKC4qPylcXFwiLylbMV0uc3BsaXQoXFxcIj1cXFwiKVsxXTtcXG5cXG5mdW5jdGlvbiBjb2xvcihhLCBiLCB0eHQpIHtcXG4gICAgcmV0dXJuIGEgPT0gYiA/ICfigJzigJzigJ3igJ08Yj48Zm9udCBjb2xvcj0nICsgZ2V0UmFuZ2VDb2xvcnMoKSArICc+JyArIHR4dCArICc8L2ZvbnQ+PC9iPicgOiB0eHRcXG59XFxubGV0IG1wMyA9IFt7XFxuICAgIOmFt+aIkemfs+S5kDogJy9tcDMva3cucGhwP3NzPSdcXG59LCB7XFxuICAgIOmFt+eLl+mfs+S5kDogJy9tcDMva2cucGhwP3NzPSdcXG59LCB7XFxuICAgIOe9keaYk+mfs+S5kDogJy9tcDMvMTYzLnBocD9zcz0nXFxufV07XFxubXAzLmZvckVhY2goaXRlbSA9PiB7XFxuICAgIHRpdGxlID0gT2JqZWN0LmtleXMoaXRlbSlbMF07XFxuICAgIGlkID0gT2JqZWN0LnZhbHVlcyhpdGVtKVswXTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBjb2xvcihpZCwgZ2V0TXlWYXIoJ21wMycsIG1wM1swXS7phbfmiJHpn7PkuZApLCB0aXRsZSksXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGlkKSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ21wMycsIGlkKVxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgIH0sIGlkKSxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgfSlcXG59KVxcbnZhciBsaXN0ID0gSlNPTi5wYXJzZShyZXF1ZXN0KE1ZX0hPTUUgKyBnZXRNeVZhcignbXAzJywgbXAzWzBdLumFt+aIkemfs+S5kCkgKyBuYW1lKSkuRGF0YVxcbnRyeSB7XFxuICAgIGxpc3QuZm9yRWFjaChkYXRhID0+IHtcXG4gICAgICAgIHZhciBwaWMgPSBkYXRhLnBpY1xcbiAgICAgICAgaWYgKCFwaWMuc3RhcnRzV2l0aChcXFwiaHR0cFxcXCIpKSB7XFxuICAgICAgICAgICAgdmFyIHBpYyA9ICdodHRwczonICsgcGljXFxuICAgICAgICB9XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcbiAgICAgICAgICAgIGRlc2M6IGRhdGEuYXV0aG9yLFxcbiAgICAgICAgICAgIGltZzogcGljICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgdXJsOiBkYXRhLnVybCArICQoXFxcIlxcXCIpLmxhenlSdWxlKChscmMpID0+IHtcXG4gICAgICAgICAgICAgICAgaWYgKC9cXFxcLzE2M1xcXFwvLy50ZXN0KGlucHV0KSkge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxyYyA9IHJlcXVlc3QobHJjLCB7fSkucmVwbGFjZSgvXFxcXFsvZywgJ1xcXFxuWycpLnJlcGxhY2UoL1tcXFxcc1xcXFxTXSo/XFxcXFsvLCAnWycpLnJlcGxhY2UoL1tcXFxcc1xcXFxTXSpcXFxcPi8sICcnKVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICB1cmxzOiBbaW5wdXRdLFxcbiAgICAgICAgICAgICAgICAgICAgbHlyaWM6IGxyY1xcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0sIGRhdGEubHJjKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJycsXFxuICAgICAgICB9KVxcbiAgICB9KVxcbn0gY2F0Y2ggKGUpIHt9XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCJMb2FkaW5nXCIsXCJwYXRoXCI6XCJMb2FkaW5nXCIsXCJydWxlXCI6XCJmdW5jdGlvbiBMb2FkaW5nKCkge1xcbiAgICB2YXIgZCA9IFtdXFxuICAgIGQucHVzaCh7XFxuICAgICAgICBpbWc6IFxcXCJodHRwczovL2traW1ncy55aXNvdS5jb20vaW1zP2t0PXVybCZhdD1vcmkma2V5PWFIUjBjRG92TDNOekxtTnpaRzR1Ym1WMEwzQV9hSFIwY0hNNkx5OXRiV0pwZWk1eGNHbGpMbU51TDIxdFltbDZYMmRwWmk4MFltbGpaVmMyWW5WMGVIRmpNakV3UjJzNVRYVjNlak5MVkRobFZtNWpTSFZKYkVwa1dHbGpja3BwWVd0RGFIUk5WMkZFTlhCeWRGbDZaRUZ1ZUZWdGNISnJhM3AyZGtvMlFqZGtSRzF2UkVOd1lURndZVFoyVVM4Mk5EQV9kM2hmWm0xMFBXZHBaZz09JnNpZ249eXg6UTNKbUk2TVBpVWpLTzl6bEdRWXVkT2ZQSGlrPSZ0dj0wXzBcXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJwaWNfMV9jZW50ZXJcXFwiLFxcbiAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICBjbHM6IFxcXCJsb2FkaW5nX2dpZlxcXCJcXG4gICAgICAgIH1cXG4gICAgfSk7XFxuICAgIHNldFByZVJlc3VsdChkKTtcXG59XFxuJC5leHBvcnRzID0ge1xcbiAgICBMb2FkaW5nOiBMb2FkaW5nXFxufVwifV0iLCJpY29uIjoiaHR0cHM6Ly9jZnl5LmNjL0J0L2NmLmljbyIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment