Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@FreeOK@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiRnJlZU9LIiwiYXV0aG9yIjoi57yY5YiGIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjaHR0cHM6Ly93d3cuZnJlZW9rLnByby92b2Qtc2hvdy8xLS0tLS0tLS1meXBhZ2UtLS0uaHRtbCIsInZlcnNpb24iOjYsImNvbF90eXBlIjoibW92aWVfMyIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoidmlkZW8iLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbnZhciBkID0gW107XG52YXIgZ2V0UmFuZ2VDb2xvcnMgPSBmdW5jdGlvbigpIHvCoMKgwqDCoMKgwqDCoFxuICAgIHJldHVybiAnIycgKyAoJzAwMDAwJyArIChNYXRoLnJhbmRvbSgpICogMHgxMDAwMDAwIDw8IDApLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC02KTvCoMKgwqDCoMKgXG59XG5jb25zdCDliIbnsbvpopzoibIgPSBnZXRSYW5nZUNvbG9ycygpXG5jb25zdCDlpKfnsbvlrprkvY0gPSAnLm5hdmJhci1pdGVtcydcbmNvbnN0IOaLvOaOpeWIhuexuyA9ICdib2R5JiYubW9kdWxlLWl0ZW0tYm94J1xuY29uc3Qg5bCP57G75a6a5L2NID0gJ2JvZHkmJmE6bm90KDptYXRjaGVzKOmmlumhtXzng63mppx8QVBQfOeDreaQnHznlZnoqIB86L+95YmnfOe9keebmCkpJ1xuY29uc3Qg5YiG57G75qCH6aKYID0gJ2EmJlRleHQnXG5jb25zdCDliIbnsbvpk77mjqUgPSAnYSYmaHJlZidcbk1ZX1VSTCA9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJylcbmxldCB0cnVlX3VybCA9IGdldE15VmFyKFwidXJsXCIsIE1ZX1VSTClcbmNvbnN0IHBhZ2UgPSBNWV9QQUdFXG5pZiAoZ2V0TXlWYXIoXCJ1cmxcIikpIHtcbiAgICB0cnVlX3VybCA9IHRydWVfdXJsLnJlcGxhY2UoL3YtdHlwZVxcLyhcXGQrKVxcLmh0bWwvLCAndm9kLXNob3cvJDEtLS0tLS0tLS0tLS5odG1sJykucmVwbGFjZSgvLS0tKFxcZCopXFwuaHRtbC8sIHBhZ2UgKyAnLS0tJDEuaHRtbCcpO1xufVxubGV0IGMgPSBnZXRWYXIoXCJmcmVlb2tcIiwgXCJcIik7XG5pZiAoYyAhPSBcIlwiKSB7XG4gICAgc2V0SXRlbShcImNvb2tpZVwiLCBjKTtcbiAgICBjbGVhclZhcihcImZyZWVva1wiKTtcbn1cbi8vY2xlYXJJdGVtKCdjb29raWUnKVxudmFyIGNvb2tpZSA9IGdldEl0ZW0oXCJjb29raWVcIiwgXCJcIilcblxubGV0IGhlYWRlcnMgPSB7XG4gICAgXCJDb29raWVcIjogY29va2llLFxuICAgIFwiVXNlci1BZ2VudFwiOiBNT0JJTEVfVUEsICAgXG59O1xuLy9sb2coY29va2llKVxudmFyIGh0bWwgPSBmZXRjaCh0cnVlX3VybCwge1xuICAgIGhlYWRlcnM6IGhlYWRlcnMsXG59KTtcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3NtJywge30pKS5ydWxlKTtcbmlmIChodG1sLmluY2x1ZGVzKFwiSnVzdCBhIG1vbWVudFwiKSkge1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBcIuS6uuacuumqjOivgVwiLFxuICAgICAgICBjb2xfdHlwZTogXCJ0ZXh0X2NlbnRlcl8xXCIsXG4gICAgICAgIHVybDogTVlfVVJMICsgJChcIlwiKS5ydWxlKCgpID0+IHtcbiAgICAgICAgICAgIHZhciBkID0gW107XG4gICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHVybDogTVlfVVJMLFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcIng1X3dlYnZpZXdfc2luZ2xlXCIsXG4gICAgICAgICAgICAgICAgZGVzYzogXCJmbG9hdCYmMjQwXCIsXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICAgICAgdWE6IE1PQklMRV9VQSxcbiAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2soKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGMgPSBmYmEuZ2V0Q29va2llKGxvY2F0aW9uLmhyZWYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb2R1bGUtcG9zdGVyLWl0ZW0nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlcyAmJiBub2Rlcy5sZW5ndGggPiAwICYmIGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLnB1dFZhcihcImZyZWVva1wiLCBjKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhjKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEucGFyc2VMYXp5UnVsZSgkJCQoKS5sYXp5UnVsZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNoZWNrLCAyNTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi5q2j5Zyo6L+H5a6J5YWo6aqM6K+B77yM6K+356iN5YCZXCIsXG4gICAgICAgICAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kuIvmi4nliLfmlrAnXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFwidGV4dF9jZW50ZXJfMVwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzZXRSZXN1bHQoZCk7XG4gICAgICAgIH0pXG4gICAgfSlcbn0gZWxzZVxudmFyIGxpc3QgPSBwZGZhKGh0bWwsICcubW9kdWxlJiYubW9kdWxlLXBvc3Rlci1pdGVtJyk7XG5mb3IgKHZhciBqIGluIGxpc3QpIHtcbiAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogcGRmaChsaXN0W2pdLCAnYSYmdGl0bGUnKSxcbiAgICAgICAgZGVzYzogcGRmaChsaXN0W2pdLCAnLm1vZHVsZS1pdGVtLWNvdmVyJiZUZXh0JyksXG4gICAgICAgIGltZzogcGQobGlzdFtqXSwgJy5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbCcpICsgJ0BSZWZlcmVyPScsXG4gICAgICAgIHVybDogcGQobGlzdFtqXSwgJ2EmJmhyZWYnKSArICcjaW1tZXJzaXZlVGhlbWUjJ1xuICAgIH0pO1xufVxuc2V0UmVzdWx0KGQpOyIsInNlYXJjaF91cmwiOiJodHRwczovL3d3dy5mcmVlb2sucHJvL3NvMXNvLyoqLS0tLS0tLS0tLWZ5cGFnZS0tLS5odG1sIiwiZ3JvdXAiOiIj57yY5YiGIiwic2VhcmNoRmluZCI6ImpzOlxudmFyIGQgPSBbXTtcbnZhciBodG1sID0gZ2V0UmVzQ29kZSgpO1xuXG5sZXQgYyA9IGdldFZhcihcImZyZWVva1wiLCBcIlwiKTtcbmlmIChjICE9IFwiXCIpIHtcbiAgICBzZXRJdGVtKFwiY29va2llXCIsIGMpO1xuICAgIGNsZWFyVmFyKFwiZnJlZW9rXCIpO1xufVxuLy9jbGVhckl0ZW0oJ2Nvb2tpZScpXG52YXIgY29va2llID0gZ2V0SXRlbShcImNvb2tpZVwiLCBcIlwiKVxuXG5sZXQgaGVhZGVycyA9IHtcbiAgICBcIkNvb2tpZVwiOiBjb29raWUsXG4gICAgXCJVc2VyLUFnZW50XCI6IE1PQklMRV9VQSxcbn07XG4vL2xvZyhjb29raWUpXG52YXIgaHRtbCA9IGZldGNoKE1ZX1VSTCwge1xuICAgIGhlYWRlcnM6IGhlYWRlcnMsXG59KTtcbmlmIChodG1sLmluY2x1ZGVzKFwiSnVzdCBhIG1vbWVudFwiKSB8fCBodG1sLmluY2x1ZGVzKCfns7vnu5/lronlhajpqozor4EnKSkge1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBcIuS6uuacuumqjOivgVwiLFxuICAgICAgICBjb2xfdHlwZTogXCJ0ZXh0X2NlbnRlcl8xXCIsXG4gICAgICAgIHVybDogTVlfVVJMICsgJChcIlwiKS5ydWxlKCgpID0+IHtcbiAgICAgICAgICAgIHZhciBkID0gW107XG4gICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHVybDogTVlfVVJMLFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcIng1X3dlYnZpZXdfc2luZ2xlXCIsXG4gICAgICAgICAgICAgICAgZGVzYzogXCJmbG9hdCYmMTAwJVwiLFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgICAgICAgIHVhOiBNT0JJTEVfVUEsXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjID0gZmJhLmdldENvb2tpZShsb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kdWxlLWNhcmQtaXRlbScpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGVzICYmIG5vZGVzLmxlbmd0aCA+IDAgJiYgYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEucHV0VmFyKFwiZnJlZW9rXCIsIGMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKGMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5wYXJzZUxhenlSdWxlKCQkJCgpLmxhenlSdWxlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2ssIDI1MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2soKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBzZXRIb21lUmVzdWx0KGQpO1xuICAgICAgICB9KVxuICAgIH0pXG59IGVsc2Vcbi8vZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UveXptJywge30pKS5ydWxlKTtcbnZhciBsaXN0ID0gcGRmYShodG1sLCAnLm1vZHVsZS1pdGVtcyYmLm1vZHVsZS1jYXJkLWl0ZW0nKTtcbmZvciAodmFyIGogaW4gbGlzdCkge1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBwZGZoKGxpc3Rbal0sICdzdHJvbmcmJlRleHQnKSxcbiAgICAgICAgZGVzYzogcGRmaChsaXN0W2pdLCAnLm1vZHVsZS1pdGVtLW5vdGUmJlRleHQnKSxcbiAgICAgICAgcGljX3VybDogcGQobGlzdFtqXSwgJy5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbCcpICsgJ0BSZWZlcmVyPScsXG4gICAgICAgIHVybDogcGQobGlzdFtqXSwgJ2EmJmhyZWYnKSArIFwiI2ltbWVyc2l2ZVRoZW1lI1wiXG4gICAgfSk7XG59XG5zZXRIb21lUmVzdWx0KGQpOyIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJkZXRhaWxfZmluZF9ydWxlIjoianM6XG52YXIgZCA9IFtdO1xubGV0IGMgPSBnZXRWYXIoXCJmcmVlb2tcIiwgXCJcIik7XG5pZiAoYyAhPSBcIlwiKSB7XG4gICAgc2V0SXRlbShcImNvb2tpZVwiLCBjKTtcbiAgICBjbGVhclZhcihcImZyZWVva1wiKTtcbn1cbi8vY2xlYXJJdGVtKCdjb29raWUnKVxudmFyIGNvb2tpZSA9IGdldEl0ZW0oXCJjb29raWVcIiwgXCJcIilcblxubGV0IGhlYWRlcnMgPSB7XG4gICAgXCJDb29raWVcIjogY29va2llLFxuICAgIFwiVXNlci1BZ2VudFwiOiBNT0JJTEVfVUEsXG59O1xuLy9sb2coY29va2llKVxudmFyIGh0bWwgPSBmZXRjaChNWV9VUkwsIHtcbiAgICBoZWFkZXJzOiBoZWFkZXJzLFxufSk7XG5pZiAoaHRtbC5pbmNsdWRlcyhcIkp1c3QgYSBtb21lbnRcIikgfHwgaHRtbC5pbmNsdWRlcygn57O757uf5a6J5YWo6aqM6K+BJykpIHtcbiAgICBcbiAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiXCIsXG4gICAgICAgICAgICAgICAgdXJsOiBNWV9VUkwsXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFwieDVfd2Vidmlld19zaW5nbGVcIixcbiAgICAgICAgICAgICAgICBkZXNjOiBcImZsb2F0JiYxMDAlXCIsXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICAgICAgdWE6IE1PQklMRV9VQSxcbiAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2soKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGMgPSBmYmEuZ2V0Q29va2llKGxvY2F0aW9uLmhyZWYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50YWItaXRlbScpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGVzICYmIG5vZGVzLmxlbmd0aCA+IDAgJiYgYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEucHV0VmFyKFwiZnJlZW9rXCIsIGMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKGMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5wYXJzZUxhenlSdWxlKCQkJCgpLmxhenlSdWxlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2ssIDI1MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2soKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXG59IGVsc2V7XG52YXIgYXJ0cyA9IHBkZmEoaHRtbCwgJ2JvZHkmJi50YWItaXRlbScpO1xuXG52YXIgdGFicyA9IFtdO1xuZm9yICh2YXIgaSBpbiBhcnRzKSB7XG4gICAgdGFicy5wdXNoKHBkZmgoYXJ0c1tpXSwgJ3NwYW4mJlRleHQnKSlcbn1cblxudmFyIGNvbnRzID0gcGRmYShodG1sLCAnYm9keSYmLm1vZHVsZS1wbGF5LWxpc3QtY29udGVudCcpO1xuXG52YXIgbGlzdHMgPSBbXTtcbmZvciAodmFyIGkgaW4gY29udHMpIHtcbiAgICBsaXN0cy5wdXNoKHBkZmEoY29udHNbaV0sICdib2R5JiZhJykpXG59XG50cnkge1xuZC5wdXNoKHtcbiAgICB0aXRsZTogcGRmaChodG1sLCAnLm1vZHVsZS1pbmZvLWNvbnRlbnQmJi5tb2R1bGUtaW5mby1pdGVtLDMmJlRleHQnKS5zdWJzdHJpbmcoMCwgMTgpICtcbiAgICAgICAgJ1xcbicgK1xuICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgcGRmaChodG1sLFxuJycpLnN1YnN0cmluZygwLCAxOCksXG4gICAgZGVzYzogcGRmaChodG1sLCAnLm1vZHVsZS1pbmZvLWNvbnRlbnQmJi5tb2R1bGUtaW5mby1pdGVtLDEmJlRleHQnKSxcbiAgICBpbWc6IHBkKGh0bWwsIFxuJy5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbCcpICsnQFJlZmVyZXI9JyxcbiAgICB1cmw6IE1ZX1VSTCxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLGV4dHJhOiB7Z3JhZGllbnQ6IHRydWV9XG5cbn0pO1xufSBjYXRjaCAoZSkge1xuZC5wdXNoKHtcbiAgICBpbWc6IHBkKGh0bWwsIFxuJy5sYXp5bG9hZCYmZGF0YS1vcmlnaW5hbCcpICsnQFJlZmVyZXI9JyxcbiAgICB1cmw6IE1ZX1VSTCxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLGV4dHJhOiB7Z3JhZGllbnQ6IHRydWV9XG59KTtcbn1cbnZhciDnroDku4sgPSBwZGZoKGh0bWwsICcubW9kdWxlLWluZm8taW50cm9kdWN0aW9uLWNvbnRlbnQmJlRleHQnKVxuZC5wdXNoKHtcbiAgICB0aXRsZTogJ+KAmOKAmOKAmeKAmTxzbWFsbD48Zm9udCBjb2xvcj1cIiNmZjE0OGU4ZVwiPueugOS7i++8micgKyDnroDku4suc3Vic3RyKDAsIDU1KSArICcuLi48L2ZvbnQ+PHNtYWxsPjxmb250IGNvbG9yPVwicmVkXCI+6K+m5oOFPC9mb250Pjwvc21hbGw+PC9zbWFsbD4nLFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHkjJyArICdcXG4nICsg566A5LuLICsnI25vSGlzdG9yeSMjbm9SZWNvcmRIaXN0b3J5IycgKyBgQHJ1bGU9anM6IHZhciBkID0gW107ZC5wdXNoKHt0aXRsZTon5b2x54mH566A5LuL77yaJysgTVlfVVJMLnNwbGl0KCcjJylbMV0sY29sX3R5cGU6ICdsb25nX3RleHQnfSk7IHNldFJlc3VsdChkKTtgLFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xufSk7XG4gZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvbGF6eScsIHt9KSkucnVsZSk7XG5cbmZ1bmN0aW9uIHNldFRhYnModGFicywgdmFyaSkge1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiAoZ2V0VmFyKCdzaHNvcnQnKSA9PSAnMScpID8gJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVwiY29sb3I6ICNGRjAwMDBcIj7pgIbluo88L3NwYW4+PC9iPicgOiAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XCJjb2xvcjogIzFhYWQxOVwiPuato+W6jzwvc3Bhbj48L2I+JyxcbiAgICAgICAgdXJsOiBgQGxhenlSdWxlPS5qczpsZXQgY29uZiA9IGdldFZhcignc2hzb3J0Jyk7aWYoY29uZj09JzEnKXtwdXRWYXIoe2tleTonc2hzb3J0JywgdmFsdWU6JzAnfSk7fWVsc2V7cHV0VmFyKHtrZXk6J3Noc29ydCcsIHZhbHVlOicxJ30pfTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WIh+aNouaOkuW6j+aIkOWKnydgLFxuICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xuICAgIH0pXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciB1cmwgPSBcIiNub0xvYWRpbmcjQGxhenlSdWxlPS5qczpwdXRWYXIoJ1wiICsgdmFyaSArIFwiJywgJ1wiICsgaSArIFwiJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSc7JyNub0hpc3RvcnkjaGlrZXI6Ly9lbXB0eSdcIjtcbiAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBnZXRWYXIodmFyaSwgJzAnKSA9PSBpID8gJ+KAnOKAnCcgKyB0YWJzW2ldICsgJ+KAneKAnScgOiB0YWJzW2ldLFxuICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xuICAgICAgICB9KVxuICAgIH1cbn1cblxuZnVuY3Rpb24gc2V0TGlzdHMobGlzdHMsIGluZGV4KSB7ICAgIFxuICAgIHZhciBsaXN0ID0gbGlzdHNbaW5kZXhdO1xuICAgIGlmIChnZXRWYXIoJ3Noc29ydCcpID09ICcxJykge1xuICAgICAgICB2YXIgbGlzdCA9IGxpc3RzW2luZGV4XS5yZXZlcnNlKCk7XG4gICAgfVxuICAgIGZvciAodmFyIGogaW4gbGlzdCkge1xuICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6IHBkZmgobGlzdFtqXSwgJ2EmJlRleHQnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/nrKwoXFxkKynpm4YvLCAnJDEnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKCfnrKwnLCAnJylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgn5pyfJywgJycpLFxuICAgICAgICAgICAgdXJsOiBwZChsaXN0W2pdLCAnYSYmaHJlZicpICsgJyMnICsgdGFic1tpbmRleF0gKyBsYXp5LFxuICAgICAgICAgICAgY29sX3R5cGU6IGxpc3QubGVuZ3RoID4gMyA/ICd0ZXh0XzQnIDogJ3RleHRfMidcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5zZXRUYWJzKHRhYnMsIE1ZX1VSTCk7XG5zZXRMaXN0cyhsaXN0cywgZ2V0VmFyKE1ZX1VSTCwgJzAnKSk7XG59XG5zZXRSZXN1bHQoZCk7Iiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IioiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiIiLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Yqo5oCB5YiG57G7XCIsXCJwYXRoXCI6XCJzbVwiLFwicnVsZVwiOlwiY29uc3QgZW1wdHkgPSBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG5hZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICBjbGVhck15VmFyKFxcXCJ1cmxcXFwiKTtcXG4gICAgY2xlYXJNeVZhcihcXFwidFxcXCIpO1xcbn0pKTtcXG50cnkge1xcbiAgICB2YXIgY2F0ZWdvcmllcyA9IHBkZmEoaHRtbCwg5aSn57G75a6a5L2NKS5jb25jYXQocGRmYShodG1sLCDmi7zmjqXliIbnsbspKVxcbn0gY2F0Y2ggKGUpIHtcXG4gICAgdmFyIGNhdGVnb3JpZXMgPSBwZGZhKGh0bWwsIOWkp+exu+WumuS9jSlcXG59XFxuXFxubGV0IGluaXRfY2F0ZSA9IFtdXFxuXFxuZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XFxuICAgIGluaXRfY2F0ZS5wdXNoKFxcXCIwXFxcIilcXG59XFxuXFxuY29uc3QgZm9sZCA9IGdldE15VmFyKFxcXCJmb2xkXFxcIiwgXFxcIjBcXFwiKVxcbmNvbnN0IGNhdGVfdGVtcF9qc29uID0gZ2V0TXlWYXIoXFxcInRcXFwiLCBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUpKVxcbmNvbnN0IGNhdGVfdGVtcCA9IEpTT04ucGFyc2UoY2F0ZV90ZW1wX2pzb24pXFxuXFxuaWYgKHBhcnNlSW50KHBhZ2UpID09PSAxKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogZm9sZCA9PT0gJzEnID8gJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVxcXCJjb2xvcjogI0ZGMDAwMFxcXCI+4oioPC9zcGFuPjwvYj4nIDogJ+KAnOKAnOKAneKAnTxiPjxzcGFuIHN0eWxlPVxcXCJjb2xvcjogIzFhYWQxOVxcXCI+4oinPC9zcGFuPjwvYj4nLFxcbiAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKGZvbGQpID0+IHtcXG4gICAgICAgICAgICBwdXRNeVZhcihcXFwiZm9sZFxcXCIsIGZvbGQgPT09ICcxJyA/ICcwJyA6ICcxJyk7XFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgIH0sIGZvbGQpLFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgfSlcXG5cXG5cXG4gICAgY2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeSwgaW5kZXgpID0+IHtcXG4gICAgICAgIGxldCBzdWJfY2F0ZWdvcmllcyA9IHBkZmEoY2F0ZWdvcnksIOWwj+exu+WumuS9jSk7XFxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcXG4gICAgICAgICAgICBzdWJfY2F0ZWdvcmllcy5mb3JFYWNoKChpdGVtLCBrZXkpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChpdGVtLCDliIbnsbvmoIfpopgpXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZToga2V5LnRvU3RyaW5nKCkgPT09IGNhdGVfdGVtcFtpbmRleF0gPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAnICsg5YiG57G76aKc6ImyICsgJ1xcXCI+JyArIHRpdGxlICsgJzwvc3Bhbj48L2I+JyA6IHRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKHBkKGl0ZW0sIOWIhuexu+mTvuaOpSkgKyAnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgocGFyYW1zKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld19jYXRlID0gW11cXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuY2F0ZV90ZW1wLmZvckVhY2goKGNhdGUsIGluZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19jYXRlLnB1c2goaW5kZXggPT09IDAgPyBwYXJhbXMua2V5LnRvU3RyaW5nKCkgOiBcXFwiMFxcXCIpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwidFxcXCIsIEpTT04uc3RyaW5naWZ5KG5ld19jYXRlKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwidXJsXFxcIiwgaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZV90ZW1wOiBjYXRlX3RlbXAsXFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogcGFnZSxcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiYmxhbmtfYmxvY2tcXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9IGVsc2UgaWYgKGZvbGQgPT09ICcxJykge1xcbiAgICAgICAgICAgIHN1Yl9jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0sIGtleSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKGl0ZW0sIOWIhuexu+agh+mimClcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXkudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2luZGV4XSA/ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cXFwiY29sb3I6ICcgKyDliIbnsbvpopzoibIgKyAnXFxcIj4nICsgdGl0bGUgKyAnPC9zcGFuPjwvYj4nIDogdGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQocGQoaXRlbSwg5YiG57G76ZO+5o6lKSArICcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuY2F0ZV90ZW1wW3BhcmFtcy5pbmRleF0gPSBwYXJhbXMua2V5LnRvU3RyaW5nKClcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwidFxcXCIsIEpTT04uc3RyaW5naWZ5KHBhcmFtcy5jYXRlX3RlbXApKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXCJ1cmxcXFwiLCBpbnB1dClcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlX3RlbXA6IGNhdGVfdGVtcCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXgsXFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogcGFnZSxcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJyxcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiYmxhbmtfYmxvY2tcXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH0pXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwibGF6eVwiLFwicGF0aFwiOlwibGF6eVwiLFwicnVsZVwiOlwidmFyIGxhenkgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChNWV9IT01FKSA9PiB7XFxuaWYoaW5wdXQuc3BsaXQoXFxcIiNcXFwiKVsxXSA9PSAnT0vml6Dlub8nKSB7XFxuIHNob3dMb2FkaW5nKCfliqjmgIHop6PmnpDop4TliJnkuK3vvIzor7fnqI3lgJknKTtcXG4gICAgdmFyIHZpZGVvID0gXFxcIndlYlJ1bGU6Ly9cXFwiICsgaW5wdXQgKyAnQCcgKyAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgIHZhciB1cmxzID0gX2dldFVybHMoKVxcbi8vZmJhLmxvZyhmYmEuZ2V0VXJscygpKVxcbiAgICAgICAgICAgIHZhciBuZXdVcmxzID0gdXJscy5maWx0ZXIodXJsID0+IHsgICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmwubWF0Y2goL21wNHxtM3U4LylcXG4gICAgICAgICAgICB9KTsgIFxcbiAgICAgICAgICAgIGlmIChuZXdVcmxzID09ICcnKSB7XFxuICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uLmhyZWYgICAgICAgICAgIFxcbiAgICAgICAgfSAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICByZXR1cm4gbmV3VXJsc1swXVxcbiAgICB9KVxcbiAgICByZXR1cm4gdmlkZW87XFxufVxcblxcblxcbmxldCBjID0gZ2V0VmFyKFxcXCJmcmVlb2tcXFwiLCBcXFwiXFxcIik7XFxuaWYgKGMgIT0gXFxcIlxcXCIpIHtcXG4gICAgc2V0SXRlbShcXFwiY29va2llXFxcIiwgYyk7XFxuICAgIGNsZWFyVmFyKFxcXCJmcmVlb2tcXFwiKTtcXG59XFxuLy9jbGVhckl0ZW0oJ2Nvb2tpZScpXFxudmFyIGNvb2tpZSA9IGdldEl0ZW0oXFxcImNvb2tpZVxcXCIsIFxcXCJcXFwiKVxcblxcbmxldCBoZWFkZXJzID0ge1xcbiAgICBcXFwiQ29va2llXFxcIjogY29va2llLFxcbiAgICBcXFwiVXNlci1BZ2VudFxcXCI6IE1PQklMRV9VQSwgICBcXG59O1xcbi8vbG9nKGNvb2tpZSlcXG52YXIgaHRtbCA9IGZldGNoKGlucHV0LCB7XFxuICAgIGhlYWRlcnM6IGhlYWRlcnMsXFxufSk7XFxuaWYgKGh0bWwuaW5jbHVkZXMoXFxcIkp1c3QgYSBtb21lbnRcXFwiKSkge1xcbiAgICByZXR1cm4gJCgpLnJ1bGUoKGlucHV0KSA9PiB7XFxuICAgICAgICAgICAgdmFyIGQgPSBbXTtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogXFxcIlxcXCIsXFxuICAgICAgICAgICAgICAgIHVybDogaW5wdXQsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwieDVfd2Vidmlld19zaW5nbGVcXFwiLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBcXFwiZmxvYXQmJjEwMCVcXFwiLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgdWE6IE1PQklMRV9VQSxcXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGVjaygpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGMgPSBmYmEuZ2V0Q29va2llKGxvY2F0aW9uLmhyZWYpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGFiLWl0ZW0nKTtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGVzICYmIG5vZGVzLmxlbmd0aCA+IDAgJiYgYykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLnB1dFZhcihcXFwiZnJlZW9rXFxcIiwgYyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKGMpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEucGFyc2VMYXp5UnVsZSgkJCQoKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjaygpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChjaGVjaywgMjUwKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVjaygpO1xcbiAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pICAgICAgICAgIFxcbiAgICAgICAgICAgIHNldFJlc3VsdChkKTtcXG4gICAgICAgIH0sIGlucHV0KVxcbiAgICBcXG59IGVsc2V7XFxuICAgICAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoaHRtbC5tYXRjaCgvciBwbGF5ZXJfLio/PSguKj8pPC8pWzFdKVxcbiAgICAgICAgdmFyIHVybCA9IGh0bWwudXJsXFxuICAgICAgICBpZiAoaHRtbC5lbmNyeXB0ID09ICcxJykge1xcbiAgICAgICAgICAgIHVybCA9IHVuZXNjYXBlKHVybCk7XFxuICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZW5jcnlwdCA9PSAnMicpIHtcXG4gICAgICAgICAgICB1cmwgPSB1bmVzY2FwZShiYXNlNjREZWNvZGUodXJsKSk7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAodXJsLnN0YXJ0c1dpdGgoXFxcImh0dHBzOi8vcGFuLnF1YXJrLmNuL3NcXFwiKSkgeyAgICAgICAgICAgXFxuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2UvcXVhcmtMaXN0P3J1bGU9dWNra+S6kSZyZWFsdXJsPScgKyB1cmxcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICgvbTN1OHxtcDQvLnRlc3QodXJsKSkge1xcbiAgICAgICAgICAgIHJldHVybiB1cmxcXG4gICAgICAgIH1cXG4gfVxcbiAgIFxcbn0sIE1ZX0hPTUUpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLnvZHpobXpqozor4FcIixcInBhdGhcIjpcInl6XCIsXCJydWxlXCI6XCJsZXQgYyA9IGdldFZhcihcXFwiZnJlZW9rXFxcIiwgXFxcIlxcXCIpO1xcbmlmIChjICE9IFxcXCJcXFwiKSB7XFxuICAgIHNldEl0ZW0oXFxcImNvb2tpZVxcXCIsIGMpO1xcbiAgICBjbGVhclZhcihcXFwiZnJlZW9rXFxcIik7XFxufVxcbmxldCBjb29raWUgPSBnZXRJdGVtKFxcXCJjb29raWVcXFwiLCBcXFwiXFxcIik7XFxudmFyIGh0bWwgPSByZXF1ZXN0KE1ZX1VSTCx7aGVhZGVyczp7XFxuICAgICAgICAgICAgICAgJ0Nvb2tpZSc6IGNvb2tpZSxcXG4gICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoTGludXg7IEFuZHJvaWQgOTsgUERCTTAwIEJ1aWxkL1BQUjEuMTgwNjEwLjAxMTsgd3YpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIENocm9tZS84OS4wLjQzODkuNzIgTVFRQnJvd3Nlci82LjIgVEJTLzA0NjI0NyBNb2JpbGUgU2FmYXJpLzUzNy4zNicsICAgICAgICAgICAgXFxufX0pO1xcbmlmIChodG1sLmluY2x1ZGVzKFxcXCLns7vnu5/lronlhajpqozor4FcXFwiKSkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFxcXCLngrnlh7vov4fpqozor4FcXFwiLFxcbiAgICAgICAgdXJsOiBNWV9VUkwgKyAkKFxcXCJcXFwiKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICB2YXIgZCA9IFtdO1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBcXFwiXFxcIixcXG4gICAgICAgICAgICAgICAgdXJsOiBNWV9VUkwsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwieDVfd2Vidmlld19zaW5nbGVcXFwiLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBcXFwiZmxvYXQmJjI0MFxcXCIsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygoTVlfVVJMKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2soKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYyA9IGZ5X2JyaWRnZV9hcHAuZ2V0Q29va2llKGxvY2F0aW9uLmhyZWYpOyAgXFxuLy9meV9icmlkZ2VfYXBwLmxvZyhjKVxcbiBsZXQgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kdWxlLWNhcmQtaXRlbScpO1xcbiBpZiAoIG5vZGVzICYmIG5vZGVzLmxlbmd0aD4gMCYmYykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnlfYnJpZGdlX2FwcC5wdXRWYXIoXFxcImZyZWVva1xcXCIsIGMpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEucGFyc2VMYXp5UnVsZSgkJCQoKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjaygpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChjaGVjaywgMjUwKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2soKTtcXG4gICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLmraPlnKjov4flronlhajpqozor4HvvIzor7fnqI3lgJlcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBiYWNrKCk7ICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+S4i+aLieWIt+aWsCdcXG4gICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF9jZW50ZXJfMVxcXCIsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgc2V0UmVzdWx0KGQpO1xcbiAgICAgICAgfSlcXG4gICAgfSlcXG59IFwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6aqM6K+B56CBXCIsXCJwYXRoXCI6XCJ5em1cIixcInJ1bGVcIjpcIndoaWxlICgv6L6T5YWl6aqM6K+B56CBfOezu+e7n+WuieWFqOmqjOivgS8udGVzdChodG1sKSkge1xcbnJjKCdodHRwczovL2dpdGNvZGUubmV0L2xpdXphb3l1ZS9oYWkvLS9yYXcvbWFzdGVyL2p1eXVlLmpzJywgMjQpOyBcXG52YXIgY29va2llID0gZ2V0Q29va2llKE1ZX1VSTClcXG5sb2coY29va2llKVxcbiAgICBsZXQgaGVhZGVycyA9IHsgICAgICAgXFxuICAgICAgICAgICAgICAgJ0Nvb2tpZSc6IGNvb2tpZSxcXG4gICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6IE1PQklMRV9VQSwgIFxcbiAgICB9XFxuICAgIGxldCBzeiA9IG9jcignaHR0cHM6Ly93d3cuZnJlZW9rLnByby9pbmRleC5waHAvdmVyaWZ5L2luZGV4Lmh0bWw/Jyk7ICAgIFxcbiAgICAgZmV0Y2goJ2h0dHBzOi8vd3d3LmZyZWVvay5wcm8nICsgaHRtbC5tYXRjaCgvXFxcXC9pbmRleC5waHAuKj92ZXJpZnk9LylbMF0gKyBzeiwge1xcbiAgICAgICAgaGVhZGVyczogaGVhZGVycyxcXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnXFxuICAgIH0pICAgXFxuICAgIHZhciB5eiA9IE1ZX1VSTFxcbiAgIC8vIGxvZyhNWV9VUkwpXFxuICAgIGh0bWwgPSByZXF1ZXN0KHl6LCB7XFxuICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnNcXG4gICAgfSlcXG59XFxuXFxuLy9sb2coaHRtbClcXG5pZiAoL+mikee5geaTjeS9nC8udGVzdChodG1sKSkge1xcbiAgICBkLnB1c2goe1xcbiAgICB0aXRsZTogJ+e9keermeaQnOe0ouaXtumXtOmXtOmalCcsXFxuICAgIGRlc2M6IFxcXCLkuIvmi4nph43or5VcXFwiXFxufSlcXG5cXG59XCJ9XSIsImljb24iOiJodHRwczovL3d3dy5mcmVlb2sudmlwL214dGhlbWUvaW1hZ2VzL2Zhdmljb24ucG5nIiwicHJveHkiOiIifQ==
Add Comment
Please, Sign In to add comment