Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@GithubApp@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6ImJvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJmgyJiZUZXh0IiwidGl0bGUiOiJHaXRodWJBcHAiLCJhdXRob3IiOiJSOuS4jeimgeS/ruaUueWwj+eoi+W6j+WQje+8jOWPr+iDveS8muaKpemUmSIsInVybCI6Imhpa2VyOi8vZW1wdHkjIyIsInZlcnNpb24iOjIwMjQwNDIwLCJjb2xfdHlwZSI6Im1vdmllXzMiLCJjbGFzc19uYW1lIjoiIiwidHlwZSI6InZpZGVvIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG52YXIgZCA9IFtdXG5cbnZhciDmm7TmlrAgPSAyNCAvLyjlsI/ml7Yp5o+Q6YaS5qOA5rWL5pu05paw6Ze06ZqU5pe26Ze0XG52YXIg6Ze06ZqUID0gY29uZmlnLumXtOmalFxuXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+a3u+WKoCcsIHt9KSkucnVsZSlcblxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9kYXRhJywge30pKS5ydWxlKVxuXG4vLyDorr7nva7ljZXlh7vmk43kvZzmmK/ov5vlhaXkuoznuqfpobXpnaLov5jmmK/mjpLluo9cbnZhciBjbGlja19hY3Rpb24gPSBnZXRNeVZhcignY2xpY2tfYWN0aW9uJywgJ2NsaWNrJylcblxuaWYgKOmXtOmalCA+PSA4ICl7XG52YXIgdXBkYXRlO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS91cGxvYWQnLCB7fSkpLnJ1bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgeWRhdGEgPSBmZXRjaChcImh0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwXCIse3RpbWVvdXQ6MjAyM30pXG4gICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZSA9ICBiYXRjaHVwbG9hZCh5ZGF0YSwgJ0dpdGh1YkFwcCcpXG52YXIgcj0kLnJlcXVpcmUoXCJwdXRcIilcbmV2YWxQcml2YXRlSlMoJ3E3SnFYcmVIWmZVWFhzMzZFYkF4eVNrZXhPRFlqemtPNzZIdWhyekZXR1VuVDRPUzJ3NmYxcmp2NkxOVHdkb2xsb0Q0QXNQVW85VVFKSFB3S2MwM3FBPT0nKVxuci5wdXQocHV0dXJsLHtcbiAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwiY29udGVudC10eXBlXCI6IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9LS0ke2JvdW5kYXJ5fVwiXG4gICAgfVxufSwge1xuICAgIGM6IHVwZGF0ZSxcbn0pXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge31cbn1cblxuZC5wdXNoKHtcbiAgICBjb2xfdHlwZTogJ2lucHV0JyxcbiAgICB0aXRsZTogJ/CfjbMnLFxuICAgIGRlc2M6ICfmkJzntKJBcHAnLFxuICAgIHVybDogJ3B1dE15VmFyKFwiZmlsdGVyQXBwV29yZFwiLCBpbnB1dCk7IHJlZnJlc2hQYWdlKCk7XCJoaWtlcjovL2VtcHR5XCInLFxufSlcblxuZnVuY3Rpb24gY29tcGFyZUFycmF5cyhhcnIxLCBhcnIyKSB7XG4gICAgbGV0IGRpZmZlcmVudEluZGljZXMgPSBbXVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyMi5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoIWFycjEuaW5jbHVkZXMoYXJyMltpXSkpIHtcbiAgICAgICAgICAgIGRpZmZlcmVudEluZGljZXMucHVzaChpKVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkaWZmZXJlbnRJbmRpY2VzXG59XG5cbnZhciBkYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKVxuLy9sb2coZGF0YSlcbnZhciB2ZXJzaW9uID0gZ2V0SXRlbSgndicpLnNwbGl0KCfwn5SlJylcbnZhciBhcHB2cyA9IFtdXG5cbmlmIChNWV9QQUdFID09IDEpIHtcbiAgICBkLnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOlxuICAgICAgICAgICAgICAgIOmXtOmalCA8IOabtOaWsCA/ICfigJzigJzigJ3igJ0nICsgJ1xcdOKamSDmo4DmtYvmm7TmlrAg4pqZJy5ib2xkKCkgOiAn4oCc4oCc4oCd4oCdJyArICdcXHTimpkg5qOA5rWL5pu05pawIOKamScuYm9sZCgpLmZvbnRjb2xvcignI0ZGMDBGRicpLFxuICAgICAgICAgICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaWNvbl9zZWFyY2g2JyxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl8yX3JvdW5kJyxcbiAgICAgICAgICAgIHVybDpcbiAgICAgICAgICAgICAgICAnaGlrZXI6Ly9lbXB0eScgK1xuICAgICAgICAgICAgICAgICQoJycpLmxhenlSdWxlKFxuICAgICAgICAgICAgICAgICAgICAoZGF0YSwgdmVyc2lvbiwgY29tcGFyZUFycmF5cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1cmxzID0gW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgVXJscyA9IGRhdGEubWFwKChpKSA9PiBpLnNwbGl0KCfwn5SlJylbMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVXJscy5mb3JFYWNoKCh1KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHMucHVzaCh7IHVybDogdSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZzID0gYmYodXJscykubWFwKChoKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBkZmgoaCwgJ2JvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJmgyJiZUZXh0JylcbiAgfSBjYXRjaCAoZSkge1xuICAgIFxuICAgIHJldHVybiBwZGZoKGgsICdib2R5JiYjcmVwby1jb250ZW50LXBqYXgtY29udGFpbmVyJiZoMiYmVGV4dCcpXG4gICAgICAgXG4gIH1cbn0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByID0gY29tcGFyZUFycmF5cyh2ZXJzaW9uLCB2cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IHIuam9pbign8J+UpScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHYgPSB2cy5qb2luKCfwn5SlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodi5pbmNsdWRlcygn8J+UpfCflKUnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiAndG9hc3Q6Ly/mo4DmtYvlpLHotKXvvIzor7fph43or5UnXG4gICAgLy8g5qOA5rWL5aSx6LSl77yM5a6a5L2N5aSx6LSlYXBw77yM6I635Y+WYXBw55qE5ZCN5a2X5ZKM5L2N572uXG4gICAgdmFyIGYgPSBbXVxuICAgIHZzLm1hcCgoZWxlLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoZWxlID09IFwiXCIpIHtcbiAgICAgICAgICAgIGYucHVzaChkYXRhW2luZGV4XS5zcGxpdChcIvCflKVcIilbMF0gKyBgKCR7aW5kZXggKyAxfSlgKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIHRvYXN05o+Q56S65pyJ5ZOq5LqbYXBwKOW4puS9jee9rinmo4DmtYvlpLHotKXkuoZcbiAgICBmID0gZi5qb2luKFwiLCBcIik7XG4gICAgcmV0dXJuIFwidG9hc3Q6Ly/mo4DmtYvlpLHotKU6IOOAkFwiICsgZiArIFwi44CRXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcnNpb24ubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgndicsIHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/liJ3lp4vniYjmnKzlj7fmiJDlip8nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCdzJywgcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ3YnLCB2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5qOA5rWL5pyJJyArIHIubGVuZ3RoICsgJ+S4quabtOaWsH4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/msqHmnInmlbDmja5+J1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgICBjb21wYXJlQXJyYXlzXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgJ1xcdOKamSDmm7TlpJrlip/og70g4pqZJy5ib2xkKCksXG4gICAgICAgICAgICBpbWc6ICdoaWtlcjovL2ltYWdlcy9pY29uX21lbnU2JyxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl8yX3JvdW5kJyxcbiAgICAgICAgICAgIHVybDogJChcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICflr7zlhaXliIbkuqvmlbDmja4nLFxuICAgICAgICAgICAgICAgICAgICAn5YiG5Lqr5Y6f5aeL5pWw5o2uJyxcbiAgICAgICAgICAgICAgICAgICAgJ+WIhuS6q+S6keWJqui0tOadvycsXG4gICAgICAgICAgICAgICAgICAgICfliIbkuqvkupHlj6Pku6QnLFxuICAgICAgICAgICAgICAgICAgICAn5ouJ5Y+W4pqg77iP5LqR5pWw5o2uJyxcbiAgICAgICAgICAgICAgICAgICAgJ+WQiOW5tuacrOWcsOWSjOS6kScsXG4gICAgICAgICAgICAgICAgICAgICfmgaLlpI3pu5jorqTmlbDmja4nLFxuICAgICAgICAgICAgICAgICAgICAn5riF56m65pys5Zyw5pWw5o2uJyxcbiAgICAgICAgICAgICAgICAgICAgJ+e8lui+kei/nOeoi+aVsOaNricsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICApLnNlbGVjdCgobWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gJ+WvvOWFpeWIhuS6q+aVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJycsICfmlK/mjIHljp/lp4vmlbDmja7lkozkupHliarotLTmnb/liIbkuqsnKS5pbnB1dCgocnVsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9iYXRjaEltP3J1bGU9JyArIHJ1bGUpKS5ydWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoJ0dpdGh1YkFwcOWIhuS6qyMjJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGJhc2U2NERlY29kZShwYXJzZVBhc3RlKGlucHV0LnNwbGl0KCcjI1xcbicpWzFdKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuc3RhcnRzV2l0aCgnR2l0aHViQXBw5YiG5LqrLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBiYXNlNjREZWNvZGUocGFyc2VQYXN0ZShpbnB1dC5zcGxpdCgnXFxuJylbMV0uc3BsaXQoJ0AnKVswXSkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhdGNoSW1wb3J0KGlucHV0LCBydWxlKVxuICAgICAgICAgICAgICAgICAgICB9LCAnR2l0aHViQXBwJylcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICflkIjlubbmnKzlnLDlkozkupEnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2JhdGNoSW0nLCB7fSkpLnJ1bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgeWRhdGEgPSBmZXRjaChcImh0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwXCIse3RpbWVvdXQ6MjAyM30pXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmF0Y2hJbXBvcnQoeWRhdGEsICdHaXRodWJBcHAnKVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ojrflj5blpLHotKXvvIzor7fph43or5UnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfmi4nlj5bimqDvuI/kupHmlbDmja4nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9kYXRhJywge30pKS5ydWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHlkYXRhID0gSlNPTi5wYXJzZShmZXRjaChcImh0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwXCIse3RpbWVvdXQ6MjAyM30pKVxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsIEpTT04uc3RyaW5naWZ5KHlkYXRhKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ojrflj5blpLHotKXvvIzor7fph43or5UnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfmgaLlpI3pu5jorqTmlbDmja4nKSB7XG4vL2V2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZGF0YScsIHt9KSkucnVsZSlcbndyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLCBKU09OLnN0cmluZ2lmeShtZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICB9ZWxzZSBpZiAoaW5wdXQgPT0gJ+a4heepuuacrOWcsOaVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsICcnKVxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gJ+e8lui+kei/nOeoi+aVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJycsICflr4bnoIFcXG7kuI3nn6XpgZPor7fnlZnnqbonKS5pbnB1dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3dlYjovL2h0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwOicgKyBpbnB1dFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAkKCfnoa7lrprlr7zlh7rvvJ8nKS5jb25maXJtKCh0eXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gJ+WIhuS6q+S6keWJqui0tOadvycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9ICdHaXRodWJBcHDliIbkuqsjI1xcbicgKyBzaGFyZVBhc3RlKGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeShjb25maWcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAn5YiG5Lqr5LqR5Y+j5LukJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0dpdGh1YkFwcOWIhuS6qyzlpI3liLblkI7miZPlvIDova/ku7bljbPlj6/lr7zlhaVcXG4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVQYXN0ZShiYXNlNjRFbmNvZGUoSlNPTi5zdHJpbmdpZnkoY29uZmlnKSkpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BpbXBvcnQ9anM6ZXZhbChKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9wYWdlL2Nsb3VkP3J1bGU9R2l0aHViQXBwXCIpKS5ydWxlKSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnN0cmluZ2lmeShjb25maWcpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2NvcHk6Ly8nICsgZGF0YVxuICAgICAgICAgICAgICAgICAgICB9LCBpbnB1dClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LG1kYXRhKSxcbiAgICAgICAgfVxuICAgIClcbn1cblxuZC5wdXNoKHtcbiAgICBjb2xfdHlwZTogJ2JpZ19ibGFua19ibG9jaycsXG59KVxuXG52YXIgc3MgPSBnZXRJdGVtKCdzJykuc3BsaXQoJ/CflKUnKVxuZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGZpbHRlckFwcFdvcmQgPSBnZXRNeVZhcignZmlsdGVyQXBwV29yZCcsICcnKVxuICAgIHZhciBBcHAgPSBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMF1cbiAgICB2YXIgVXJscyA9IGRhdGFbaV0uc3BsaXQoJ/CflKUnKVsxXVxuICAgIHZhciBJbWcgPSBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMl1cblxuYXBwdnMucHVzaChBcHArJ++8muOAkCcrdmVyc2lvbltpXSsn44CRJylcblxuICAgIGlmIChBcHAudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlckFwcFdvcmQudG9Mb3dlckNhc2UoKSkgPT0gLTEpIHtcbiAgICAgICAgY29udGludWVcbiAgICB9XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHNzLmluZGV4T2YoaS50b1N0cmluZygpKSA9PSAnLTEnID8gQXBwIDogJ+KAnOKAnOKAneKAnScgKyBBcHAuZm9udGNvbG9yKCcjRkYwMEZGJyksXG4gICAgICAgIGRlc2M6IGkgKyAxLFxuICAgICAgICBpbWc6IEltZyxcbiAgICAgICAgLy8gdXJsOiBVcmxzLFxuICAgICAgICAvLyB1cmw6IFwidG9hc3Q6Ly/lh4blpIfmjpLluo/mi4lcIixcblx0XHQvLyDljZXlh7vmk43kvZw6IOi/lOWbnnVybHPvvIxcblx0XHQvLyDmjpLluo/mk43kvZw6IOagueaNruiOt+WPlueahOenu+WKqEFwcOS9jee9rm1vdmVfaW5kZXjlkozngrnlh7vopoHmlL7nva7kvY3nva5yZXBsYWNlX2luZGV477yM6L+b6KGM5a+5R2l0aHViQXBwLnR4dOeahOWGheWuuei/m+ihjOmHjeaWsOaOkuW6j+W5tumHjeaWsOWGmeWbnlxuICAgICAgICB1cmw6XG4gICAgICAgICAgICBjbGlja19hY3Rpb24gPT0gJ2NsaWNrJ1xuICAgICAgICAgICAgICAgID8gKFVybHMuZW5kc1dpdGgoJ3RhZ3MnKT8gXCJ3ZWI6Ly9cIiArIFVybHMgOiBVcmxzKVxuICAgICAgICAgICAgICAgIDogJCgpLmxhenlSdWxlKChyZXBsYWNlX2luZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NsaWNrX2FjdGlvbicsICdjbGljaycpXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IG1vdmVfaW5kZXggPSBnZXRNeVZhcignbW92ZV9pbmRleCcsIDApXG4gICAgICAgICAgICAgICAgICAgICAvLyAkLmxvZygn56e75Yqo55qE57Si5byV5Li6OiAnICsgbW92ZV9pbmRleClcbiAgICAgICAgICAgICAgICAgICAgIC8vICQubG9nKCfmm7/mjaLnmoTkvY3nva7kuLo6ICcgKyByZXBsYWNlX2luZGV4KVxuICAgICAgICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcpKVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb25maWcuc3BsaWNlKG1vdmVfaW5kZXgsIDEpWzBdXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnNwbGljZShyZXBsYWNlX2luZGV4LCAwLCBlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLCBKU09OLnN0cmluZ2lmeShjb25maWcpKVxuICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mjpLluo/lrozmr5UnXG4gICAgICAgICAgICAgICAgICB9LCBpKSxcbiAgICAgICAgY29sX3R5cGU6ICdpY29uXzRfY2FyZCcsXG4gICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICBzczogc3MsXG4gICAgICAgICAgICBpOiBpLFxuICAgICAgICAgICAgbG9uZ0NsaWNrOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJyDnvJYg6L6RICcsXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCgnaGlrZXI6Ly9lbXB0eScpLnJ1bGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQYWdlVGl0bGUoJ+e8lui+kUdpdGh1YkFwcCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZCA9IFtdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WQjeensCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaVBcHDlkI3lrZcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCduYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZGF0YVtpXS5zcGxpdCgn8J+UpScpWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogLTEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXCJwdXRNeVZhcignbmEnLGlucHV0KVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WcsOWdgCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaVnaXRodWIgcmVsZWFzZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdyZWxlYXNlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcInB1dE15VmFyKCdyZWxlYXNlJyxpbnB1dClcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflm77moIcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiAn6L6T5YWl5Zu+5qCH5Zyw5Z2AJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignaWNvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcInB1dE15VmFyKCdpY28nLGlucHV0KVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyAn56Gu6K6k5L+u5pS5Jy5mb250Y29sb3IoJyNGRjAwRkYnKS5iaWcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ25hJykgPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WQjeWtl+S4jeiDveS4uuepun4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ3JlbGVhc2UnKSA9PSAnJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhL15odHRwc1xcOlxcL1xcL2dpdGh1YlxcLmNvbVxcLy4qP1xcLyhyZWxlYXNlc3x0YWdzKS8udGVzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdyZWxlYXNlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v6K+36L6T5YWl5q2j56Gu55qE5Zyw5Z2AfidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNeVZhcignbmEnLCAnJykgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ/CflKUnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdyZWxlYXNlJywgJycpLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ/CflKUnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdpY28nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtpXSA9IGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqffidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHsgbGluZVZpc2libGU6IGZhbHNlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcg56e7IOS9jSAnLFxuICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLCBtb3ZlX2luZGV4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIOiuvue9ruWNleWHu+WKqOS9nOS4uuaOkuW6j++8jOiOt+WPluimgeenu+WKqEFwcOeahOS9jee9rm1vdmVfaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignY2xpY2tfYWN0aW9uJywgJ21vdmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdtb3ZlX2luZGV4JywgbW92ZV9pbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gJCgnJywgJ+ivt+i+k+WFpeenu+WKqOWIsOesrOWHoOS9jVxcbjHkuLrnva7pobYsJytkYXRhLmxlbmd0aCsn5Li6572u5bqVJykuaW5wdXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIChkYXRhLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB2YXIgdGVtcCA9IGRhdGFbaV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIGlmIChpbnB1dCAtIDEgPCBpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgZGF0YS5zcGxpY2UoaW5wdXQgLSAxLCAwLCB0ZW1wKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGRhdGEuc3BsaWNlKGkgKyAxLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBkYXRhLnNwbGljZShpbnB1dCwgMCwgdGVtcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBkYXRhLnNwbGljZShpLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgd3JpdGVGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgcmV0dXJuICd0b2FzdDovL+enu+S9jeaIkOWKn34nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyApXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcg5YigIOmZpCAnLFxuICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5zcGxpY2UoaSwgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnIOa3uyDliqAgJyxcbiAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICAo5re75YqgLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JyArIOa3u+WKoFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIOa3u+WKoCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcgJyArIChpICsgMSkgKyAnICcsXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKChkYXRhLHZlcnNpb24saSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGFpID0gSlNPTi5zdHJpbmdpZnkoW2RhdGFbaV1dKVxuICAgICAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ+eJiOacrOWPt++8micgKyB2ZXJzaW9uW2ldKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiY29weTovL1wiICsgZGF0YWlcbiAgICAgICAgICAgICAgICAgICAgfSxkYXRhLHZlcnNpb24saSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgfSlcbn1cblxuZC5wdXNoKHtcbiAgICB0aXRsZTogJ+a3u+WKoCcsXG4gICAgaW1nOiAnaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL0lLV2hSLnBuZycsXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScgKyDmt7vliqAsXG4gICAgY29sX3R5cGU6ICdpY29uXzRfY2FyZCcsXG4gICAgZXh0cmE6IHtcbiAgICAgICAgaTogZGF0YS5sZW5ndGgsXG4gICAgICAgIGxvbmdDbGljazogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAn5bm46L+Q5pelJyxcbiAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBudW1iID0gMSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMxKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L2g55qE5bm46L+Q5pel5piv44CQJyArIG51bWIgKyAn44CR5pelJ1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxufSlcblxuICAgICAgLy9sb2coYXBwdnMuam9pbignXFxuJykpXG5cbnNldFJlc3VsdChkKSIsInNlYXJjaF91cmwiOiIiLCJncm91cCI6IuKRo+KPsCIsInNlYXJjaEZpbmQiOiIiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6ImpzOlxuYWRkTGlzdGVuZXIoXCJvbkNsb3NlXCIsICQudG9TdHJpbmcoKCkgPT4ge1xuICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxufSkpO1xudmFyIGQgPSBbXVxudmFyIGh0bWwgPSBmZXRjaChNWV9VUkwpXG5cbnZhciBzcyA9IE1ZX1BBUkFNUy5zc1xudmFyIGkgPSBNWV9QQVJBTVMuaVxuICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBzcy5pbmRleE9mKGkudG9TdHJpbmcoKSlcbiAgICAgICAgICAgICAgICAgICAgaWYoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHNzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcy5sZW5ndGg8MSlcbiAgICAgICAgICAgICAgICAgICAgICAge3ZhciBzID0gJyd9ZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgICAgdmFyIHMgPSBzcy5qb2luKCfwn5SlJyl9ICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgncycsIHMpXG4gICAgICAgICAgICAgICAgICAgICB9XG5cbnZhciBhdXRob3IgPSBwZGZoKGh0bWwsJ2JvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJi5tYi1tZC0yJiZUZXh0JylcbnZhciBpbWcgPSBwZGZoKGh0bWwsJ2JvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJi5tYi1tZC0yJiZpbWcmJnNyYycpXG52YXIgdmVyc2lvbiA9IHBkZmgoaHRtbCwnYm9keSYmZGl2W2RhdGEtaHBjXSYmc2VjdGlvbiYmaDImJlRleHQnKVxuZC5wdXNoKHtcbiAgICB0aXRsZTogYXV0aG9yLFxuICAgIGRlc2M6ICdMYXN077yaJyArIHZlcnNpb24uZm9udGNvbG9yKCcjRkY2Njk5JykuYmlnKCkgKyAnXFx0XFx0XFx0XFx0JyxcbiAgICBpbWc6IGltZyxcbiAgICB1cmw6IE1ZX1VSTCxcbiAgICBjb2xfdHlwZTogJ2F2YXRhcidcbn0pXG5cbnZhciBjb250ZW50ID0gcGRmaChodG1sLCBcImJvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJi5jb2wtbWQtOSYmZGl2W2RhdGEtcGpheD10cnVlXSYmVGV4dFwiKTtcbmQucHVzaCh7XG4gICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgY29udGVudC5mb250Y29sb3IoJyM0NTU1QjYnKS5zbWFsbCgpLFxuICAgIGRlc2M6ICcnLFxuICAgIHBpY191cmw6ICcnLFxuICAgIHVybDogTVlfVVJMICsgJCgnJykucnVsZSgoaHRtbCk9PntcbiAgICAgICAgICAgICAgdmFyIGQgPSBbXVxuICAgICAgICAgICAgICB2YXIgY29udGVudCA9IHBkZmgoaHRtbCwgXCJib2R5JiZkaXZbZGF0YS1ocGNdJiZzZWN0aW9uJiYuY29sLW1kLTkmJmRpdltkYXRhLXBqYXg9dHJ1ZV0mJkh0bWxcIikucmVwbGFjZSgvPFxccyooPyEobGl8cClcXHMqXFwvPylbXj5dKz4vZ20sICcnKTtcbiAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBjb250ZW50LmZvbnRjb2xvcignIzQ1NTVCNicpLnNtYWxsKCksXG4gICAgICAgICAgICAgICAgIGRlc2M6ICcnLFxuICAgICAgICAgICAgICAgICBwaWNfdXJsOiAnJyxcbiAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXRSZXN1bHQoZClcbiAgICAgICAgICAgICB9LGh0bWwpLFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xufSk7XG5cbnZhciB1cmwgPSBwZChodG1sLCdib2R5JiZkaXZbZGF0YS1ocGNdJiZzZWN0aW9uJiZkZXRhaWxzOmhhcyhpbmNsdWRlLWZyYWdtZW50KSYmaW5jbHVkZS1mcmFnbWVudCYmc3JjfHxkYXRhLWRlZmVycmVkLXNyYycpXG4vL2xvZyh1cmwpXG52YXIgbGlzdCA9IHBkZmEoZmV0Y2godXJsKSwndWwmJmxpJylcbmxpc3QuZm9yRWFjaChpdGVtPT57XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgcGRmaChpdGVtLCcuVHJ1bmNhdGUtdGV4dCYmVGV4dCcpLmZvbnRjb2xvcignIzNhNzM1NicpLFxuICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sJy5mbGV4LWp1c3RpZnktZW5kJiZUZXh0JykucmVwbGFjZSgvKFxcZHs0fSkvLCfwn5OGJDEnKS5yZXBsYWNlKC9aJC8sJycpLnJlcGxhY2UoJ1QnLCfij7AnKSxcbiAgICAgICAgdXJsOiBwZChpdGVtLCdhJiZocmVmJykgKyAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHsgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgcmV0dXJuICdkb3dubG9hZDovLycgKyBpbnB1dFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcbiAgIH0pXG59KVxuXG5zZXRSZXN1bHQoZCkiLCJzZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsInNkZXRhaWxfZmluZF9ydWxlIjoiIiwidWEiOiJtb2JpbGUiLCJwcmVSdWxlIjoibGV0IHRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygpXG5sZXQg5pe26Ze06Ze06ZqUID0gdGltZS1nZXRJdGVtKCd0aW1lJywgbmV3IERhdGUoKS5nZXRUaW1lKCkudG9TdHJpbmcoKSlcblxuc2V0SXRlbSgndGltZScsIHRpbWUpO1xuXG5sZXQg6Ze06ZqU5aSp5pWwID0gTWF0aC5mbG9vcijml7bpl7Tpl7TpmpQgLyAoMjQgKiA2MCAqIDYwICogMTAwMCkpLnRvU3RyaW5nKCk7XG5sZXQg6Ze06ZqU5pe25pWwID0gTWF0aC5mbG9vcijml7bpl7Tpl7TpmpQgLyAoNjAgKiA2MCAqIDEwMDApKS50b1N0cmluZygpO1xubGV0IOmXtOmalOWIhuaVsCA9IE1hdGguZmxvb3Io5pe26Ze06Ze06ZqUIC8gKCA2MCAqIDEwMDApKS50b1N0cmluZygpO1xubGV0IOmXtOmalOenkuaVsCA9IE1hdGguZmxvb3Io5pe26Ze06Ze06ZqUIC8gMTAwMCkudG9TdHJpbmcoKTtcblxuc2V0SXRlbSgn6Ze06ZqUJywg6Ze06ZqU5pe25pWwKVxuXG5pbml0Q29uZmlnKHtcbiAgICDpl7TpmpQ6IGdldEl0ZW0oJ+mXtOmalCcsICcwJylcbn0pOyIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpu5jorqTmlbDmja5cIixcInBhdGhcIjpcImRhdGFcIixcInJ1bGVcIjpcIi8v6L+c56iL5pWw5o2uXFxuLypcXG7lr4bnoIHkuLrjgJDilonilonilonilonilonilonjgJHor7fnlKjlsI/liIDliK7lvIDojrflj5ZcXG4qL1xcbi8v6buY6K6k5pWw5o2uXFxudmFyIG1kYXRhID0gW1xcXCJTaW5nYm948J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9TYWdlck5ldC9zaW5nLWJveC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUthUEUucG5nXFxcIixcXFwiS2FyaW5n8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9LYXJpbmdYL2thcmluZy9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvejdEV1IucG5nXFxcIixcXFwiSGlkZGlmefCflKVodHRwczovL2dpdGh1Yi5jb20vaGlkZGlmeS9oaWRkaWZ5LW5leHQvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pwWUJKLnBuZ1xcXCIsXFxcIuiZjuWFlfCflKVodHRwczovL2dpdGh1Yi5jb20veGNoYWNoYTIwLXBvbHkxMzA1L2h1c2kvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pyRnpXLnBuZ1xcXCIsXFxcIk5la29ib3jwn5SlaHR0cHM6Ly9naXRodWIuY29tL01hdHN1cmlEYXlvL05la29Cb3hGb3JBbmRyb2lkL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96cng0Ui53ZWJwXFxcIixcXFwiU3VyZmJvYXJk8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9nZXRzdXJmYm9hcmQvc3VyZmJvYXJkL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96cnJGSi5wbmdcXFwiLFxcXCJDTUZB8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhY3ViZXgvY2xhc2htZXRhZm9yYW5kcm9pZC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUtQT1UucG5nXFxcIixcXFwiVjJyYXlOR/CflKVodHRwczovL2dpdGh1Yi5jb20vMmR1c3QvdjJyYXlORy9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUsyajQucG5nXFxcIixcXFwiQ2xhc2hSU/CflKVodHRwczovL2dpdGh1Yi5jb20vd2F0ZmFxL2NsYXNoLXJzL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JWHlkVy5wbmdcXFwiLFxcXCJjbGFzaC12ZXJnZS1yZXbwn5SlaHR0cHM6Ly9naXRodWIuY29tL2NsYXNoLXZlcmdlLXJldi9jbGFzaC12ZXJnZS1yZXYvcmVsZWFzZXPwn5SlaHR0cHM6Ly9waWMueml5dWFuLndhbmcvdXNlci9qYWJzYXMvMjAyNC8wNC8xNTI1MzQ0NjdfMmU5YzVjOTJiZDA1OC5wbmdcXFwiLFxcXCJQcm94eVBpbvCflKVodHRwczovL2dpdGh1Yi5jb20vd2FuZ2hvbmdlbnBpbi9uZXR3b3JrX3Byb3h5X2ZsdXR0ZXIvcmVsZWFzZXPwn5SlaHR0cHM6Ly90aHVtYnNuYXAuY29tL2kvbXNHWll6QVQucG5nXFxcIixcXFwi5YWD6JCd5Y2c8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9rYXRhbmEtb2ZmaWNpYWwvc3BhdGNoLXVwZGF0ZS9yZWxlYXNlc/CflKVodHRwczovL3RodW1ic25hcC5jb20vaS92Z0NodnFhVS5qcGdcXFwiLFxcXCJSZXFhYmxl8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9yZXFhYmxlL3JlcWFibGUtYXBwL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JS0JuaC53ZWJwXFxcIixcXFwiU2hpenVrdfCflKVodHRwczovL2dpdGh1Yi5jb20vUmlra2FBcHBzL1NoaXp1a3UvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL0lLRDd2LndlYnBcXFwiLFxcXCLmiJHnmoTnlLXop4bwn5SlaHR0cHM6Ly9naXRodWIuY29tL2xpem9uZ3lpbmcvbXktdHYvcmVsZWFzZXPwn5SlaHR0cHM6Ly90aHVtYnNuYXAuY29tL2kvUm5ZcWpuM3QucG5nXFxcIl1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS6keWPo+S7pFwiLFwicGF0aFwiOlwiY2xvdWRcIixcInJ1bGVcIjpcImV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvYmF0Y2hJbT9ydWxlPUdpdGh1YkFwcFxcXCIpKS5ydWxlKTtcXG5sZXQgY29udGVudCA9IGJhc2U2NERlY29kZShwYXJzZVBhc3RlKGlucHV0KSk7XFxuYmF0Y2hJbXBvcnQoY29udGVudCwgXFxcIkdpdGh1YkFwcFxcXCIpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5YiG5Lqr5a+85YWlXCIsXCJwYXRoXCI6XCJiYXRjaEltXCIsXCJydWxlXCI6XCJmdW5jdGlvbiBiYXRjaEltcG9ydChpbnB1dCwgcnVsZSkge1xcbiAgICBpbnB1dCA9IGlucHV0LnRyaW0oKTtcXG4gICAgaWYgKGlucHV0Lmxlbmd0aCA8IDMgKSB7XFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6K+36L6T5YWl5q2j56Gu55qE5qC85byPXFxcIlxcbiAgICB9XFxuICAgIGxldCBpbSA9IEpTT04ucGFyc2UoaW5wdXQpO1xcbiAgICBpZiAoaW0gPT0gbnVsbCB8fCBpbS5sZW5ndGggPCAxKSB7XFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6K+36L6T5YWl5q2j56Gu55qE5qC85byPXFxcIlxcbiAgICB9XFxuICAgIFxcbiAgICBsZXQgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKTtcXG4gICAgbGV0IGNvdW50ID0gMDtcXG4gICAgbGV0IGFsbCA9IGNvbmZpZy5tYXAoaXQgPT4gaXQuc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKTtcXG4gICAgZm9yIChsZXQgaSBvZiBpbSkge1xcbiAgICAgICAgaWYgKGFsbC5pbmRleE9mKGkuc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKSA+PSAwKSB7XFxuICAgICAgICAgICAgLy/ph43lpI3nmoTkuI3opoFcXG4gICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvdW50Kys7XFxuICAgICAgICBjb25maWcucHVzaChpKVxcbiAgICB9XFxuICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcXG4gICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3suWvvOWFpVxcXCIgKyBjb3VudCArIFxcXCLkuKpBcHBcXFwiO1xcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIua3u+WKoEFwcFwiLFwicGF0aFwiOlwi5re75YqgXCIsXCJydWxlXCI6XCJ2YXIg5re75YqgID0gJCgnJykucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgdmFyIGluZGV4ID0gTVlfUEFSQU1TLmlcXG4gICAgICAgICAgICBzZXRQYWdlVGl0bGUoJ+a3u+WKoEdpdGh1YkFwcCcpXFxuICAgICAgICAgICAgdmFyIGQgPSBbXVxcbiAgICAgICAgICAgIGQucHVzaChcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflkI3np7AnLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogJ+i+k+WFpUFwcOWQjeWtlycsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ25hbWUnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ25hbWUnLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IC0xLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFwicHV0TXlWYXIoJ25hbWUnLGlucHV0KVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WcsOWdgCcsXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiAn6L6T5YWlZ2l0aHViIHJlbGVhc2VzJyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcigncmVsZWFzZXMnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ3JlbGVhc2VzJywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCdyZWxlYXNlcycsaW5wdXQpXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5Zu+5qCHJyxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaXlm77moIflnLDlnYAnLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdpY29uJylcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKCdpY29uJywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCdpY29uJyxpbnB1dClcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgJ+ehruiupOa3u+WKoCcuZm9udGNvbG9yKCcjRkYwMEZGJykuYmlnKCksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGluZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdldE15VmFyKCduYW1lJykgPT0gJycpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WQjeWtl+S4jeiDveS4uuepun4nXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ3JlbGVhc2VzJykgPT0gJycgfHxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIS9eaHR0cHNcXFxcOlxcXFwvXFxcXC9naXRodWJcXFxcLmNvbVxcXFwvLio/XFxcXC8ocmVsZWFzZXN8dGFncykvLnRlc3QoZ2V0TXlWYXIoJ3JlbGVhc2VzJykpXFxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/or7fovpPlhaXmraPnoa7nmoTlnLDlnYB+J1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCduYW1lJywgJycpICtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICfwn5SlJyArXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNeVZhcigncmVsZWFzZXMnLCAnJykudG9Mb3dlckNhc2UoKSArXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn8J+UpScgK1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ2ljb24nLCAnJylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0ciA9IGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RyKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IFtpdGVtXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsIEpTT04uc3RyaW5naWZ5KGxpc3QpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL0FwcOa3u+WKoOaIkOWKn34nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IEpTT04ucGFyc2Uoc3RyKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbGVhc2UgPSBsaXN0Lm1hcCgoaSkgPT4gaS5zcGxpdCgn8J+UpScpWzFdLnRvTG93ZXJDYXNlKCkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVsZWFzZS5pbmRleE9mKGl0ZW0uc3BsaXQoJ/CflKUnKVsxXSkgPT0gJy0xJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgbGlzdC5wdXNoKGl0ZW0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGlzdC51bnNoaWZ0KGl0ZW0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5zcGxpY2UoaW5kZXgsIDAsIGl0ZW0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZShcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkobGlzdClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly9BcHDmt7vliqDmiJDlip9+J1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5pyJ55u45ZCMQXBwfidcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0saW5kZXgpLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7IGxpbmVWaXNpYmxlOiBmYWxzZSB9LFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyAn54K55oiR6aKE6KeIJy5mb250Y29sb3IoJyMwMERBQzQnKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYTogeyBsaW5lVmlzaWJsZTogZmFsc2UgfSxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGdldE15VmFyKCduYW1lJywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgaW1nOiBnZXRNeVZhcignaWNvbicsICcnKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignaWNvbicpXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignbmFtZScpXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcigncmVsZWFzZXMnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpY29uXzRfY2FyZCcsXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICApXFxuICAgICAgICAgICAgc2V0UmVzdWx0KGQpXFxuICAgICAgICB9KVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5LiK5Lyg5LqR56uvXCIsXCJwYXRoXCI6XCJ1cGxvYWRcIixcInJ1bGVcIjpcImZ1bmN0aW9uIGJhdGNodXBsb2FkKGlucHV0LCBydWxlKSB7XFxuICAgIGlucHV0ID0gaW5wdXQudHJpbSgpO1xcbiAgICBsZXQgaW0gPSBKU09OLnBhcnNlKGlucHV0KTsgICBcXG4gICAgbGV0IGNvbmZpZyA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JykgfHwgJ1tdJyk7XFxuICAgIGxldCBjb3VudCA9IDA7XFxuICAgIGxldCBhbGwgPSBpbS5tYXAoaXQgPT4gaXQuc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKTtcXG4gICAgZm9yIChsZXQgaSBvZiBjb25maWcpIHtcXG4gICAgICAgIGlmIChhbGwuaW5kZXhPZihpLnNwbGl0KCfwn5SlJylbMV0udG9Mb3dlckNhc2UoKSkgPj0gMCkge1xcbiAgICAgICAgICAgIC8v6YeN5aSN55qE5LiN6KaBXFxuICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICB9XFxuICAgICAgICBjb3VudCsrO1xcbiAgICAgICAgaW0ucHVzaChpKVxcbiAgICB9XFxuICAgIGxldCBoZWkgPSBcXFwiaHR0cHM6Ly9naXRodWIuY29tL2hzc2t5Ym95L25wYWNoL3JlbGVhc2Vz8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9oc3NreWJveS9ucGF0Y2gvcmVsZWFzZXPwn5SlaHR0cHM6Ly9naXRodWIuY29tL2NldWlsaXNhL3BpeGl2LXNsaW5reS9yZWxlYXNlc1xcXCJcXG4gICAgbGV0IGpqID0gaGVpLnNwbGl0KFxcXCLwn5SlXFxcIikubWFwKGo9PmoudG9Mb3dlckNhc2UoKSlcXG4gICAgaW0gPSBpbS5maWx0ZXIoaXRlbSA9PiBqai5pbmRleE9mKGl0ZW0uc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKSA9PT0gLTEpO1xcbiAgICB2YXIgdXBkYXRlID0gSlNPTi5zdHJpbmdpZnkoaW0pXFxuICAgIHJldHVybiB1cGRhdGVcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLOseWkp+S9rOWGmeeahHB1dFwiLFwicGF0aFwiOlwicHV0XCIsXCJydWxlXCI6XCIoZnVuY3Rpb24gKCkge1xcbiAgZnVuY3Rpb24gZ2VuZXJhdGVCb3VuZGFyeShwcmVmaXgsIHJhbmRvbUxlbmd0aCkge1xcbiAgICBjb25zdCBjaGFyYWN0ZXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcXG4gICAgbGV0IGJvdW5kYXJ5ID0gJyc7XFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmFuZG9tTGVuZ3RoOyBpKyspIHsgLy8g5qC55o2u5oyH5a6a6ZW/5bqm55Sf5oiQ6ZqP5py66YOo5YiGXFxuICAgICAgYm91bmRhcnkgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVycy5sZW5ndGgpKTtcXG4gICAgfVxcbiAgICByZXR1cm4gYCR7cHJlZml4fSR7Ym91bmRhcnl9YDsgLy8g6L+U5Zue5a6M5pW055qE6L6555WM5a2X56ym5LiyXFxuICB9XFxuICBmdW5jdGlvbiBwdXRQcm90b2NvbCh1cmwsIGluaGVhZCwgYm9keSwgYm91bm9iaikge1xcbiAgICBsZXQgZGVmb2JqID0ge1xcbiAgICAgIHByZWZpeDogJy0tV2ViS2l0Rm9ybUJvdW5kYXJ5JyxcXG4gICAgICBudW06IDE2LFxcbiAgICAgIGZpbGw6IFs0LCA0LCAyXVxcbiAgICB9XFxuICAgIGlmIChib3Vub2JqID09IHVuZGVmaW5lZCkge1xcbiAgICAgIGJvdW5vYmogPSBkZWZvYmo7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgYm91bm9iaiA9IE9iamVjdC5hc3NpZ24oe30sIGRlZm9iaiwgYm91bm9iaik7XFxuICAgIH1cXG4gICAgLy9sb2coYm91bm9iailcXG5cXG4gICAgdmFyIGZpbGwgPSBib3Vub2JqLmZpbGwubWFwKGNvdW50ID0+ICctJy5yZXBlYXQoY291bnQpKTtcXG4gICAgLy9sb2coZmlsbClcXG4gICAgdmFyIGJvdW5kYXJ5ID0gZ2VuZXJhdGVCb3VuZGFyeShib3Vub2JqLnByZWZpeCwgYm91bm9iai5udW0pO1xcbiAgICBsZXQgZGVmaGVhZCA9IHtcXG4gICAgICBoZWFkZXJzOiB7XFxuICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IE1PQklMRV9VQSxcXG4gICAgICB9LFxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXFxuICAgIH1cXG4gICAgaWYgKGluaGVhZC5oZWFkZXJzICYmIGluaGVhZC5oZWFkZXJzLmhhc093blByb3BlcnR5KFxcXCJjb250ZW50LXR5cGVcXFwiKSkge1xcbiAgICAgIGluaGVhZC5oZWFkZXJzW1xcXCJjb250ZW50LXR5cGVcXFwiXSA9IGluaGVhZC5oZWFkZXJzW1xcXCJjb250ZW50LXR5cGVcXFwiXS5yZXBsYWNlKFxcXCIke2JvdW5kYXJ5fVxcXCIsIGJvdW5kYXJ5KTtcXG4gICAgfVxcbiAgICB2YXIgaGVhZCA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmhlYWQsIGluaGVhZCk7XFxuICAgIGlmIChib2R5KSB7XFxuICAgICAgaGVhZC5oZWFkZXJzLmJvZHkgPSBPYmplY3Qua2V5cyhib2R5KS5tYXAoa2V5ID0+IHtcXG4gICAgICAgIHJldHVybiBgJHtmaWxsWzBdfSR7Ym91bmRhcnl9XFxcXHJcXFxcbkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT1cXFwiJHtrZXl9XFxcIlxcXFxyXFxcXG5cXFxcclxcXFxuJHtib2R5W2tleV19YFxcbiAgICAgIH0pLmpvaW4oJ1xcXFxyXFxcXG4nKSArIGBcXFxcclxcXFxuJHtmaWxsWzFdfSR7Ym91bmRhcnl9JHtmaWxsWzJdfVxcXFxyXFxcXG5gXFxuICAgIH1cXG4gICAgLy9sb2coaGVhZClcXG4gICAgcmV0dXJuIGZldGNoKHVybCwgaGVhZCk7XFxuICB9XFxuICAkLmV4cG9ydHM9e1xcbiAgICAgZ2V0Qm91bmRhcnk6Z2VuZXJhdGVCb3VuZGFyeSxcXG4gICAgIHB1dDpwdXRQcm90b2NvbFxcbiAgfVxcbn0pKClcIn1dIiwiaWNvbiI6Imh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96cG5wdi53ZWJwIiwicHJveHkiOiIifQ==
Add Comment
Please, Sign In to add comment