Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥青春笨蛋少年不做小学美少女的梦@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWKqOaAgVwiLFwicGF0aFwiOlwiZHQxXCIsXCJydWxlXCI6XCJjb25zdCBlbXB0eSA9IFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcblxcbmlmICh0eXBlb2Yo5ou85o6l5YiG57G7KSAhPSAndW5kZWZpbmVkJyAmJiDmi7zmjqXliIbnsbsgIT0gJycpIHtcXG4gICAgdmFyIGNhdGVnb3JpZXMgPSBwZGZhKGh0bWwsIOWkp+exu+WumuS9jSkuY29uY2F0KHBkZmEoaHRtbCwg5ou85o6l5YiG57G7KSlcXG59IGVsc2Uge1xcbiAgICB2YXIgY2F0ZWdvcmllcyA9IHBkZmEoaHRtbCwg5aSn57G75a6a5L2NKVxcbn1cXG5cXG5sZXQgaW5pdF9jYXRlID0gW11cXG5cXG5mb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcXG4gICAgaW5pdF9jYXRlLnB1c2goXFxcIjBcXFwiKVxcbn1cXG5cXG5jb25zdCBmb2xkID0gZ2V0VmFyKE1ZX1JVTEUuZ3JvdXAsIFxcXCIwXFxcIilcXG5jb25zdCBjYXRlX3RlbXBfanNvbiA9IGdldFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUpKVxcbmNvbnN0IGNhdGVfdGVtcCA9IEpTT04ucGFyc2UoY2F0ZV90ZW1wX2pzb24pXFxuXFxuaWYgKHBhcnNlSW50KHBhZ2UpID09PSAxKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogZm9sZCA9PT0gJzEnID8gJ+KAnOKAnOKAneKAnTxiPicgKyAn8J+TrCcuZm9udGNvbG9yKFxcXCIjRkYwMDAwXFxcIikgKyAnPC9iPicgOiAn4oCc4oCc4oCd4oCdPGI+JyArICfwn5OqJy5mb250Y29sb3IoXFxcIiMxYWFkMTlcXFwiKSArICc8L2I+JyxcXG4gICAgICAgIHVybDogJCgpLmxhenlSdWxlKChmb2xkKSA9PiB7XFxuICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUuZ3JvdXAsIGZvbGQgPT09ICcxJyA/ICcwJyA6ICcxJyk7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgIH0sIGZvbGQpLFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgfSlcXG4gICAgY2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeSwgaW5kZXgpID0+IHtcXG4gICAgICAgIGxldCBzdWJfY2F0ZWdvcmllcyA9IHBkZmEoY2F0ZWdvcnksIOWwj+exu+WumuS9jSk7XFxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcXG4gICAgICAgICAgICBzdWJfY2F0ZWdvcmllcy5mb3JFYWNoKChpdGVtLCBrZXkpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChpdGVtLCDliIbnsbvmoIfpopgpXFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yo5o6S6ZmkKSAhPSAndW5kZWZpbmVkJyAmJiDmjpLpmaQgIT0gJycpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlID0gdGl0bGUucmVwbGFjZShuZXcgUmVnRXhwKOaOkumZpCwgXFxcImdcXFwiKSwgXFxcIlxcXCIpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXkudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2luZGV4XSA/IFxcXCLigJzigJzigJ3igJ1cXFwiICsgdGl0bGUuZm9udGNvbG9yKOWIhuexu+minOiJsikgOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChwZChpdGVtLCDliIbnsbvpk77mjqUpICsgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfY2F0ZSA9IFtdXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNhdGVfdGVtcC5mb3JFYWNoKChjYXRlLCBpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfY2F0ZS5wdXNoKGluZGV4ID09PSAwID8gcGFyYW1zLmtleS50b1N0cmluZygpIDogXFxcIjBcXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudGl0bGUsIEpTT04uc3RyaW5naWZ5KG5ld19jYXRlKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS51cmwsIGlucHV0KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVfdGVtcDogY2F0ZV90ZW1wLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleToga2V5LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IHBhZ2UsXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcImJsYW5rX2Jsb2NrXFxcIlxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfSBlbHNlIGlmIChmb2xkID09PSAnMScpIHtcXG4gICAgICAgICAgICBzdWJfY2F0ZWdvcmllcy5mb3JFYWNoKChpdGVtLCBrZXkpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChpdGVtLCDliIbnsbvmoIfpopgpXFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yo5o6S6ZmkKSAhPSAndW5kZWZpbmVkJyAmJiDmjpLpmaQgIT0gJycpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlID0gdGl0bGUucmVwbGFjZShuZXcgUmVnRXhwKOaOkumZpCwgXFxcImdcXFwiKSwgXFxcIlxcXCIpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXkudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2luZGV4XSA/IFxcXCLigJzigJzigJ3igJ1cXFwiICsgdGl0bGUuZm9udGNvbG9yKOWIhuexu+minOiJsikgOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChwZChpdGVtLCDliIbnsbvpk77mjqUpICsgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlX3RlbXBbcGFyYW1zLmluZGV4XSA9IHBhcmFtcy5rZXkudG9TdHJpbmcoKVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShwYXJhbXMuY2F0ZV90ZW1wKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS51cmwsIGlucHV0KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVfdGVtcDogY2F0ZV90ZW1wLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYWdlLFxcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCJcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgfSlcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuoznuqdcIixcInBhdGhcIjpcImVqXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdXFxudmFyIGh0bWwgPSBnZXRSZXNDb2RlKClcXG5cXG4gIGQucHVzaCh7XFxuICAgIHRpdGxlOiBwZGZoKGh0bWwsICcuc2VhcmNoLXNob3cmJmxpOmNvbnRhaW5zKOWvvOa8lO+8mikmJlRleHQnKSArXFxuICAgICAgICAnXFxcXG4nICsgcGRmaChodG1sLCAnLnNlYXJjaC1zaG93JiZsaTpjb250YWlucyjkuLvmvJTvvJopJiZUZXh0JykgK1xcbiAgICAgICAgJ1xcXFxuJyArIHBkZmgoaHRtbCwgJy5zZWFyY2gtc2hvdyYmbGk6Y29udGFpbnMo5pu05paw77yaKSYmVGV4dCcpLFxcbiAgICBkZXNjOiAn566A5LuLOicgKyBwZGZoKGh0bWwsICcuY2hlY2smJlRleHQnKSxcXG4gICAgaW1nOiBwZChodG1sLCAnLmxhenkmJmRhdGEtc3JjJyksXFxuICAgIHVybDogTVlfVVJMLFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInXFxufSk7XFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9sYXp5JykpLnJ1bGUpXFxuXFxudmFyIOe6v+i3ryA9ICcubmF2LXN3aXBlciYmYTpub3QoOm1hdGNoZXMo5LiL6L29KSknXFxudmFyIOmAiembhiA9ICdib2R5JiYuYW50aG9sb2d5LWxpc3QtYm94J1xcbnZhciDnur/ot6/lkI0gPSAnYS0taSYmVGV4dCdcXG52YXIg6YCJ6ZuG5YiX6KGoID0gJ3VsJiZsaSdcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2Vyamk/cnVsZT3mqKHmnb/Ct1EnKSkucnVsZSlcXG5zZXRSZXN1bHQoZClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWKqOaAgeWIhuexu+aUuVwiLFwicGF0aFwiOlwiZHRmbFwiLFwicnVsZVwiOlwianM6XFxuLypcXG7prZTmlLk6IHpldGFscGhhXFxu5aSH5rOo77ya5LiN6KaB55So5rW36ZiU5Luj56CB5qC85byP5YyWIOWGheWuueS8muWHuumUmVxcbuW/hemhu+WPguaVsO+8mlxcbuWIhuexu+minOiJsiDlpKfnsbvlrprkvY0gXFxu5bCP57G75a6a5L2NIOWIhuexu+agh+mimCDliIbnsbvpk77mjqVcXG5odG1sID0+5rqQ56CBIHBhZ2UgPT7pobXnoIFcXG7lj6/pgInlj4LmlbDvvJpcXG7mi7zmjqXliIbnsbsg5oqY5Y+g5qCH6K6wIOWxleW8gOagh+iusCDmjpLpmaRcXG7lpKfnsbvpk77mjqUg5aSn57G75qCH6aKYIOa4hemZpOmUrlxcbuivtOaYju+8mlxcbuWklumdoueUqGdldE15VmFyKE1ZX1JVTEUudXJsKSDlj5bpk77mjqVcXG4qL1xcblxcbmxldCBlbXB0ecKgID0gXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcclxcbmxldCBjYXRlZ29yaWVzID0gW107XFxyXFxuaWYgKHR5cGVvZijmi7zmjqXliIbnsbspICE9ICd1bmRlZmluZWQnICYmIOaLvOaOpeWIhuexu8KgIT0gJycpe8KgwqDCoMKgXFxyXFxuICAgIGNhdGVnb3JpZXMgPSBbcGRmYShodG1sLCDCoOWkp+exu+WumuS9jSkuam9pbignXFxcXG4nKV0uY29uY2F0KHBkZmEoaHRtbCwgwqDmi7zmjqXliIbnsbspKTtcXHJcXG59wqBlbHNlwqB7wqDCoMKgwqDCoFxcclxcbiAgICBjYXRlZ29yaWVzID0gW3BkZmEoaHRtbCwgwqDlpKfnsbvlrprkvY0pLmpvaW4oJ1xcXFxuJyldO1xcclxcbn1cXHJcXG5sZXTCoGluaXRfY2F0ZcKgPcKgbmV3IEFycmF5KDIwKS5maWxsKFxcXCIwXFxcIik7XFxyXFxuY29uc3TCoGZvbGTCoD3CoGdldE15VmFyKE1ZX1JVTEUuZ3JvdXAswqBcXFwiMFxcXCIpO1xcclxcbmNvbnN0wqBjYXRlX3RlbXDCoD3CoEpTT04ucGFyc2UoZ2V0TXlWYXIoXFxcImhlYWQuY2F0ZVxcXCIswqBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUpKSk7XFxyXFxudmFyIOaKmOWPoD0odHlwZW9mKOaKmOWPoOagh+iusCkgIT0gJ3VuZGVmaW5lZCcgJiYg5oqY5Y+g5qCH6K6wwqAhPSAnJyk/5oqY5Y+g5qCH6K6wOifigJzigJzigJ3igJ0nwqArwqAn4oioJy5mb250Y29sb3IoXFxcIiNGRjAwMDBcXFwiKTtcXG52YXIg5bGV5byAPSh0eXBlb2Yo5bGV5byA5qCH6K6wKSAhPSAndW5kZWZpbmVkJyAmJiDlsZXlvIDmoIforrDCoCE9ICcnKT/lsZXlvIDmoIforrA6J+KAnOKAnOKAneKAnSfCoCvCoCfiiKcnLmZvbnRjb2xvcihcXFwiIzFhYWQxOVxcXCIpO1xcbnZhciDmuIXpmaQ9KHR5cGVvZijmuIXpmaTplK4pICE9ICd1bmRlZmluZWQnICYmIOa4hemZpOmUrsKgIT0gJycpP+a4hemZpOmUrjpbXTtcXG5cXHJcXG5pZsKgKHBhcnNlSW50KHBhZ2UpwqA9PT3CoDEpwqB7XFxyXFxuwqDCoMKgwqBkLnB1c2goe1xcclxcbsKgwqDCoMKgwqDCoMKgwqB0aXRsZTrCoGZvbGTCoD09PcKgJzEnwqA/wqDCoOaKmOWPoMKgOsKg5bGV5byALFxcclxcbsKgwqDCoMKgwqDCoMKgwqB1cmw6wqAkKCkubGF6eVJ1bGUoKGZvbGQpwqA9PsKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dE15VmFyKE1ZX1JVTEUuZ3JvdXAswqBmb2xkwqA9PT3CoCcxJ8KgP8KgJzAnwqA6wqAnMScpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJlZnJlc2hQYWdlKGZhbHNlKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm7CoFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgfSzCoGZvbGQpLFxcclxcbsKgwqDCoMKgwqDCoMKgwqBjb2xfdHlwZTrCoCdzY3JvbGxfYnV0dG9uJyxcXHJcXG7CoMKgwqDCoH0pXFxyXFxuICAgIGxldCBzZXRUaXRsZT0oayxpLHQpPT57ICAgICAgICAgICAgIFxcbiAgICAgIHJldHVybiBrPT1pP1xcXCLigJzigJzigJ3igJ1cXFwiwqArdC5mb250Y29sb3Io5YiG57G76aKc6ImyKTp0XFxyXFxuICAgIH1cXHJcXG7CoMKgwqDCoGNhdGVnb3JpZXMuZm9yRWFjaCgoY2F0ZWdvcnkswqBpbmRleCnCoD0+wqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoGxldMKgc3ViX2NhdGVnb3JpZXPCoD3CoHBkZmEoY2F0ZWdvcnkswqDlsI/nsbvlrprkvY0pO1xcclxcbsKgwqDCoMKgwqDCoMKgwqBpZsKgKGluZGV4wqA9PT3CoDApwqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3ViX2NhdGVnb3JpZXMuZm9yRWFjaCgoaXRlbSzCoGtleSnCoD0+wqB7XFxuICAgICAgICAgICAgICAgIGxldCBf5aSn57G76ZO+5o6lPSh0eXBlb2Yo5aSn57G76ZO+5o6lKSAhPSAndW5kZWZpbmVkJyAmJiDlpKfnsbvpk77mjqXCoCE9ICcnKT/lpKfnsbvpk77mjqU65YiG57G76ZO+5o6lOyAgICAgICAgICAgICAgXFxyXFxuICAgICAgICAgICAgICAgIGxldCBf5aSn57G75qCH6aKYPSh0eXBlb2Yo5aSn57G75qCH6aKYKSAhPSAndW5kZWZpbmVkJyAmJiDlpKfnsbvmoIfpopjCoCE9ICcnKT/lpKfnsbvmoIfpopg65YiG57G75qCH6aKYOyAgICAgICAgICAgICAgXFxuICAgIFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGV0wqB0aXRsZcKgPcKgcGRmaChpdGVtLMKgX+Wkp+exu+agh+mimCk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZsKgKHR5cGVvZijmjpLpmaQpwqAhPcKgJ3VuZGVmaW5lZCfCoCYmwqDmjpLpmaTCoCE9wqAnJynCoHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGXCoD3CoHRpdGxlLnJlcGxhY2UobmV3wqBSZWdFeHAo5o6S6ZmkLMKgXFxcImdcXFwiKSzCoFxcXCJcXFwiKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH1cXG4gICAgICAgICAgICAgICAgbGV0IHBhcmFtcz17XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2F0ZV90ZW1wOsKgY2F0ZV90ZW1wLGtleTrCoGtleSxwYWdlOsKgcGFnZSxjbGVhcnM65riF6ZmkXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9ICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICBcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGQucHVzaCh7ICBcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGU6wqBzZXRUaXRsZShrZXkudG9TdHJpbmcoKSxjYXRlX3RlbXBbaW5kZXhdLHRpdGxlKSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOsKgJ3Njcm9sbF9idXR0b24nLFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1cmw6wqAkKHBkKGl0ZW0swqBf5aSn57G76ZO+5o6lKcKgK8KgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcynCoD0+wqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGV0wqBuZXdfY2F0ZcKgPcKgW107XFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNsZWFycy5mb3JFYWNoKChpdGVtKT0+eyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcihpdGVtKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGFyYW1zLmNhdGVfdGVtcC5mb3JFYWNoKChjYXRlLMKgaW5kZXgpwqA9PsKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbmV3X2NhdGUucHVzaChpbmRleMKgPT09wqAwwqA/wqBwYXJhbXMua2V5LnRvU3RyaW5nKCnCoDrCoFxcXCIwXFxcIilcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KVxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dE15VmFyKFxcXCJoZWFkLmNhdGVcXFwiLMKgSlNPTi5zdHJpbmdpZnkobmV3X2NhdGUpKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwdXRNeVZhcihNWV9SVUxFLnVybCzCoGlucHV0KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZWZyZXNoUGFnZSh0cnVlKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm7CoFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSxwYXJhbXMpXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkLnB1c2goe1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29sX3R5cGU6wqBcXFwiYmxhbmtfYmxvY2tcXFwiLFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pXFxyXFxuwqDCoMKgwqDCoMKgwqDCoH3CoGVsc2XCoGlmwqAoZm9sZMKgPT09wqAnMScpwqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3ViX2NhdGVnb3JpZXMuZm9yRWFjaCgoaXRlbSzCoGtleSnCoD0+wqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsZXTCoHRpdGxlwqA9wqBwZGZoKGl0ZW0swqDliIbnsbvmoIfpopgpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWbCoCh0eXBlb2Yo5o6S6ZmkKcKgIT3CoCd1bmRlZmluZWQnwqAmJsKg5o6S6ZmkwqAhPcKgJycpwqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpdGxlwqA9wqB0aXRsZS5yZXBsYWNlKG5ld8KgUmVnRXhwKOaOkumZpCzCoFxcXCJnXFxcIikswqBcXFwiXFxcIik7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9XFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICB2YXIganNvbj3liIbnsbvpk77mjqUuaW5jbHVkZXMoJ0BAQCcpP3tcXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6cGRmaChpdGVtLOWIhuexu+mTvuaOpS5zcGxpdCgnQEBAJylbMF0pLFxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6cGRmaChpdGVtLOWIhuexu+mTvuaOpS5zcGxpdCgnQEBAJylbMV0pLFxcbiAgICAgICAgICAgICAgICB9OnBkKGl0ZW0s5YiG57G76ZO+5o6lKTtcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIGxldCBwYXJhbXM9wqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhdGVfdGVtcDrCoGNhdGVfdGVtcCxpbmRleDrCoGluZGV4LGtleTrCoGtleSzCoHBhZ2U6wqBwYWdlLGpzb246anNvblxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfVxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZC5wdXNoKHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGU6wqBzZXRUaXRsZShrZXkudG9TdHJpbmcoKSxjYXRlX3RlbXBbaW5kZXhdLHRpdGxlKSxcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdXJsOsKgJCgnaGlrZXI6Ly9lbXB0eSfCoCvCoCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpwqA9PsKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBhcmFtcy5jYXRlX3RlbXBbcGFyYW1zLmluZGV4XcKgPcKgcGFyYW1zLmtleS50b1N0cmluZygpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dE15VmFyKFxcXCJoZWFkLmNhdGVcXFwiLMKgSlNPTi5zdHJpbmdpZnkocGFyYW1zLmNhdGVfdGVtcCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHBhcmFtcy5qc29uLmNvbnN0cnVjdG9yID09PSBPYmplY3Qpe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihwYXJhbXMuanNvbi50eXBlLHBhcmFtcy5qc29uLnZhbHVlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoTVlfUlVMRS51cmwswqBwYXJhbXMuanNvbik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfcKgwqDCoFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJlZnJlc2hQYWdlKHRydWUpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybsKgXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9LHBhcmFtcyksXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbF90eXBlOsKgJ3Njcm9sbF9idXR0b24nLFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZC5wdXNoKHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbF90eXBlOsKgXFxcImJsYW5rX2Jsb2NrXFxcIixcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgfVxcclxcbsKgwqDCoMKgfSlcXHJcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLop6PmnpBcIixcInBhdGhcIjpcImxhenlcIixcInJ1bGVcIjpcInZhciBsYXp5ID0gJCgnJykubGF6eVJ1bGUoKE1ZX0hPTUUpID0+IHtcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxuICAgIHZhciB1cmwgPSBodG1sLnVybFxcbiAgICBpZiAoaHRtbC5lbmNyeXB0ID09ICcxJykge1xcbiAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXG4gICAgfSBlbHNlIGlmIChodG1sLmVuY3J5cHQgPT0gJzInKSB7XFxuICAgICAgICB1cmwgPSB1bmVzY2FwZShiYXNlNjREZWNvZGUodXJsKSk7XFxuICAgIH1cXG4gICAgaWYgKC9tM3U4Ly50ZXN0KHVybCkpIHtcXG4gICAgICAgIGlmICgvZmZ6eXxsei8udGVzdCh1cmwpKSB7XFxuICAgICAgICAgICAgZXZhbFByaXZhdGVKUygnVHVTSmRwblphcVhHUnZ2T0ZSUiszUzdlWlVqZUMxQ2ZmRmJIaG9vMGU1K2FaN0thdjlLWlZac2Zrd0trVUZmNHd6a1RyaW80akFSSDZad1RYcFJsSDNrSTQzcldDVFU0UGRZYW0xNXBQWWlxNWNXMEg2Z1VYaEpXN3RtSnR5TEtkamUxS2FwQklHdldhWEkwV21vSG9NRUZCVi9NQWljbVBncHlBSlpqc2M1RW12ZGgxbjcyV1BQaXloWU5Db01uWjlKcFA2YUVzV1FFbVFNY0FqUHhnczZVTXZzTy9QT3c1Q2NyNzlzSnppY3N0L0xsM0lPajVNK1B2cUtyVGQ2MTQ3VkdQRXp0anNVZUV1ZEFTelRjbis5NUM5VmcxdXdVdmQ5ejB3NXFzUGJvUWg1b1poVHlzNFJRRXpCR0lxdWxRTUFBUVk0SUZrYW5XWDk1RUlOWkRYNTBtQWlPU0d5SWQwNkhzcHJBZWwvZmg3d3lNWGRtZXUrUzE1WG5jTzdVdXVqTU9tR2dTQUVOL1NzYzJlemt4bEd2cGR5aGJsNHA0RGFRdWcvbnJnc3doWmo3NS9NNTNzS1lYMnpSZ09TVDdDTWpWLytwUEpkMUtQOTM0dXUvVnNCUVVHNjltV04rS2FGV2hLbndCUGhWOXFkcUd6L0xTSm5GeEl2UThrQngnKVxcbiAgICAgICAgICAgIHJldHVybiB1ICsgXFxcIj91cmw9XFxcIiArIGJhc2U2NEVuY29kZSh1cmwpICsgXFxcIiMubTN1OFxcXCI7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4gdXJsXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBldmFsKHJlcXVlc3QoTVlfSE9NRSArICcvc3RhdGljL2pzL3BsYXllcmNvbmZpZy5qcycpKTtcXG4gICAgICAgICAgICB2YXIganggPSBNYWNQbGF5ZXJDb25maWcucGxheWVyX2xpc3RbaHRtbC5mcm9tXS5wYXJzZTtcXG4gICAgICAgICAgICBpZiAoanggPT0gJycpIHtcXG4gICAgICAgICAgICAgICAganggPSBNYWNQbGF5ZXJDb25maWcucGFyc2VcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgXFxuXFxuICAgICAgICAgICAgICAgIGV2YWwocmVxdWVzdChqeC5yZXBsYWNlKCdpbmRleCcsICdlYycpICsgdXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiBNWV9VUkxcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSkubWF0Y2goL2xldCBDb25GaWcuKn0vKVswXSlcXG4gICAgICAgICAgICAgICAgZXZhbChnZXRDcnlwdG9KUygpKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gQ3J5cHRvSlMuZW5jLlV0Zjguc3RyaW5naWZ5KENyeXB0b0pTLkFFUy5kZWNyeXB0KENvbkZpZy51cmwsIENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKCcyODkwJyArIENvbkZpZy5jb25maWcudWlkICsgJ3RCOTU5QycpLCB7XFxuICAgICAgICAgICAgICAgICAgICBpdjogQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoJzJGMTMxQkU5MTI0Nzg2NkUnKSxcXG4gICAgICAgICAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3XFxuICAgICAgICAgICAgICAgIH0pKSArICcjaXNWaWRlbz10cnVlIydcXG59XFxuICB9LCBNWV9IT01FKVwifV0sXCJwYXJhbXNcIjpcIntcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9kaWNrLnhmYW5pLmNvbS9iYW5ndW1pLzI2NzEuaHRtbCNpbW1lcnNpdmVUaGVtZSNcXFwifVwiLFwic2F2ZWRcIjpmYWxzZSxcInRpdGxlXCI6XCLnqIDppa3liqjmvKvvvIxcIixcInZlcnNpb25cIjowLFwidXJsXCI6XCJodHRwczovL2RpY2sueGZhbmkuY29tL2Jhbmd1bWkvMjY3MS5odG1sI2ltbWVyc2l2ZVRoZW1lI1wiLFwiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcImZpbmRfcnVsZVwiOlwianM6XFxudmFyIGQgPSBbXVxcbnZhciBodG1sID0gZ2V0UmVzQ29kZSgpXFxuXFxuICBkLnB1c2goe1xcbiAgICB0aXRsZTogcGRmaChodG1sLCAnLnNlYXJjaC1zaG93JiZsaTpjb250YWlucyjlr7zmvJTvvJopJiZUZXh0JykgK1xcbiAgICAgICAgJ1xcXFxuJyArIHBkZmgoaHRtbCwgJy5zZWFyY2gtc2hvdyYmbGk6Y29udGFpbnMo5Li75ryU77yaKSYmVGV4dCcpICtcXG4gICAgICAgICdcXFxcbicgKyBwZGZoKGh0bWwsICcuc2VhcmNoLXNob3cmJmxpOmNvbnRhaW5zKOabtOaWsO+8mikmJlRleHQnKSxcXG4gICAgZGVzYzogJ+eugOS7izonICsgcGRmaChodG1sLCAnLmNoZWNrJiZUZXh0JyksXFxuICAgIGltZzogcGQoaHRtbCwgJy5sYXp5JiZkYXRhLXNyYycpLFxcbiAgICB1cmw6IE1ZX1VSTCxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJ1xcbn0pO1xcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvbGF6eScpKS5ydWxlKVxcblxcbnZhciDnur/ot68gPSAnLm5hdi1zd2lwZXImJmE6bm90KDptYXRjaGVzKOS4i+i9vSkpJ1xcbnZhciDpgInpm4YgPSAnYm9keSYmLmFudGhvbG9neS1saXN0LWJveCdcXG52YXIg57q/6Lev5ZCNID0gJ2EtLWkmJlRleHQnXFxudmFyIOmAiembhuWIl+ihqCA9ICd1bCYmbGknXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9lcmppP3J1bGU95qih5p2/wrdRJykpLnJ1bGUpXFxuc2V0UmVzdWx0KGQpXCIsXCJncm91cFwiOlwi4pGg5Yqo5ryrXCIsXCJ1YVwiOlwibW9iaWxlXCIsXCJwcmVSdWxlXCI6XCJ2YXIg6LSm5Y+3ID0gJ3dsenIyMDIyJ1xcbnZhciDlr4bnoIEgPSAneGlmYW4xMjMuJ1xcbmlmICjotKblj7cgJiYg5a+G56CBKSB7XFxuICAgIHB1dE15VmFyKCfotKblj7cnLCDotKblj7cpXFxuICAgIHB1dE15VmFyKCflr4bnoIEnLCDlr4bnoIEpXFxufSBlbHNlIHtcXG4gICAgdG9hc3QoJ+ivt+WcqOmihOWkhOeQhuWhq+WGmei0puWPt+WvhueggScpXFxufVwiLFwicGFnZXNcIjpcIlt7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLliqjmgIFcXFwiLFxcXCJwYXRoXFxcIjpcXFwiZHQxXFxcIixcXFwicnVsZVxcXCI6XFxcImNvbnN0IGVtcHR5ID0gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcblxcXFxuaWYgKHR5cGVvZijmi7zmjqXliIbnsbspICE9ICd1bmRlZmluZWQnICYmIOaLvOaOpeWIhuexuyAhPSAnJykge1xcXFxuICAgIHZhciBjYXRlZ29yaWVzID0gcGRmYShodG1sLCDlpKfnsbvlrprkvY0pLmNvbmNhdChwZGZhKGh0bWwsIOaLvOaOpeWIhuexuykpXFxcXG59IGVsc2Uge1xcXFxuICAgIHZhciBjYXRlZ29yaWVzID0gcGRmYShodG1sLCDlpKfnsbvlrprkvY0pXFxcXG59XFxcXG5cXFxcbmxldCBpbml0X2NhdGUgPSBbXVxcXFxuXFxcXG5mb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcXFxcbiAgICBpbml0X2NhdGUucHVzaChcXFxcXFxcIjBcXFxcXFxcIilcXFxcbn1cXFxcblxcXFxuY29uc3QgZm9sZCA9IGdldFZhcihNWV9SVUxFLmdyb3VwLCBcXFxcXFxcIjBcXFxcXFxcIilcXFxcbmNvbnN0IGNhdGVfdGVtcF9qc29uID0gZ2V0VmFyKE1ZX1JVTEUudGl0bGUsIEpTT04uc3RyaW5naWZ5KGluaXRfY2F0ZSkpXFxcXG5jb25zdCBjYXRlX3RlbXAgPSBKU09OLnBhcnNlKGNhdGVfdGVtcF9qc29uKVxcXFxuXFxcXG5pZiAocGFyc2VJbnQocGFnZSkgPT09IDEpIHtcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogZm9sZCA9PT0gJzEnID8gJ+KAnOKAnOKAneKAnTxiPicgKyAn8J+TrCcuZm9udGNvbG9yKFxcXFxcXFwiI0ZGMDAwMFxcXFxcXFwiKSArICc8L2I+JyA6ICfigJzigJzigJ3igJ08Yj4nICsgJ/Cfk6onLmZvbnRjb2xvcihcXFxcXFxcIiMxYWFkMTlcXFxcXFxcIikgKyAnPC9iPicsXFxcXG4gICAgICAgIHVybDogJCgpLmxhenlSdWxlKChmb2xkKSA9PiB7XFxcXG4gICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS5ncm91cCwgZm9sZCA9PT0gJzEnID8gJzAnIDogJzEnKTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICB9LCBmb2xkKSxcXFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXFxcbiAgICB9KVxcXFxuICAgIGNhdGVnb3JpZXMuZm9yRWFjaCgoY2F0ZWdvcnksIGluZGV4KSA9PiB7XFxcXG4gICAgICAgIGxldCBzdWJfY2F0ZWdvcmllcyA9IHBkZmEoY2F0ZWdvcnksIOWwj+exu+WumuS9jSk7XFxcXG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xcXFxuICAgICAgICAgICAgc3ViX2NhdGVnb3JpZXMuZm9yRWFjaCgoaXRlbSwga2V5KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChpdGVtLCDliIbnsbvmoIfpopgpXFxcXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZijmjpLpmaQpICE9ICd1bmRlZmluZWQnICYmIOaOkumZpCAhPSAnJykge1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHRpdGxlLnJlcGxhY2UobmV3IFJlZ0V4cCjmjpLpmaQsIFxcXFxcXFwiZ1xcXFxcXFwiKSwgXFxcXFxcXCJcXFxcXFxcIilcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGtleS50b1N0cmluZygpID09PSBjYXRlX3RlbXBbaW5kZXhdID8gXFxcXFxcXCLigJzigJzigJ3igJ1cXFxcXFxcIiArIHRpdGxlLmZvbnRjb2xvcijliIbnsbvpopzoibIpIDogdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChwZChpdGVtLCDliIbnsbvpk77mjqUpICsgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcykgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld19jYXRlID0gW11cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlX3RlbXAuZm9yRWFjaCgoY2F0ZSwgaW5kZXgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfY2F0ZS5wdXNoKGluZGV4ID09PSAwID8gcGFyYW1zLmtleS50b1N0cmluZygpIDogXFxcXFxcXCIwXFxcXFxcXCIpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudGl0bGUsIEpTT04uc3RyaW5naWZ5KG5ld19jYXRlKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnVybCwgaW5wdXQpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVfdGVtcDogY2F0ZV90ZW1wLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYWdlLFxcXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXFxcbiAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiYmxhbmtfYmxvY2tcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgIH0gZWxzZSBpZiAoZm9sZCA9PT0gJzEnKSB7XFxcXG4gICAgICAgICAgICBzdWJfY2F0ZWdvcmllcy5mb3JFYWNoKChpdGVtLCBrZXkpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKGl0ZW0sIOWIhuexu+agh+mimClcXFxcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mKOaOkumZpCkgIT0gJ3VuZGVmaW5lZCcgJiYg5o6S6ZmkICE9ICcnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlID0gdGl0bGUucmVwbGFjZShuZXcgUmVnRXhwKOaOkumZpCwgXFxcXFxcXCJnXFxcXFxcXCIpLCBcXFxcXFxcIlxcXFxcXFwiKVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZToga2V5LnRvU3RyaW5nKCkgPT09IGNhdGVfdGVtcFtpbmRleF0gPyBcXFxcXFxcIuKAnOKAnOKAneKAnVxcXFxcXFwiICsgdGl0bGUuZm9udGNvbG9yKOWIhuexu+minOiJsikgOiB0aXRsZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKHBkKGl0ZW0sIOWIhuexu+mTvuaOpSkgKyAnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgocGFyYW1zKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuY2F0ZV90ZW1wW3BhcmFtcy5pbmRleF0gPSBwYXJhbXMua2V5LnRvU3RyaW5nKClcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudGl0bGUsIEpTT04uc3RyaW5naWZ5KHBhcmFtcy5jYXRlX3RlbXApKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudXJsLCBpbnB1dClcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZV90ZW1wOiBjYXRlX3RlbXAsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXgsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IHBhZ2UsXFxcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcXFxuICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJibGFua19ibG9ja1xcXFxcXFwiXFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgfVxcXFxuICAgIH0pXFxcXG59XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5LqM57qnXFxcIixcXFwicGF0aFxcXCI6XFxcImVqXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxudmFyIGQgPSBbXVxcXFxudmFyIGh0bWwgPSBnZXRSZXNDb2RlKClcXFxcblxcXFxuICBkLnB1c2goe1xcXFxuICAgIHRpdGxlOiBwZGZoKGh0bWwsICcuc2VhcmNoLXNob3cmJmxpOmNvbnRhaW5zKOWvvOa8lO+8mikmJlRleHQnKSArXFxcXG4gICAgICAgICdcXFxcXFxcXG4nICsgcGRmaChodG1sLCAnLnNlYXJjaC1zaG93JiZsaTpjb250YWlucyjkuLvmvJTvvJopJiZUZXh0JykgK1xcXFxuICAgICAgICAnXFxcXFxcXFxuJyArIHBkZmgoaHRtbCwgJy5zZWFyY2gtc2hvdyYmbGk6Y29udGFpbnMo5pu05paw77yaKSYmVGV4dCcpLFxcXFxuICAgIGRlc2M6ICfnroDku4s6JyArIHBkZmgoaHRtbCwgJy5jaGVjayYmVGV4dCcpLFxcXFxuICAgIGltZzogcGQoaHRtbCwgJy5sYXp5JiZkYXRhLXNyYycpLFxcXFxuICAgIHVybDogTVlfVVJMLFxcXFxuICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cidcXFxcbn0pO1xcXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9sYXp5JykpLnJ1bGUpXFxcXG5cXFxcbnZhciDnur/ot68gPSAnLm5hdi1zd2lwZXImJmE6bm90KDptYXRjaGVzKOS4i+i9vSkpJ1xcXFxudmFyIOmAiembhiA9ICdib2R5JiYuYW50aG9sb2d5LWxpc3QtYm94J1xcXFxudmFyIOe6v+i3r+WQjSA9ICdhLS1pJiZUZXh0J1xcXFxudmFyIOmAiembhuWIl+ihqCA9ICd1bCYmbGknXFxcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2Vyamk/cnVsZT3mqKHmnb/Ct1EnKSkucnVsZSlcXFxcbnNldFJlc3VsdChkKVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuWKqOaAgeWIhuexu+aUuVxcXCIsXFxcInBhdGhcXFwiOlxcXCJkdGZsXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxuLypcXFxcbumtlOaUuTogemV0YWxwaGFcXFxcbuWkh+azqO+8muS4jeimgeeUqOa1t+mYlOS7o+eggeagvOW8j+WMliDlhoXlrrnkvJrlh7rplJlcXFxcbuW/hemhu+WPguaVsO+8mlxcXFxu5YiG57G76aKc6ImyIOWkp+exu+WumuS9jSBcXFxcbuWwj+exu+WumuS9jSDliIbnsbvmoIfpopgg5YiG57G76ZO+5o6lXFxcXG5odG1sID0+5rqQ56CBIHBhZ2UgPT7pobXnoIFcXFxcbuWPr+mAieWPguaVsO+8mlxcXFxu5ou85o6l5YiG57G7IOaKmOWPoOagh+iusCDlsZXlvIDmoIforrAg5o6S6ZmkXFxcXG7lpKfnsbvpk77mjqUg5aSn57G75qCH6aKYIOa4hemZpOmUrlxcXFxu6K+05piO77yaXFxcXG7lpJbpnaLnlKhnZXRNeVZhcihNWV9SVUxFLnVybCkg5Y+W6ZO+5o6lXFxcXG4qL1xcXFxuXFxcXG5sZXQgZW1wdHnCoCA9IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiO1xcXFxyXFxcXG5sZXQgY2F0ZWdvcmllcyA9IFtdO1xcXFxyXFxcXG5pZiAodHlwZW9mKOaLvOaOpeWIhuexuykgIT0gJ3VuZGVmaW5lZCcgJiYg5ou85o6l5YiG57G7wqAhPSAnJyl7wqDCoMKgwqBcXFxcclxcXFxuICAgIGNhdGVnb3JpZXMgPSBbcGRmYShodG1sLCDCoOWkp+exu+WumuS9jSkuam9pbignXFxcXFxcXFxuJyldLmNvbmNhdChwZGZhKGh0bWwsIMKg5ou85o6l5YiG57G7KSk7XFxcXHJcXFxcbn3CoGVsc2XCoHvCoMKgwqDCoMKgXFxcXHJcXFxcbiAgICBjYXRlZ29yaWVzID0gW3BkZmEoaHRtbCwgwqDlpKfnsbvlrprkvY0pLmpvaW4oJ1xcXFxcXFxcbicpXTtcXFxcclxcXFxufVxcXFxyXFxcXG5sZXTCoGluaXRfY2F0ZcKgPcKgbmV3IEFycmF5KDIwKS5maWxsKFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcclxcXFxuY29uc3TCoGZvbGTCoD3CoGdldE15VmFyKE1ZX1JVTEUuZ3JvdXAswqBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXHJcXFxcbmNvbnN0wqBjYXRlX3RlbXDCoD3CoEpTT04ucGFyc2UoZ2V0TXlWYXIoXFxcXFxcXCJoZWFkLmNhdGVcXFxcXFxcIizCoEpTT04uc3RyaW5naWZ5KGluaXRfY2F0ZSkpKTtcXFxcclxcXFxudmFyIOaKmOWPoD0odHlwZW9mKOaKmOWPoOagh+iusCkgIT0gJ3VuZGVmaW5lZCcgJiYg5oqY5Y+g5qCH6K6wwqAhPSAnJyk/5oqY5Y+g5qCH6K6wOifigJzigJzigJ3igJ0nwqArwqAn4oioJy5mb250Y29sb3IoXFxcXFxcXCIjRkYwMDAwXFxcXFxcXCIpO1xcXFxudmFyIOWxleW8gD0odHlwZW9mKOWxleW8gOagh+iusCkgIT0gJ3VuZGVmaW5lZCcgJiYg5bGV5byA5qCH6K6wwqAhPSAnJyk/5bGV5byA5qCH6K6wOifigJzigJzigJ3igJ0nwqArwqAn4oinJy5mb250Y29sb3IoXFxcXFxcXCIjMWFhZDE5XFxcXFxcXCIpO1xcXFxudmFyIOa4hemZpD0odHlwZW9mKOa4hemZpOmUrikgIT0gJ3VuZGVmaW5lZCcgJiYg5riF6Zmk6ZSuwqAhPSAnJyk/5riF6Zmk6ZSuOltdO1xcXFxuXFxcXHJcXFxcbmlmwqAocGFyc2VJbnQocGFnZSnCoD09PcKgMSnCoHtcXFxcclxcXFxuwqDCoMKgwqBkLnB1c2goe1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgdGl0bGU6wqBmb2xkwqA9PT3CoCcxJ8KgP8KgwqDmipjlj6DCoDrCoOWxleW8gCxcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoHVybDrCoCQoKS5sYXp5UnVsZSgoZm9sZCnCoD0+wqB7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dE15VmFyKE1ZX1JVTEUuZ3JvdXAswqBmb2xkwqA9PT3CoCcxJ8KgP8KgJzAnwqA6wqAnMScpO1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZWZyZXNoUGFnZShmYWxzZSk7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybsKgXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCI7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqB9LMKgZm9sZCksXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqBjb2xfdHlwZTrCoCdzY3JvbGxfYnV0dG9uJyxcXFxcclxcXFxuwqDCoMKgwqB9KVxcXFxyXFxcXG4gICAgbGV0IHNldFRpdGxlPShrLGksdCk9PnsgICAgICAgICAgICAgXFxcXG4gICAgICByZXR1cm4gaz09aT9cXFxcXFxcIuKAnOKAnOKAneKAnVxcXFxcXFwiwqArdC5mb250Y29sb3Io5YiG57G76aKc6ImyKTp0XFxcXHJcXFxcbiAgICB9XFxcXHJcXFxcbsKgwqDCoMKgY2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeSzCoGluZGV4KcKgPT7CoHtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoGxldMKgc3ViX2NhdGVnb3JpZXPCoD3CoHBkZmEoY2F0ZWdvcnkswqDlsI/nsbvlrprkvY0pO1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgaWbCoChpbmRleMKgPT09wqAwKcKge1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdWJfY2F0ZWdvcmllcy5mb3JFYWNoKChpdGVtLMKga2V5KcKgPT7CoHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgX+Wkp+exu+mTvuaOpT0odHlwZW9mKOWkp+exu+mTvuaOpSkgIT0gJ3VuZGVmaW5lZCcgJiYg5aSn57G76ZO+5o6lwqAhPSAnJyk/5aSn57G76ZO+5o6lOuWIhuexu+mTvuaOpTsgICAgICAgICAgICAgIFxcXFxyXFxcXG4gICAgICAgICAgICAgICAgbGV0IF/lpKfnsbvmoIfpopg9KHR5cGVvZijlpKfnsbvmoIfpopgpICE9ICd1bmRlZmluZWQnICYmIOWkp+exu+agh+mimMKgIT0gJycpP+Wkp+exu+agh+mimDrliIbnsbvmoIfpopg7ICAgICAgICAgICAgICBcXFxcbiAgICBcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsZXTCoHRpdGxlwqA9wqBwZGZoKGl0ZW0swqBf5aSn57G75qCH6aKYKTtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZsKgKHR5cGVvZijmjpLpmaQpwqAhPcKgJ3VuZGVmaW5lZCfCoCYmwqDmjpLpmaTCoCE9wqAnJynCoHtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpdGxlwqA9wqB0aXRsZS5yZXBsYWNlKG5ld8KgUmVnRXhwKOaOkumZpCzCoFxcXFxcXFwiZ1xcXFxcXFwiKSzCoFxcXFxcXFwiXFxcXFxcXCIpO1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH1cXFxcbiAgICAgICAgICAgICAgICBsZXQgcGFyYW1zPXtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2F0ZV90ZW1wOsKgY2F0ZV90ZW1wLGtleTrCoGtleSxwYWdlOsKgcGFnZSxjbGVhcnM65riF6ZmkXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSAgICAgICAgICAgICAgICBcXFxcbiAgICAgICAgICAgICAgICBcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZC5wdXNoKHsgIFxcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGU6wqBzZXRUaXRsZShrZXkudG9TdHJpbmcoKSxjYXRlX3RlbXBbaW5kZXhdLHRpdGxlKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6wqAnc2Nyb2xsX2J1dHRvbicsXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1cmw6wqAkKHBkKGl0ZW0swqBf5aSn57G76ZO+5o6lKcKgK8KgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcynCoD0+wqB7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxldMKgbmV3X2NhdGXCoD3CoFtdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNsZWFycy5mb3JFYWNoKChpdGVtKT0+eyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKGl0ZW0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBhcmFtcy5jYXRlX3RlbXAuZm9yRWFjaCgoY2F0ZSzCoGluZGV4KcKgPT7CoHtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBuZXdfY2F0ZS5wdXNoKGluZGV4wqA9PT3CoDDCoD/CoHBhcmFtcy5rZXkudG9TdHJpbmcoKcKgOsKgXFxcXFxcXCIwXFxcXFxcXCIpXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dE15VmFyKFxcXFxcXFwiaGVhZC5jYXRlXFxcXFxcXCIswqBKU09OLnN0cmluZ2lmeShuZXdfY2F0ZSkpO1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwdXRNeVZhcihNWV9SVUxFLnVybCzCoGlucHV0KTtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVmcmVzaFBhZ2UodHJ1ZSk7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybsKgXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCI7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9LHBhcmFtcylcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSk7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGQucHVzaCh7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29sX3R5cGU6wqBcXFxcXFxcImJsYW5rX2Jsb2NrXFxcXFxcXCIsXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqB9wqBlbHNlwqBpZsKgKGZvbGTCoD09PcKgJzEnKcKge1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdWJfY2F0ZWdvcmllcy5mb3JFYWNoKChpdGVtLMKga2V5KcKgPT7CoHtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsZXTCoHRpdGxlwqA9wqBwZGZoKGl0ZW0swqDliIbnsbvmoIfpopgpO1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmwqAodHlwZW9mKOaOkumZpCnCoCE9wqAndW5kZWZpbmVkJ8KgJibCoOaOkumZpMKgIT3CoCcnKcKge1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGXCoD3CoHRpdGxlLnJlcGxhY2UobmV3wqBSZWdFeHAo5o6S6ZmkLMKgXFxcXFxcXCJnXFxcXFxcXCIpLMKgXFxcXFxcXCJcXFxcXFxcIik7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfVxcXFxuICAgICAgICAgICAgICAgIFxcXFxuICAgICAgICAgICAgICAgIHZhciBqc29uPeWIhuexu+mTvuaOpS5pbmNsdWRlcygnQEBAJyk/e1xcXFxuICAgICAgICAgICAgICAgICAgICB0eXBlOnBkZmgoaXRlbSzliIbnsbvpk77mjqUuc3BsaXQoJ0BAQCcpWzBdKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6cGRmaChpdGVtLOWIhuexu+mTvuaOpS5zcGxpdCgnQEBAJylbMV0pLFxcXFxuICAgICAgICAgICAgICAgIH06cGQoaXRlbSzliIbnsbvpk77mjqUpO1xcXFxuICAgICAgICAgICAgICAgIFxcXFxuICAgICAgICAgICAgICAgIGxldCBwYXJhbXM9wqB7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXRlX3RlbXA6wqBjYXRlX3RlbXAsaW5kZXg6wqBpbmRleCxrZXk6wqBrZXkswqBwYWdlOsKgcGFnZSxqc29uOmpzb25cXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZC5wdXNoKHtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpdGxlOsKgc2V0VGl0bGUoa2V5LnRvU3RyaW5nKCksY2F0ZV90ZW1wW2luZGV4XSx0aXRsZSksXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1cmw6wqAkKCdoaWtlcjovL2VtcHR5J8KgK8KgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcynCoD0+wqB7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBhcmFtcy5jYXRlX3RlbXBbcGFyYW1zLmluZGV4XcKgPcKgcGFyYW1zLmtleS50b1N0cmluZygpO1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwdXRNeVZhcihcXFxcXFxcImhlYWQuY2F0ZVxcXFxcXFwiLMKgSlNPTi5zdHJpbmdpZnkocGFyYW1zLmNhdGVfdGVtcCkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1zLmpzb24uY29uc3RydWN0b3IgPT09IE9iamVjdCl7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIocGFyYW1zLmpzb24udHlwZSxwYXJhbXMuanNvbi52YWx1ZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihNWV9SVUxFLnVybCzCoHBhcmFtcy5qc29uKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH3CoMKgwqBcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVmcmVzaFBhZ2UodHJ1ZSk7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybsKgXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCI7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9LHBhcmFtcyksXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb2xfdHlwZTrCoCdzY3JvbGxfYnV0dG9uJyxcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXFxcclxcXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSk7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGQucHVzaCh7XFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29sX3R5cGU6wqBcXFxcXFxcImJsYW5rX2Jsb2NrXFxcXFxcXCIsXFxcXHJcXFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pO1xcXFxyXFxcXG7CoMKgwqDCoMKgwqDCoMKgfVxcXFxyXFxcXG7CoMKgwqDCoH0pXFxcXHJcXFxcbn1cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLop6PmnpBcXFwiLFxcXCJwYXRoXFxcIjpcXFwibGF6eVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJ2YXIgbGF6eSA9ICQoJycpLmxhenlSdWxlKChNWV9IT01FKSA9PiB7XFxcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxcXG4gICAgdmFyIHVybCA9IGh0bWwudXJsXFxcXG4gICAgaWYgKGh0bWwuZW5jcnlwdCA9PSAnMScpIHtcXFxcbiAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXFxcbiAgICB9IGVsc2UgaWYgKGh0bWwuZW5jcnlwdCA9PSAnMicpIHtcXFxcbiAgICAgICAgdXJsID0gdW5lc2NhcGUoYmFzZTY0RGVjb2RlKHVybCkpO1xcXFxuICAgIH1cXFxcbiAgICBpZiAoL20zdTgvLnRlc3QodXJsKSkge1xcXFxuICAgICAgICBpZiAoL2Zmenl8bHovLnRlc3QodXJsKSkge1xcXFxuICAgICAgICAgICAgZXZhbFByaXZhdGVKUygnVHVTSmRwblphcVhHUnZ2T0ZSUiszUzdlWlVqZUMxQ2ZmRmJIaG9vMGU1K2FaN0thdjlLWlZac2Zrd0trVUZmNHd6a1RyaW80akFSSDZad1RYcFJsSDNrSTQzcldDVFU0UGRZYW0xNXBQWWlxNWNXMEg2Z1VYaEpXN3RtSnR5TEtkamUxS2FwQklHdldhWEkwV21vSG9NRUZCVi9NQWljbVBncHlBSlpqc2M1RW12ZGgxbjcyV1BQaXloWU5Db01uWjlKcFA2YUVzV1FFbVFNY0FqUHhnczZVTXZzTy9QT3c1Q2NyNzlzSnppY3N0L0xsM0lPajVNK1B2cUtyVGQ2MTQ3VkdQRXp0anNVZUV1ZEFTelRjbis5NUM5VmcxdXdVdmQ5ejB3NXFzUGJvUWg1b1poVHlzNFJRRXpCR0lxdWxRTUFBUVk0SUZrYW5XWDk1RUlOWkRYNTBtQWlPU0d5SWQwNkhzcHJBZWwvZmg3d3lNWGRtZXUrUzE1WG5jTzdVdXVqTU9tR2dTQUVOL1NzYzJlemt4bEd2cGR5aGJsNHA0RGFRdWcvbnJnc3doWmo3NS9NNTNzS1lYMnpSZ09TVDdDTWpWLytwUEpkMUtQOTM0dXUvVnNCUVVHNjltV04rS2FGV2hLbndCUGhWOXFkcUd6L0xTSm5GeEl2UThrQngnKVxcXFxuICAgICAgICAgICAgcmV0dXJuIHUgKyBcXFxcXFxcIj91cmw9XFxcXFxcXCIgKyBiYXNlNjRFbmNvZGUodXJsKSArIFxcXFxcXFwiIy5tM3U4XFxcXFxcXCI7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgcmV0dXJuIHVybFxcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIGV2YWwocmVxdWVzdChNWV9IT01FICsgJy9zdGF0aWMvanMvcGxheWVyY29uZmlnLmpzJykpO1xcXFxuICAgICAgICAgICAgdmFyIGp4ID0gTWFjUGxheWVyQ29uZmlnLnBsYXllcl9saXN0W2h0bWwuZnJvbV0ucGFyc2U7XFxcXG4gICAgICAgICAgICBpZiAoanggPT0gJycpIHtcXFxcbiAgICAgICAgICAgICAgICBqeCA9IE1hY1BsYXllckNvbmZpZy5wYXJzZVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgXFxcXG5cXFxcbiAgICAgICAgICAgICAgICBldmFsKHJlcXVlc3QoangucmVwbGFjZSgnaW5kZXgnLCAnZWMnKSArIHVybCwge1xcXFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6IE1ZX1VSTFxcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfSkubWF0Y2goL2xldCBDb25GaWcuKn0vKVswXSlcXFxcbiAgICAgICAgICAgICAgICBldmFsKGdldENyeXB0b0pTKCkpXFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5VdGY4LnN0cmluZ2lmeShDcnlwdG9KUy5BRVMuZGVjcnlwdChDb25GaWcudXJsLCBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZSgnMjg5MCcgKyBDb25GaWcuY29uZmlnLnVpZCArICd0Qjk1OUMnKSwge1xcXFxuICAgICAgICAgICAgICAgICAgICBpdjogQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoJzJGMTMxQkU5MTI0Nzg2NkUnKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXFxcXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xcXFxuICAgICAgICAgICAgICAgIH0pKSArICcjaXNWaWRlbz10cnVlIydcXFxcbn1cXFxcbiAgfSwgTVlfSE9NRSlcXFwifV1cIixcInByb3h5XCI6XCJcIn0iLCJwaWNVcmwiOiJodHRwczovL2ltZy54ZmFuaS5tZS9odHRwczovL2xhaW4uYmdtLnR2L3BpYy9jb3Zlci9sLzM3L2FmLzQyNjIzOV8xRDNzOS5qcGciLCJ0aXRsZSI6IumdkuaYpeesqOibi+WwkeW5tOS4jeWBmuWwj+Wtpue+juWwkeWls+eahOaipiJ9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement