Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@Ntyou动漫@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiTnR5b3XliqjmvKsiLCJhdXRob3IiOiJ6ZXRhbHBoYSIsInVybCI6Imhpa2VyOi8vZW1wdHkjIGZ5cGFnZSMjaHR0cDovL3d3dy5udGRtOC5jb20vIiwidmVyc2lvbiI6MCwiY29sX3R5cGUiOiJtb3ZpZV8zIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ2aWRlbyIsImNsYXNzX3VybCI6IiIsImFyZWFfbmFtZSI6IiIsImFyZWFfdXJsIjoiIiwic29ydF9uYW1lIjoiIiwieWVhcl9uYW1lIjoiIiwic29ydF91cmwiOiIiLCJ5ZWFyX3VybCI6IiIsImZpbmRfcnVsZSI6ImpzOlxudmFyIGQgPSBbXVxuXG5NWV9VUkwgPSBNWV9VUkwuc3BsaXQoJyMjJylbMV1cblxuLy9sb2coTVlfVVJMKVxuXG5hZGRMaXN0ZW5lcignb25DbG9zZScsICgpID0+IHtcbiAgICAvL2xvZygn6aG16Z2i5YWz6ZetJylcbiAgICBwdXRNeVZhcignd2VlaycsIG5ldyBEYXRlKCkuZ2V0RGF5KCkpXG4gICAgcHV0TXlWYXIoJ2knLCAnMScpXG5cbn0pXG5cbmFkZExpc3RlbmVyKCdvblJlZnJlc2gnLCAoKSA9PiB7XG4gICAgLy9sb2coJ+mhtemdouWIt+aWsCcpXG59KVxuXG4vL+maj+acuuminOiJslxudmFyIGdldFJhbmdlQ29sb3JzID0gZnVuY3Rpb24oKSB7wqDCoMKgwqDCoMKgwqBcbiAgICByZXR1cm4gJyMnICsgKCcwMDAwMCcgKyAoTWF0aC5yYW5kb20oKSAqIDB4MTAwMDAwMCA8PCAwKS50b1N0cmluZygxNikpLnN1YnN0cigtNik7wqDCoMKgwqDCoFxufVxuLy/liqjmgIHliIbnsbvlrprkuYkg6ZyA5qC55o2u5a6e6ZmF5L+u5pS5XG5jb25zdCDliIbnsbvpopzoibIgPSBnZXRSYW5nZUNvbG9ycygpXG5jb25zdCDlpKfnsbvlrprkvY0gPSAnYm9keSYmI25hdidcbmNvbnN0IOaLvOaOpeWIhuexuyA9ICcuYmxvY2tjb250ZW50JiYuc2VhcmNoLXRhZydcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhOm5vdCg6bWF0Y2hlcyjmkq3lh7opKSdcbmNvbnN0IOWIhuexu+agh+mimCA9ICdhJiZUZXh0J1xuY29uc3Qg5YiG57G76ZO+5o6lID0gJ2EmJmhyZWYnXG5NWV9VUkwgPSBNWV9VUkwucmVwbGFjZSgnaGlrZXI6Ly9lbXB0eSMjJywgJycpXG5cbi8vY2xlYXJWYXIoTVlfUlVMRS51cmwpXG5sZXQgdHJ1ZV91cmwgPSBnZXRWYXIoTVlfUlVMRS51cmwsIE1ZX1VSTClcbmNvbnN0IHBhZ2UgPSBNWV9QQUdFXG4vL2xvZyhwYWdlKVxuXG5cbi8v5omp5bGV5Ye95pWwXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2V4dGVuZCcpKS5ydWxlKVxuXG52YXIgdXJscCA9IHVybFBhcnNlKHRydWVfdXJsKVxuLy9sb2codXJscClcblxuaWYgKC8odG9keXxuZXcpLy50ZXN0KHRydWVfdXJsKSkge1xuICAgIHRydWVfdXJsID0gdHJ1ZV91cmwucmVwbGFjZSgnLmh0bWwnLCAnL3BhZ2UvJyArIHBhZ2UgKyAnLmh0bWwnKVxufVxuXG5pZiAoLyh0b3ApLy50ZXN0KHRydWVfdXJsKSkge1xuICAgIHRydWVfdXJsID0gdHJ1ZV91cmwucmVwbGFjZSgnLmh0bWwnLCAnL3BhZ2UvJyArIDEgKyAnLmh0bWwnKVxufVxuXG5cblxuXG5pZiAoL1xcL1xcdysuaHRtbCQvZ20udGVzdCh0cnVlX3VybCkpIHtcbiAgICB0cnVlX3VybCA9IHRydWVfdXJsLnJlcGxhY2UoJy5odG1sJywgJy0tLS0tLS0tJyArIHBhZ2UgKyAnLS0tLmh0bWwnKS5yZXBsYWNlKCd0eXBlJywgJ3Nob3cnKVxufVxuXG50cnVlX3VybCA9IHRydWVfdXJsLnJlcGxhY2UoLyhcXGQrKT8tLS0oXFxkezR9KT8uaHRtbC9nbSwgKGEsIGIsIGMpID0+IHtcbiAgICB2YXIgeSA9IGMgIT0gdW5kZWZpbmVkID8gYyA6ICcnO1xuICAgIHJldHVybiBwYWdlICsgJy0tLScgKyB5ICsgJy8nXG59KVxuXG5cbi8vbG9nKHRydWVfdXJsKVxuXG5pZiAocGFnZSA9PSAxKSB7XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IFwi8J+UjVwiLFxuICAgICAgICB1cmw6ICQudG9TdHJpbmcoKHIpID0+IHtcbiAgICAgICAgICAgIHB1dE15VmFyKCdrZXl3b3JkJywgaW5wdXQpO1xuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL3NlYXJjaD9ydWxlPScgKyByICsgJyZzPScgKyBpbnB1dDtcbiAgICAgICAgfSwgTVlfUlVMRS50aXRsZSksXG4gICAgICAgIGRlc2M6ICfmkJzngrnku4DkuYgnLFxuICAgICAgICBjb2xfdHlwZTogXCJpbnB1dFwiLFxuICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcigna2V5d29yZCcsICcnKSB8fCBcIlwiLFxuICAgICAgICB9XG4gICAgfSk7XG59XG5cblxubGV0IGdldFRpbWVTdGF0ZSA9ICgpID0+IHtcbiAgICBsZXQgdGltZU5vdyA9IG5ldyBEYXRlKCk7XG4gICAgbGV0IGhvdXJzID0gdGltZU5vdy5nZXRIb3VycygpO1xuICAgIGxldCB0ZXh0ID0gYGA7XG4gICAgaWYgKGhvdXJzID49IDcgJiYgaG91cnMgPD0gMTgpIHtcbiAgICAgICAgdGV4dCA9IGDimIDvuI9gO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRleHQgPSAn8J+MmSc7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0O1xufTtcblxuXG5mdW5jdGlvbiBnZXRXZWVrRGF0YShodG1sLCB0ZXh0KSB7XG4gICAgdHJ5e1xuICAgIHZhciBkYXRhID0gW11cbiAgICB2YXIgcyA9IHBkZmEoaHRtbCwgdGV4dC5yZXBsYWNlKCcqKicsIDYpKVxuICAgIGRhdGEucHVzaChzKVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDU7IGkrKykge1xuICAgICAgICB2YXIgaCA9IHBkZmEoaHRtbCwgdGV4dC5yZXBsYWNlKCcqKicsIGkpKVxuICAgICAgICBkYXRhLnB1c2goaClcblxuICAgIH1cbiAgICAvL2xvZyhkYXRhLmxlbmd0aClcbiAgICByZXR1cm4gZGF0YVxuICAgIH1jYXRjaHt9XG59XG5cblxuXG5mdW5jdGlvbiB3ZWVrQXBwZW5kKGQsIG9iaikge1xuICAgIC8v5a6a5LmJ5bi46YeP5ZKM5pa55rOVXG4gICAgdmFyIOekvOaLnCA9IFtcIuaXpVwiLCBcIuS4gFwiLCBcIuS6jFwiLCBcIuS4iVwiLCBcIuWbm1wiLCBcIuS6lFwiLCBcIuWFrVwiXTtcblxuICAgIGxldCDmmJ/mnJ8gPSAoeCwgeSkgPT4ge1xuICAgICAgICBsZXQgZGF5ID0geC5nZXREYXkoKTtcbiAgICAgICAgcmV0dXJuIHlbZGF5XTtcbiAgICB9XG4gICAgdmFyIOaXpeacnyA9IG5ldyBEYXRlKCk7XG5cbiAgICAvL+S8oOmAkuWPmOmHj1xuICAgIHZhciBkYXRhID0gb2JqLmRhdGFcbiAgICB2YXIgdGl0bGUgPSBvYmoudGl0bGVcbiAgICB2YXIgZGF5bmlnaHQgPSBvYmouZG5cbiAgICB2YXIgaW1nID0gb2JqLmltZ1xuICAgIHZhciB1cmwgPSBvYmoudXJsXG4gICAgdmFyIHNob3cgPSBvYmouc2hvd1xuICAgIHZhciB3Y29sb3IgPSBvYmoud2NvbG9yXG4gICAgdmFyIHdzdHIgPSBvYmoud3N0clxuXG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcicsXG4gICAgICAgIGltZzogaW1nLFxuICAgICAgICB1cmw6IHVybFxuICAgIH0pXG5cbiAgICBpZiAoc2hvdyA9PSAn5bGV5byAJykge1xuICAgICAgICB2YXIgZGF5ID0gbmV3IERhdGUoKS5nZXREYXkoKVxuICAgICAgICB2YXIgd2VlayA9IGdldE15VmFyKCd3ZWVrJywgZGF5ICsgJycpXG4gICAgICAgIHdlID0g56S85oucW3dlZWtdXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg56S85oucLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgIHRpdGxlOiB3ZWVrID09IGkgPyAn4oCc4oCc4oCd4oCdJyArIGRheW5pZ2h0ICsgYDxmb250IGNvbG9yPVwiJHt3Y29sb3J9XCI+PGI+YCArIHdzdHIgKyB3ZSArICc8L2I+PC9mb250PicgOiDnpLzmi5xbaV0sXG4gICAgICAgICAgICAgICAgdXJsOiAkKFwiI25vTG9hZGluZyNcIikubGF6eVJ1bGUoKGl0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFwid2Vla1wiLCBOdW1iZXIoaXQpKTtcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICB9LCBpKSxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXCJzY3JvbGxfYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICd3ZWVrJyArIGksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICBjb2xfdHlwZTogXCJsaW5lXCIsXG4gICAgICAgICAgICBwaWM6IFwiXCIsXG4gICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgIGlkOiBcImdvb2RcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIFxuICAgICAgICBkYXRhW3dlZWtdLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgICAgIHZhciB0ID0gcGRmaCh4LCAnYSwwJiZUZXh0JylcbiAgICAgICAgICAgIHZhciBzID0gcGRmaCh4LCAnYSwxJiZUZXh0JylcbiAgICAgICAgICAgIHZhciB0aXRsZT1jdXRzdHIodCw0MClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy9saW5rcy5wdXNoKHBkKHgsICdhJiZocmVmJykgKyAnI2ltbWVyc2l2ZVRoZW1lIycpXG4gICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBg4oCc4oCc4oCd4oCdPHNtYWxsPls8Zm9udCBjb2xvcj1cIiM5OTlcIj4ke3N9PC9mb250Pl0ke3RpdGxlfTwvc21hbGw+YCxcbiAgICAgICAgICAgICAgICB1cmw6IHBkKHgsICdhJiZocmVmJykgKyAnI2ltbWVyc2l2ZVRoZW1lIycsXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOnRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cbn1cblxuZnVuY3Rpb24gYXBwZWREYXRhKGQsIGh0bWwsIHNlbGVjdHMsIGxpbmUsIGR5Yykge1xuICAgIHZhciBpID0gZ2V0TXlWYXIoJ2knLCBpKTtcbiAgICBpZiAobGluZSkge1xuICAgICAgICBpID0gTnVtYmVyKGkpXG4gICAgfVxuICAgIHZhciBpaSA9IDFcblxuICAgIHZhciBpdGVtID0gc2VsZWN0cy5pdGVtXG4gICAgdmFyIGxpc3QgPSBzZWxlY3RzLmxpc3RcbiAgICB2YXIgaW1neCA9IHNlbGVjdHMuaW1nXG4gICAgdmFyIHRpdGxlID0gc2VsZWN0cy50aXRsZVxuICAgIHZhciBkZXNjID0gc2VsZWN0cy5kZXNjXG4gICAgdmFyIHVybCA9IHNlbGVjdHMudXJsXG4gICAgdmFyIGNvbF90eXBlID0gc2VsZWN0cy5jb2xfdHlwZVxuXG4gICAgdmFyIGxpc3QgPSBldmFsKGxpc3QpXG4gICAgaWYgKGxpc3QubGVuZ3RoID09IDAgJiYgbGluZSA9PSB0cnVlKSB7XG4gICAgICAgIHRocm93ICdFcnJvcjrmsqHmnInkuoYnXG4gICAgICAgIHJldHVyblxuICAgIH1cblxuXG5cbiAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHZhciBpbWcgPSBldmFsKGltZ3gpXG4gICAgICAgIC8vbG9nKGl0ZW0pXG4gICAgICAgIHZhciBhcnIgPSB7XG4gICAgICAgICAgICB0aXRsZTogZXZhbCh0aXRsZSksXG4gICAgICAgICAgICBkZXNjOiBldmFsKGRlc2MpLFxuICAgICAgICAgICAgLy9pbWc6IChpbWcuZW5kc1dpdGgoJzAnKSA/IGltZyArICcvJyA6IGltZykgKyAnQFJlZmVyZXI9JyxcbiAgICAgICAgICAgIGltZzogaW1nICsgJ0BSZWZlcmVyPScsXG4gICAgICAgICAgICB1cmw6IGV2YWwodXJsKSArICcjaW1tZXJzaXZlVGhlbWUjJyxcbiAgICAgICAgICAgIGNvbF90eXBlOiBjb2xfdHlwZSxcbiAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGV2YWwodGl0bGUpLFxuICAgICAgICAgICAgICAgIGltZzogaW1nLFxuICAgICAgICAgICAgICAgIHN0YXRlOiBldmFsKGRlc2MpLFxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGR5Yykge1xuICAgICAgICAgICAgaWYgKGlpID09IDEpIHtcbiAgICAgICAgICAgICAgICBhcnIuZXh0cmEuaWQgPSAndmlkZW8xJ1xuICAgICAgICAgICAgICAgIGQucHVzaChhcnIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhcnIuZXh0cmEuaWQgPSAndmlkZW8yJ1xuICAgICAgICAgICAgYWRkSXRlbUFmdGVyKCd2aWRlbzEnLCBhcnIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZC5wdXNoKGFycilcbiAgICAgICAgfVxuICAgIH0pXG4gICAgaWYgKGxpbmUpIHtcbiAgICAgICAgaSsrXG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICBjb2xfdHlwZTogXCJsaW5lXCIsXG4gICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgIGlkOiAnYWxpbmUnICsgaS50b1N0cmluZygpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHB1dE15VmFyKCdpJywgaSlcbiAgICB9XG59XG5cbi8vbGlzdCDliJfooaggaXRlbeavj+mhuVxudmFyIGl0aXRsZSA9IFwicGRmaChpdGVtLCAnLmNlbGxfaW1mb3JtX25hbWUmJlRleHQnKVwiXG52YXIgaWxpc3QgPSBcInBkZmEoaHRtbCwgJ2JvZHkmJi5jZWxsJylcIlxubGV0IGNvbmRpdGlvbiA9IFsndG9keScsICduZXcnXVxuaWYgKGNvbmRpdGlvbi5maW5kKGl0ZW0gPT4gdHJ1ZV91cmwuaW5jbHVkZXMoaXRlbSkpKSB7XG4gICAgaXRpdGxlID0gXCJwZGZoKGl0ZW0sICdhLDEmJlRleHQnKVwiXG4gICAgaWxpc3QgPSBcInBkZmEoaHRtbCwgJ2JvZHkmJi5hbmltZV9pY29uMicpXCJcbn1cblxudmFyIHNlbGVjdHMgPSB7XG4gICAgaXRlbTogJ2l0ZW0nLFxuICAgIGxpc3Q6IGlsaXN0LFxuICAgIGltZzogXCJwZChpdGVtLCAnaW1nJiZkYXRhLW9yaWdpbmFsfHxpbWcmJnNyYycpXCIsXG4gICAgdGl0bGU6IGl0aXRsZSxcbiAgICBkZXNjOiBcInBkZmgoaXRlbSwgJ3NwYW4mJlRleHQnKVwiLFxuICAgIHVybDogXCJwZChpdGVtLCAnYSYmaHJlZicpXCIsXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8zX21hcnF1ZWUnXG59XG5cbmZ1bmN0aW9uIGp1bXBNb3JlKGQsIGh0bWwsIG9iaikge1xuXG4gICAgdmFyIG5hbWUgPSBvYmoubmFtZVxuICAgIHZhciB0aXRsZSA9IG9iai50aXRsZVxuICAgIHZhciBpbWcgPSBvYmouaW1nXG4gICAgdmFyIHVybCA9IG9iai51cmxcbiAgICB2YXIgc2VsZXMgPSBvYmouc2VsZXNcbiAgICBzZWxlcy5saXN0ID0gb2JqLm5saXN0XG4gICAgc2VsZXMudGl0bGUgPSBvYmoubnRpdGxlXG5cbiAgICBpZiAobmFtZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGV0IGRtID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgYiA9IChuZXcgUmVnRXhwKGBeJHtuYW1lfSRgKS50ZXN0KGRbaV0udGl0bGUpKVxuICAgICAgICAgICAgaWYgKGIpIHtcbiAgICAgICAgICAgICAgICBkbSA9IGk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdXJsID0gZFtkbV0udXJsXG4gICAgfVxuXG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcicsXG4gICAgICAgIGltZzogaW1nLFxuICAgICAgICB1cmw6IHVybFxuICAgIH0pXG4gICAgYXBwZWREYXRhKGQsIGh0bWwsIHNlbGVzKVxufVxuXG5mdW5jdGlvbiByYW5rQWRkKGQsIGh0bWwsIG9iaikge1xuICAgIHZhciBuYW1lID0gb2JqLm5hbWVcbiAgICB2YXIgdGl0bGUgPSBvYmoudGl0bGVcbiAgICB2YXIgaW1nID0gb2JqLmltZ1xuICAgIHZhciB1cmwgPSBvYmoudXJsXG4gICAgdmFyIHNlbGVzID0gb2JqLnNlbGVzXG4gICAgc2VsZXMubGlzdCA9IG9iai5ubGlzdFxuICAgIHNlbGVzLnRpdGxlID0gb2JqLm50aXRsZVxuXG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcicsXG4gICAgICAgIGltZzogaW1nLFxuICAgICAgICB1cmw6IHVybFxuICAgIH0pXG5cbiAgICB2YXIgbGlzdCA9IGV2YWwoc2VsZXMubGlzdClcblxuICAgIGxpc3QubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICAgIGkgPSBpICsgMVxuICAgICAgICB2YXIgdGl0bGUgPSBpICsgJy4nICsgZXZhbChzZWxlcy50aXRsZSlcbiAgICAgICAgdmFyIGhpdD1gYFxuICAgICAgICBcbiAgICAgICAgc3dpdGNoIChpKSB7XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgdGl0bGUgPSBg4oCc4oCc4oCd4oCdPHNtYWxsPjxmb250IGNvbG9yPVwiI0ZGMDAwMFwiPiR7dGl0bGV9PC9mb250PiR7aGl0fTwvc21hbGw+YFxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIHRpdGxlID0gYOKAnOKAnOKAneKAnTxzbWFsbD48Zm9udCBjb2xvcj1cIiNGRjU3MzNcIj4ke3RpdGxlfTwvZm9udD4ke2hpdH08L3NtYWxsPmBcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICB0aXRsZSA9IGDigJzigJzigJ3igJ08c21hbGw+PGZvbnQgY29sb3I9XCIjRkE4MDcyXCI+JHt0aXRsZX08L2ZvbnQ+JHtoaXR9PC9zbWFsbD5gXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRpdGxlID0gYOKAnOKAnOKAneKAnTxzbWFsbD48Zm9udCBjb2xvcj1cIlwiPiR7dGl0bGV9PC9mb250PiR7aGl0fTwvc21hbGw+YFxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBgJHt0aXRsZX1gLFxuICAgICAgICAgICAgY29sX3R5cGU6IHNlbGVzLmNvbF90eXBlLFxuICAgICAgICAgICAgdXJsOiBldmFsKHNlbGVzLnVybCkgKyAnI2ltbWVyc2l2ZVRoZW1lIydcbiAgICAgICAgfSlcbiAgICB9KVxuXG5cbn1cblxuXG5cblxuaWYgKHRydWVfdXJsID09IGNvbmZpZy7pppbpobUpIHtcblxuICAgIGlmIChwYWdlID09IDEpIHtcbiAgICAgICAgdmFyIGh0bWwgPSByZXF1ZXN0KHRydWVfdXJsKVxuXG4gICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZHRmbCcpKS5ydWxlKVxuXG4gICAgICAgIHZhciBkYXRhID0gZ2V0V2Vla0RhdGEoaHRtbCwgJ2JvZHkmJiNuZXdfYW5pbWVfcGFnZSwqKiYmbGknKVxuXG4gICAgICAgIHZhciBzaG93ID0gc3RvcmFnZTAuZ2V0SXRlbSgnc2hvdycsICflsZXlvIAnKVxuXG4gICAgICAgIHZhciBvYmogPSB7XG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgdGl0bGU6IGDnlarliafooagke3N0clJlcGVhdCgnXFx0JywzNSl9WyR7c2hvd31dYCxcbiAgICAgICAgICAgIGRuOiBnZXRUaW1lU3RhdGUoKSxcbiAgICAgICAgICAgIGltZzogJ2h0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9tb3JlLzI3Ny5wbmcnLFxuICAgICAgICAgICAgdXJsOiAkKFwiI25vTG9hZGluZyNcIikubGF6eVJ1bGUoKHMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocyA9PSAn5pS26LW3Jykge1xuICAgICAgICAgICAgICAgICAgICBzdG9yYWdlMC5zZXRJdGVtKCdzaG93JywgJ+WxleW8gCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnNldEl0ZW0oJ3Nob3cnLCAn5pS26LW3Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICB9LCBzaG93KSxcbiAgICAgICAgICAgIHNob3c6IHNob3csXG4gICAgICAgICAgICB3Y29sb3I6IGdldFJhbmdlQ29sb3JzKCksXG4gICAgICAgICAgICB3c3RyOiAn5pif5pyfJyxcbiAgICAgICAgfVxuXG4gICAgICAgIHdlZWtBcHBlbmQoZCwgb2JqKVxuXG5cbiAgICAgICAgdmFyIEhvdCA9IHtcbiAgICAgICAgICAgIG5hbWU6ICfnm67lvZUnLFxuICAgICAgICAgICAgc2VsZXM6IHNlbGVjdHMsXG4gICAgICAgICAgICBubGlzdDogXCJwZGZhKGh0bWwsJ2JvZHkmJi5ibG9ja3RpdGxlOmhhcyg6bWF0Y2hlcyjng63pl6gpKX4uYmxvY2tjb250ZW50JiZsaScpXCIsXG4gICAgICAgICAgICBudGl0bGU6IFwicGRmaChpdGVtLCdhLDEmJlRleHQnKVwiLFxuICAgICAgICAgICAgdGl0bGU6IGDng63pl6jmjqjojZAke3N0clJlcGVhdCgnXFx0JywzMil9W+abtOWkml1gLFxuICAgICAgICAgICAgaW1nOiAnaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL21vcmUvMjI4LnBuZycsXG4gICAgICAgIH1cbiAgICAgICAganVtcE1vcmUoZCwgaHRtbCwgSG90KVxuXG4gICAgICAgIHZhciBOZXcgPSB7XG4gICAgICAgICAgICBuYW1lOiAn5pyA6L+R5pu05pawJyxcbiAgICAgICAgICAgIHNlbGVzOiBzZWxlY3RzLFxuICAgICAgICAgICAgbmxpc3Q6IFwicGRmYShodG1sLCdib2R5JiYuYmxvY2t0aXRsZTpoYXMoOm1hdGNoZXMo5pu05pawKSl+LmJsb2NrY29udGVudCYmbGknKVwiLFxuICAgICAgICAgICAgbnRpdGxlOiBcInBkZmgoaXRlbSwnYSwxJiZUZXh0JylcIixcbiAgICAgICAgICAgIHRpdGxlOiBg5pyA6L+R5pu05pawJHtzdHJSZXBlYXQoJ1xcdCcsMzIpfVvmm7TlpJpdYCxcbiAgICAgICAgICAgIGltZzogJ2h0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9tb3JlLzIyOC5wbmcnLFxuICAgICAgICB9XG4gICAgICAgIGp1bXBNb3JlKGQsIGh0bWwsIE5ldylcblxuICAgIH1cblxufSBlbHNlIHtcbiAgICB2YXIgaHRtbCA9IHJlcXVlc3QodHJ1ZV91cmwpXG5cbiAgICAvL+WKqOaAgeWIhuexu1xuICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZHRmbCcpKS5ydWxlKVxuXG5cbiAgICBpZiAodHJ1ZV91cmwuaW5jbHVkZXMoJ3RvcCcpKSB7XG4gICAgICAgIC8vbG9nKCfmjpLooYwnKVxuXG4gICAgICAgIHZhciBzbGUgPSB7XG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXG4gICAgICAgICAgICB1cmw6IFwicGQoaXRlbSwnYSYmaHJlZicpXCIsXG4gICAgICAgICAgICBkZXNjOiBcInBkZmgoaXRlbSwnLnJhbmtfdmFsdWUmJlRleHQnKVwiXG4gICAgICAgIH1cblxuICAgICAgICB2YXIgSG90MSA9IHtcbiAgICAgICAgICAgIHNlbGVzOiBzbGUsXG4gICAgICAgICAgICBubGlzdDogXCJwZGZhKGh0bWwsJ2JvZHkmJi5kaXZfcmlnaHRfcjpoYXMoOm1hdGNoZXMo5pys5ZGoKSkmJmxpJylcIixcbiAgICAgICAgICAgIG50aXRsZTogXCJwZGZoKGl0ZW0sJ2EmJlRleHQnKVwiLFxuICAgICAgICAgICAgdGl0bGU6IGDmnKzlkajliqjnlLvmjpLooYzmppxgLFxuICAgICAgICAgICAgaW1nOiAnaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL21vcmUvMjI4LnBuZycsXG4gICAgICAgIH1cbiAgICAgICAgcmFua0FkZChkLCBodG1sLCBIb3QxKVxuICAgICAgICBcbiAgICAgICAgdmFyIEhvdDIgPSB7XG4gICAgICAgICAgICBzZWxlczogc2xlLFxuICAgICAgICAgICAgbmxpc3Q6IFwicGRmYShodG1sLCdib2R5JiYuZGl2X3JpZ2h0X3I6aGFzKDptYXRjaGVzKOacrOaciCkpJiZsaScpXCIsXG4gICAgICAgICAgICBudGl0bGU6IFwicGRmaChpdGVtLCdhJiZUZXh0JylcIixcbiAgICAgICAgICAgIHRpdGxlOiBg5pys5pyI5Yqo55S75o6S6KGM5qacYCxcbiAgICAgICAgICAgIGltZzogJ2h0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9tb3JlLzIyOC5wbmcnLFxuICAgICAgICB9XG4gICAgICAgIHJhbmtBZGQoZCwgaHRtbCwgSG90MilcbiAgICAgICAgXG4gICAgICAgIHZhciBIb3QzID0ge1xuICAgICAgICAgICAgc2VsZXM6IHNsZSxcbiAgICAgICAgICAgIG5saXN0OiBcInBkZmEoaHRtbCwnYm9keSYmLmRpdl9yaWdodF9yOmhhcyg6bWF0Y2hlcyjmgLvmjpLooYwpKSYmbGknKVwiLFxuICAgICAgICAgICAgbnRpdGxlOiBcInBkZmgoaXRlbSwnYSYmVGV4dCcpXCIsXG4gICAgICAgICAgICB0aXRsZTogYOWKqOeUu+aAu+aOkuihjOamnGAsXG4gICAgICAgICAgICBpbWc6ICdodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8vbW9yZS8yMjgucG5nJyxcbiAgICAgICAgfVxuICAgICAgICByYW5rQWRkKGQsIGh0bWwsIEhvdDMpXG5cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgICBhcHBlZERhdGEoZCwgaHRtbCwgc2VsZWN0cywgdHJ1ZSwgdHJ1ZSlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHZhciBpID0gZ2V0TXlWYXIoJ2knLCAnMScpXG4gICAgICAgIHZhciBpZCA9IGBhbGluZSR7aX1gXG4gICAgICAgIGlmIChmaW5kSXRlbSgnbGFzdGlkJykgPT0gbnVsbCkge1xuICAgICAgICAgICAgYWRkSXRlbUFmdGVyKGlkLCB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi4oCc4oCc4oCd4oCdPGZvbnQgY29sb3I9J2dyYXknPuWIsOW6leS6hjxmb250PlwiLFxuICAgICAgICAgICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICdsYXN0aWQnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuc2V0UmVzdWx0KGQpOyIsInNlYXJjaF91cmwiOiJodHRwOi8vd3d3Lm50ZG04LmNvbS9zZWFyY2gvLS0tLS0tLS0tLS0tLS5odG1sP3dkPSoqJnBhZ2U9ZnlwYWdlIiwiZ3JvdXAiOiLikaHop4bpopEiLCJzZWFyY2hGaW5kIjoianM6XG52YXIgZCA9IFtdXG4vL+aJqeWxleWHveaVsFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9leHRlbmQnKSkucnVsZSlcbnZhciBodG1sID0gZ2V0UmVzQ29kZSgpXG52YXIgbGlzdD1wZGZhKGh0bWwsJ2JvZHkmJi5jZWxsJylcblxubGlzdC5tYXAoaXRlbT0+e1xuICAgICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOnBkZmgoaXRlbSwgJ2EsMSYmVGV4dCcpLFxuICAgICAgICBpbWc6cGQoaXRlbSwgJ2ltZyYmZGF0YS1vcmlnaW5hbHx8aW1nJiZzcmMnKStgQFJlZmVyZXI9YCxcbiAgICAgICAgdXJsOnBkKGl0ZW0sICdhJiZocmVmJykrICcjaW1tZXJzaXZlVGhlbWUjJyxcbiAgICAgICAgZGVzYzpwZGZoKGl0ZW0sICdzcGFuJiZUZXh0JyksXG4gICAgICAgIGNvbnRlbnQ6cGRmaChpdGVtLCcuY2VsbF9pbWZvcm1fZGVzYyYmVGV4dCcpXG4gICAgfSlcbn0pXG5cblxuc2V0UmVzdWx0KGQpIiwiZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsImRldGFpbF9maW5kX3J1bGUiOiJqczpcbnJlcXVpcmUoY29uZmlnLnVpKVxudmFyIGQgPSBbXVxuXG5NWV9VUkwgPSBNWV9VUkwucmVwbGFjZSgnI2ltbWVyc2l2ZVRoZW1lIycsICcnKVxudmFyIGh0bWwgPSBnZXRSZXNDb2RlKClcblxuXG4vL3ZhciB0aXRsZSA9IHhwYXRoKGh0bWwsIFwiLy9kdFtAY2xhc3M9J25hbWUnXS90ZXh0KClbMV1cIilcblxuLy/mianlsZXlh73mlbBcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZXh0ZW5kJykpLnJ1bGUpXG5cbnZhciB0aXRsZSA9IHBkZmgoaHRtbCwgJyAuZGV0YWlsX2ltZm9ybV9uYW1lJiZUZXh0Jylcblxuc2V0UGFnZVRpdGxlKHRpdGxlKVxuXG5cbnZhciBwbGF5bGlzdCA9IFtdXG52YXIgdGFicyA9IFtdXG52YXIgbGlzdHMgPSBbXVxuXG52YXIgYXJyPXBkZmEoaHRtbCwnLm1lbnUwJiZsaScpXG5cbmZvciAobGV0IGl0IG9mIGFycikge1xuICAgdGFicy5wdXNoKHBkZmgoaXQsJ2xpJiZUZXh0JykpXG59XG5cbnZhciBwbGF6eSA9ICQoJycpLmxhenlSdWxlKCgpID0+IHtcbiAgICAgICAgcmV0dXJuICd2aWRlbzovLycraW5wdXRcbn0pXG5cbnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9qeCcpO1xuXG52YXIgbGF6eT1sYXp5P2xhenk6cGxhenlcblxuXG5cbnRhYnMubWFwKCh4LGkpPT57XG4gICAgdmFyIGxpc3Q9cGRmYShodG1sLGBib2R5JiYubW92dXJsLm1vZCwke2l9JiZhYClcbiAgICBsaXN0PWxpc3QubWFwKHg9PntcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRpdGxlOnBkZmgoeCwnYSYmdGl0bGUnKSxcbiAgICAgICAgICAgIHVybDpwZCh4LCdhJiZocmVmJykrbGF6eVxuICAgICAgICB9XG4gICAgfSlcbiAgICBsaXN0cy5wdXNoKGxpc3QpXG59KVxuXG5cblxuXG5cbnZhciBmZiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoTVlfUEFSQU1TKSk7XG5cbnZhciBkZXM9WyfnirbmgIEnLCflr7zmvJQnLCfkuLvmvJQnLCfnroDku4snLCfnsbvlnosnXVxudmFyIGRpbmZvPXt9XG5cbmRlcy5tYXAoeD0+e1xuICAgIHZhciBvYmo9e31cbiAgICB2YXIgcz0nJ1xuICAgIHRyeXtcbiAgICAgICAgdmFyIHN0cj1gZXZhbChjb25maWcuJHt4fSlgXG4gICAgICAgIHM9ZXZhbChzdHIpXG4gICAgfWNhdGNoKGUpe1xuICAgICAgICAvL2xvZyhlLm1lc3NhZ2UpXG4gICAgfVxuICAgIGRpbmZvW3hdPXNcbn0pXG5cbmlmKGRpbmZvLuS4u+a8lD09Jycpe1xuICAgIGRpbmZvLuS4u+a8lD0n57G75Z6LOicrZGluZm8u57G75Z6LXG59XG5cblxubGV0IGhkID0ge1xuICAgIOWvvOa8lDogZmYuZGlyZSAhPSB1bmRlZmluZWQgPyBmZi5kaXJlIDogZGluZm8u5a+85ryULFxuICAgIOS4u+a8lDogZmYuc3RhciAhPSB1bmRlZmluZWQgPyBmZi5zdGFyIDogZGluZm8u5Li75ryULFxuICAgIC8v5pi+56S655qE55m96Imy5aSn5a2XXG4gICAg5aSn5a2XOiAn54q25oCBOicrKGZmLnN0YXRlICE9IHVuZGVmaW5lZCA/IGZmLnN0YXRlIDogZGluZm8u54q25oCBKSxcbiAgICAvL+eJh+WQjeaQnOe0oueUqFxuICAgIOeJh+WQjTogZmYudGl0bGUgIT0gdW5kZWZpbmVkID8gZmYudGl0bGUgOiB0aXRsZSxcbiAgICAvL+WbvueJh+S4gOWumuS4jeimgeWKoFJlZmVyZXJcbiAgICDlm77niYc6IGZmLmltZyAhPSB1bmRlZmluZWQgPyBmZi5pbWcgOiBldmFsKGNvbmZpZy7kuoznuqflm77niYcpLFxuICAgIC8v5Zu+54mHOiBldmFsKGNvbmZpZy7kuoznuqflm77niYcpLFxuICAgIC8v5o+P6L+w6YeM55SoPGJyPuaNouihjFxuICAgIOaPj+i/sDogKGZmLmNvbnRlbnQgIT0gdW5kZWZpbmVkID8gZmYuZGVzYyA6IGRpbmZvLueugOS7iyksXG59XG5pZiAoaGQu5Zu+54mHICE9ICcnKSB7XG4gICAgdHJ5IHtcbiBoZC7lm77niYcgPSBjb252ZXJ0QmFzZTY0SW1hZ2UoaGQu5Zu+54mHKVxuICAgIH1jYXRjaCB7fVxufVxueDVoZWFkZXIoZCwgaGQpXG5cbmxldCBwdXNoeCA9IGdldE15VmFyKCdwdXNoeCcsICcnKVxuaWYgKHB1c2h4ICE9ICcnKSB7XG4gICAg5LqM57qn5o6o6YCB57uE5Lu2KGQpO1xufVxuXG52YXIgc2VhcmNoZXhwID0gZ2V0TXlWYXIoJ2V4cCcsICcnKVxuLy9sb2coc2VhcmNoZXhwKVxuLy/ni6znq4vlv6vmjbfniYjmkJzntKJcbmlmIChzZWFyY2hleHAgPT0gJ2V4cCcgfHwgdGFicy5sZW5ndGggPT0gMSkge1xuICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3FzZWFyY2hkJywge30pKS5ydWxlKTtcbn1cblxuc2V0VGFicyh0YWJzLCBNWV9VUkwpO1xuc2V0TGlzdHMobGlzdHMsIGdldE15VmFyKE1ZX1VSTCwgJzAnKSk7XG5cblxuLy/mianlsZXlh73mlbBcbi8vZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9leHRlbmQnKSkucnVsZSlcblxuLy92YXIgbWF0Y2hlcz0vbGlhbnphaWpzXz8oXFx3ezAsfSlfZWQvZ20ubWF0Y2hBbGwoc28pXG5cbi8vbG9nKG1hdGNoZXMubWFwKHg9PnhbMV0pKVxuXG5cblxuXG5zZXRIb21lUmVzdWx0KGQpIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IioiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiJ2YXIgdWk9Z2V0UGF0aCgnaGlrZXI6Ly9maWxlcy9ydWxlcy96ZXRhbHBoYS9oa1VpLmpzJylcbnZhciBoa3VpPSdodHRwczovL2dpdGVlLmNvbS96ZXRhbHBoYS9oaWtlcnZpZXcvcmF3L21hc3Rlci9zdXBwb3J0L2pzL2hrVWkuanMnXG5cbmlmICghZmlsZUV4aXN0KHVpKSkge1xuICAgIHdyaXRlRmlsZShjb25maWcudWksIHJlcXVlc3QoY29uZmlnLmhrdWkpKVxuICAgIHRvYXN0KCflr7zlhaXlrozmiJAnKVxufVxuXG5pbml0Q29uZmlnKHtcbiAgICDnirbmgIE6XCJwZGZoKGh0bWwsJy5kZXRhaWxfaW1mb3JtX2t2LDAmJnNwYW4sMSYmVGV4dCcpXCIsXG4gICAg5Li75ryUOlwicGRmaChodG1sLCAnLmluZm8mJmRkOm1hdGNoZXMo5ryU5ZGYKSYmVGV4dCcpLnNwbGl0KCcgJykuc2xpY2UoMCwgOCkuam9pbignICcpXCIsXG4gICAg57G75Z6LOiBcInBkZmEoaHRtbCwgJy5kZXRhaWxfaW1mb3JtX2t2Om1hdGNoZXMo57G75Z6LKSYmYScpLm1hcCh4PT5wZGZoKHgsJ1RleHQnKSkuam9pbignICcpXCIsXG4gICAg5a+85ryUOiBcInBkZmgoaHRtbCwgJy5pbmZvJiZkZDptYXRjaGVzKOWcsOWMuikmJlRleHQnKVwiLFxuICAgIOeugOS7izogXCJwZGZoKGh0bWwsICcuZGV0YWlsX2ltZm9ybV9kZXNjX3ByZSYmVGV4dCcpXCIsXG4gICAg5LqM57qn5Zu+54mHOiBcInBkZmgoaHRtbCwnYm9keSYmaW1nJiZzcmMnKVwiLFxuICAgIOmmlumhtTogJ2h0dHA6Ly93d3cubnRkbTguY29tLycsXG4gICAgdWk6IHVpLFxuICAgIGhrdWk6IGhrdWksXG59KTtcblxuXG5ldmFsKHJlcXVlc3QoJ2h0dHBzOi8vZ2l0ZWUuY29tL3pldGFscGhhL2hpa2Vydmlldy9yYXcvbWFzdGVyL3N1cHBvcnQvanMvVmVyLmpzJykpXG5cblxuY2hlY2tJbkZpbGVzKFsnaGtVaS5qcycsICdkZXNjU3R5bGUuaHRtbCddKVxuXG5ydW5PbmNlUGVyRGF5KFwiVXBkYXRhKFsnaGtVaS5qcycsICdkZXNjU3R5bGUuaHRtbCddKVwiKSIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmianlsZXlh73mlbBcIixcInBhdGhcIjpcImV4dGVuZFwiLFwicnVsZVwiOlwiLy91cmzop6PmnpBcXG5mdW5jdGlvbiB1cmxQYXJzZSh1KSB7XFxuICAgIHZhciBkaWN0ID0ge31cXG4gICAgZGljdC5Tb3VyY2UgPSB1O1xcbiAgICBsZXQgcGFyYW1zID0gKHVybCkgPT4ge1xcbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1zID0ge307XFxuICAgICAgICBsZXQgcmVnID0gLyhbXj89Jl0rKT0oW14/PSZdKykvZztcXG4gICAgICAgIHVybC5yZXBsYWNlKHJlZywgZnVuY3Rpb24oKSB7XFxuICAgICAgICAgICAgcXVlcnlQYXJhbXNbYXJndW1lbnRzWzFdXSA9IGFyZ3VtZW50c1syXTtcXG4gICAgICAgIH0pXFxuICAgICAgICByZXR1cm4gcXVlcnlQYXJhbXNcXG4gICAgfVxcbiAgICB2YXIgamF2YVVybCA9IEphdmFJbXBvcnRlcihqYXZhLm5ldC5VUkwpO1xcbiAgICB3aXRoKGphdmFVcmwpIHtcXG4gICAgICAgIHZhciB1cmwgPSBuZXcgVVJMKHUpO1xcbiAgICAgICAgZGljdC5Qcm90b2NvbCA9IHVybC5nZXRQcm90b2NvbCgpO1xcbiAgICAgICAgZGljdC5Ib3N0ID0gdXJsLmdldEhvc3QoKTtcXG4gICAgICAgIGRpY3QuUG9ydCA9IHVybC5nZXRQb3J0KCk7XFxuICAgICAgICBkaWN0LkZpbGUgPSB1cmwuZ2V0RmlsZSgpO1xcbiAgICAgICAgZGljdC5QYXRoID0gdXJsLmdldFBhdGgoKTtcXG4gICAgICAgIGRpY3QuUmVmID0gdXJsLmdldFJlZigpO1xcbiAgICB9XFxuICAgIGRpY3QuUGFyYW1zID0gcGFyYW1zKHUpO1xcbiAgICByZXR1cm4gZGljdDtcXG59XFxuXFxuLy/mianlsZVzcGxpdCxl5piv5ZCm5Y676Zmk56m65YC8XFxuU3RyaW5nLnByb3RvdHlwZS5TcGxpdCA9IGZ1bmN0aW9uKHMsIGUpIHtcXG4gICAgaWYgKGUpIHtcXG4gICAgICAgIHJldHVybiB0aGlzLnNwbGl0KHMpLmZpbHRlcihpdGVtID0+IGl0ZW0gIT0gJycpO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgcmV0dXJuIHRoaXMuc3BsaXQocyk7XFxuICAgIH1cXG59XFxuXFxuLy9qc29u5a+56LGh6L2s5p+l6K+i5a2X56ym5LiyXFxuT2JqZWN0LlRvUGFyYW1zID0gZnVuY3Rpb24oKSB7XFxuICAgIHZhciBqc29uID0gYXJndW1lbnRzWzBdO1xcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoanNvbikubWFwKGtleSA9PiBrZXkgKyAnPScgKyBqc29uW2tleV0pLmpvaW4oJyYnKTtcXG59XFxuXFxuLy/mraPliJnmj5Dlj5ZcXG5SZWdFeHAucHJvdG90eXBlLm1hdGNoQWxsID0gZnVuY3Rpb24oc3RyaW5nKSB7XFxuICAgIHZhciBtYXRjaCA9IG51bGw7XFxuICAgIHZhciBtYXRjaGVzID0gbmV3IEFycmF5KCk7XFxuICAgIHdoaWxlIChtYXRjaCA9IHRoaXMuZXhlYyhzdHJpbmcpKSB7XFxuICAgICAgICB2YXIgbWF0Y2hBcnJheSA9IFtdO1xcbiAgICAgICAgZm9yIChpIGluIG1hdGNoKSB7XFxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGkpID09IGkpIHtcXG4gICAgICAgICAgICAgICAgbWF0Y2hBcnJheS5wdXNoKG1hdGNoW2ldKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICBtYXRjaGVzLnB1c2gobWF0Y2hBcnJheSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIG1hdGNoZXM7XFxufVxcblxcbmZ1bmN0aW9uIGdldE1heExlbmd0aChhcnIpIHtcXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gYXJyLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiBNYXRoLm1heChhY2MsIGl0ZW0ubGVuZ3RoKSwgMCk7XFxuICAgIHJldHVybiBtYXhMZW5ndGhcXG59XFxuXFxuLy/lt6bloavlhYXlrZfnrKbkuLJcXG5TdHJpbmcucHJvdG90eXBlLlBhZExlZnQgPSBmdW5jdGlvbihsZW4sIGNoYXJTdHIpIHtcXG4gICAgdmFyIHMgPSB0aGlzICsgJyc7XFxuICAgIHJldHVybiBuZXcgQXJyYXkobGVuIC0gcy5sZW5ndGggKyAxKS5qb2luKGNoYXJTdHIsICcnKSArIHM7XFxufVxcblxcbi8v5Y+z5aGr5YWF5a2X56ym5LiyXFxuU3RyaW5nLnByb3RvdHlwZS5QYWRSaWdodCA9IGZ1bmN0aW9uKGxlbiwgY2hhclN0cikge1xcbiAgICB2YXIgcyA9IHRoaXMgKyAnJztcXG4gICAgcmV0dXJuIHMgKyBuZXcgQXJyYXkobGVuIC0gcy5sZW5ndGggKyAxKS5qb2luKGNoYXJTdHIsICcnKTtcXG59XFxuXFxuLy/ph43lpI3lrZfnrKbkuLJcXG5sZXQgc3RyUmVwZWF0ID0gKHMsIGkpID0+IHtcXG4gICAgcmV0dXJuIHMucmVwZWF0KGkpO1xcbn07XFxuXFxuXFxuZnVuY3Rpb24gY3V0c3RyKHN0ciwgbGVuKSB7XFxuICAgIHZhciBzdHJfbGVuZ3RoID0gMDtcXG4gICAgdmFyIHN0cl9sZW4gPSAwO1xcbiAgICBzdHJfY3V0ID0gbmV3IFN0cmluZygpO1xcbiAgICBzdHJfbGVuID0gc3RyLmxlbmd0aDtcXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJfbGVuOyBpKyspIHtcXG4gICAgICAgIGEgPSBzdHIuY2hhckF0KGkpO1xcbiAgICAgICAgc3RyX2xlbmd0aCsrO1xcbiAgICAgICAgaWYgKGVzY2FwZShhKS5sZW5ndGggPiA0KSB7XFxuICAgICAgICAgICAgLy/kuK3mloflrZfnrKbnmoTplb/luqbnu4/nvJbnoIHkuYvlkI7lpKfkuo40XFxuICAgICAgICAgICAgc3RyX2xlbmd0aCsrO1xcbiAgICAgICAgfVxcbiAgICAgICAgc3RyX2N1dCA9IHN0cl9jdXQuY29uY2F0KGEpO1xcbiAgICAgICAgaWYgKHN0cl9sZW5ndGggPj0gbGVuKSB7XFxuICAgICAgICAgICAgLy/ovr7liLDnm67moIfplb/luqbvvIzljbPkuLrlrZfnrKbkuLLliqDkuIrnnIHnlaXlj7flubbov5Tlm55cXG4gICAgICAgICAgICBzdHJfY3V0ID0gc3RyX2N1dC5jb25jYXQoXFxcIi4uLlxcXCIpO1xcbiAgICAgICAgICAgIHJldHVybiBzdHJfY3V0O1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIC8v5aaC5p6c5a2X56ym5Liy6ZW/5bqm5bCP5LqO6ZyA6KaB6KOB5YiH55qE6ZW/5bqm77yM55u05o6l6L+U5ZueXFxuICAgIGlmIChzdHJfbGVuZ3RoIDwgbGVuKSB7XFxuICAgICAgICByZXR1cm4gc3RyO1xcbiAgICB9XFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5b+r5o235pCc57SiXCIsXCJwYXRoXCI6XCJxc2VhcmNoZFwiLFwicnVsZVwiOlwiLy/mkJzntKLvvIzku6XkuIvln7rmnKzkuI3pnIDopoHkv67mlLnjgIJcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2xpbmUnXFxufSlcXG5cXG5cXG50cnkge1xcbiAgICBcXG4gICAgdmFyIHRpdGxlID0gZ2V0UGFnZVRpdGxlKCk7XFxuICAgIHZhciBDb2xvciA9IFxcXCIjZjEzYjY2YVxcXCI7XFxuICAgIHZhciBDb2xvcjEgPSBcXFwiIzA5OEFDMVxcXCI7XFxuXFxuXFxuXFxuICAgIGZ1bmN0aW9uIGdldEhlYWQodGl0bGUpIHtcXG4gICAgICAgIHJldHVybiAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj1cXFwiJyArIENvbG9yICsgJ1xcXCI+JyArIHRpdGxlICsgJzwvZnJvbnQ+PC9zdHJvbmc+JztcXG4gICAgfVxcbn0gY2F0Y2gge31cXG5cXG52YXIgcnVsZXMgPSB7XFxuICAgIFxcXCJxdWlja1NlYXJjaENvbmZpZ3NcXFwiOiB7XFxuICAgICAgICBcXFwibW9kZVxcXCI6IFxcXCJpY29uX3JvdW5kX3NtYWxsXzRcXFwiLFxcbiAgICAgICAgXFxcIm9yZGVyXFxcIjogW1xcXCLmtbfpmJTmkJzntKJcXFwiLCBcXFwi6aOO5b2xXFxcIiwgXFxcIummmeaDhVxcXCIsIFxcXCLogZrlvbFcXFwiXSxcXG4gICAgICAgIFxcXCLmtbfpmJTmkJzntKJcXFwiOiB7XFxuICAgICAgICAgICAgXFxcIm5hbWVcXFwiOiBcXFwiXFxcIixcXG4gICAgICAgICAgICBcXFwicGljXFxcIjogXFxcImh0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9tb3ZpZS8xMzUuc3ZnXFxcIlxcbiAgICAgICAgfSxcXG4gICAgICAgIFxcXCLpo47lvbFcXFwiOiB7XFxuICAgICAgICAgICAgXFxcIm5hbWVcXFwiOiBcXFwi6aOO5b2xXFxcIixcXG4gICAgICAgICAgICBcXFwicGljXFxcIjogXFxcImh0dHBzOi8vcGljMS5pbWdkYi5jbi9pdGVtLzYzNDZiZWRhMTZmMmMyYmViMWYxYmJkZS5qcGdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJydWxlXFxcIjogXFxcImNvcHk6Ly9odHRwczovL25ldGN1dC5jbi9wL2Y2ZmUzYmVjODcwMjVkNWVcXFwiXFxuICAgICAgICB9LFxcbiAgICAgICAgXFxcIummmeaDhVxcXCI6IHtcXG4gICAgICAgICAgICBcXFwibmFtZVxcXCI6IFxcXCLpppnmg4XlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJwaWNcXFwiOiBcXFwiaHR0cHM6Ly9jb2RlYmVyZy5vcmcvbHprMjM1NTkvUHVibGljUnVsZS9yYXcvYnJhbmNoL21hc3Rlci94cXlzLnBuZ1xcXCJcXG4gICAgICAgIH0sXFxuICAgICAgICBcXFwi6IGa5b2xXFxcIjoge1xcbiAgICAgICAgICAgIFxcXCJuYW1lXFxcIjogXFxcIuiBmuW9seKImlxcXCIsXFxuICAgICAgICAgICAgXFxcInBpY1xcXCI6IFxcXCJodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvUXF5Qy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJydWxlXFxcIjogXFxcImNvcHk6aHR0cHM6Ly9wYXN0ZW1lLnR5cmFudGcuY29tL3h4eHh4eC92a3ZoYnFvcHY1dTZ1Nm9wXFxcIlxcbiAgICAgICAgfVxcbiAgICB9XFxufVxcblxcbnZhciBqc29uID0gcnVsZXM7XFxudmFyIGxpc3QgPSBqc29uLnF1aWNrU2VhcmNoQ29uZmlncy5vcmRlcjtcXG5cXG5mb3IgKGwgaW4gbGlzdCkge1xcbiAgICB2YXIgb2JqID0ganNvbi5xdWlja1NlYXJjaENvbmZpZ3NbbGlzdFtsXV07XFxuICAgIC8vbG9nKG9iai5uYW1lKVxcblxcblxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGxpc3RbbF0sXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG9iaiwgaG9tZSwgdGl0bGUpID0+IHtcXG4gICAgICAgICAgICBsZXQgcnVsZUxpc3QgPSBKU09OLnBhcnNlKHJlcXVlc3QoaG9tZSkpO1xcbiAgICAgICAgICAgIGxldCBoYXNSdWxlID0gcnVsZUxpc3Quc29tZShpdGVtID0+IGl0ZW0udGl0bGUgPT09IG9iai5uYW1lKTtcXG4gICAgICAgICAgICBpZiAoaGFzUnVsZSB8fCBvYmoubmFtZSA9PSAnJykge1xcbiAgICAgICAgICAgICAgICAvL3RvYXN0KFxcXCLor7fphY3nva7lv6vpgJ/mkJzntKJcXFwiKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vc2VhcmNoP3M9JyArIHRpdGxlICsgJyZydWxlPScgKyBvYmoubmFtZTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcblxcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KFxcXCJydWxlXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChvYmoucnVsZS5pbmRleE9mKCdjb3B5JykhPS0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9hc3QoXFxcIuW3sue7j+WkjeWItuivt+WvvOWFpeinhOWImVxcXCIpXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqLnJ1bGVcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/or7flronoo4VcXFwiICsgb2JqLm5hbWUgKyBcXFwi5bCP56iL5bqPXFxcIjtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0sIG9iaiwgXFxcImhpa2VyOi8vaG9tZVxcXCIsIHRpdGxlKSxcXG4gICAgICAgIHBpY191cmw6IG9iai5waWMsXFxuICAgICAgICBjb2xfdHlwZToganNvbi5xdWlja1NlYXJjaENvbmZpZ3MubW9kZSxcXG4gICAgICAgIGV4dHJhOntpZDoncXNlYXJjaCd9XFxuICAgIH0pXFxufVxcblxcblxcbi8qICAgICQoKS5sYXp5UnVsZSgob2JqLCBob21lLCB0aXRsZSkgPT4ge1xcbiAgICAgICAgbGV0IHJ1bGVMaXN0ID0gSlNPTi5wYXJzZShyZXF1ZXN0KGhvbWUpKTtcXG4gICAgICAgIGxldCBoYXNSdWxlID0gcnVsZUxpc3Quc29tZShpdGVtID0+IGl0ZW0udGl0bGUgPT09IG9iai5uYW1lKTtcXG4gICAgICAgIGlmIChoYXNSdWxlKSB7XFxuXFxuICAgICAgICAgICAgLy90b2FzdChcXFwi6K+36YWN572u5b+r6YCf5pCc57SiXFxcIilcXG4gICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vc2VhcmNoP3M9JyArIHRpdGxlICsgJyZydWxlPScgKyBvYmoubmFtZSxcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgLy90b2FzdChcXFwi6K+35a6J6KOF6Z2S6LGG5bCP56iL5bqPXFxcIilcXG4gICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KFxcXCJydWxlXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ivt+WuieijhVxcXCIgKyBvYmoubmFtZSArIFxcXCLlsI/nqIvluo9cXFwiO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuXFxuICAgICAgICAgICAgICAgIHJldHVybiAnMidcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH0sIG9iaiwgXFxcImhpa2VyOi8vaG9tZVxcXCIsIHRpdGxlKSovXFxuXFxuXFxuXFxuXFxuLypkLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2xpbmUnXFxufSlcXG4qL1xcblxcbi8qZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfphY3nva4nLFxcbiAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJyxcXG4gICAgdXJsOiAkKCkubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgdG9hc3QoXFxcIueCueWHu+iuvue9rumFjee9ruW/q+mAn+aQnOe0olxcXCIpO1xcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2hvbWVA6Z2S6LGGJ1xcbiAgICB9KVxcblxcbn0pKi9cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWKqOaAgeWIhuexu1wiLFwicGF0aFwiOlwiZHRmbFwiLFwicnVsZVwiOlwiY29uc3TCoGVtcHR5wqA9wqBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG5cXG5pZsKgKHR5cGVvZijmi7zmjqXliIbnsbspwqAhPcKgJ3VuZGVmaW5lZCfCoCYmwqDmi7zmjqXliIbnsbvCoCE9wqAnJynCoHtcXG7CoMKgwqDCoHZhcsKgY2F0ZWdvcmllc8KgPcKgcGRmYShodG1sLMKg5aSn57G75a6a5L2NKS5jb25jYXQocGRmYShodG1sLMKg5ou85o6l5YiG57G7KSlcXG59wqBlbHNlwqB7XFxuwqDCoMKgwqB2YXLCoGNhdGVnb3JpZXPCoD3CoHBkZmEoaHRtbCzCoOWkp+exu+WumuS9jSlcXG59XFxuXFxubGV0wqBpbml0X2NhdGXCoD3CoFtdXFxuXFxuZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XFxuICAgIGluaXRfY2F0ZS5wdXNoKFxcXCIwXFxcIilcXG59XFxuXFxuY29uc3TCoGZvbGTCoD3CoGdldFZhcihNWV9SVUxFLmdyb3VwLMKgXFxcIjBcXFwiKVxcbmNvbnN0wqBjYXRlX3RlbXBfanNvbsKgPcKgZ2V0VmFyKE1ZX1JVTEUudGl0bGUswqBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUpKVxcbmNvbnN0wqBjYXRlX3RlbXDCoD3CoEpTT04ucGFyc2UoY2F0ZV90ZW1wX2pzb24pXFxuXFxuaWbCoChwYXJzZUludChwYWdlKcKgPT09wqAxKcKge1xcbsKgwqDCoMKgZC5wdXNoKHtcXG7CoMKgwqDCoMKgwqDCoMKgdGl0bGU6wqBmb2xkwqA9PT3CoCcxJ8KgP8KgJ+KAnOKAnOKAneKAnSfCoCvCoCfwn5i6Jy5mb250Y29sb3IoXFxcIiNGRjAwMDBcXFwiKcKgK8KgJyfCoDrCoCfigJzigJzigJ3igJ0nwqArwqAn8J+QsScuZm9udGNvbG9yKFxcXCIjMWFhZDE5XFxcIinCoCvCoCcnLFxcbsKgwqDCoMKgwqDCoMKgwqB1cmw6wqAkKCkubGF6eVJ1bGUoKGZvbGQpwqA9PsKge1xcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dFZhcihNWV9SVUxFLmdyb3VwLMKgZm9sZMKgPT09wqAnMSfCoD/CoCcwJ8KgOsKgJzEnKTtcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZWZyZXNoUGFnZShmYWxzZSk7XFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuwqBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG7CoMKgwqDCoMKgwqDCoMKgfSzCoGZvbGQpLFxcbsKgwqDCoMKgwqDCoMKgwqBjb2xfdHlwZTrCoCdzY3JvbGxfYnV0dG9uJyxcXG7CoMKgwqDCoH0pXFxuwqDCoMKgwqBjYXRlZ29yaWVzLmZvckVhY2goKGNhdGVnb3J5LMKgaW5kZXgpwqA9PsKge1xcbsKgwqDCoMKgwqDCoMKgwqBsZXTCoHN1Yl9jYXRlZ29yaWVzwqA9wqBwZGZhKGNhdGVnb3J5LMKg5bCP57G75a6a5L2NKTtcXG7CoMKgwqDCoMKgwqDCoMKgaWbCoChpbmRleMKgPT09wqAwKcKge1xcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN1Yl9jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0swqBrZXkpwqA9PsKge1xcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGV0wqB0aXRsZcKgPcKgcGRmaChpdGVtLMKg5YiG57G75qCH6aKYKVxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWbCoCh0eXBlb2Yo5o6S6ZmkKcKgIT3CoCd1bmRlZmluZWQnwqAmJsKg5o6S6ZmkwqAhPcKgJycpwqB7XFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpdGxlwqA9wqB0aXRsZS5yZXBsYWNlKG5ld8KgUmVnRXhwKOaOkumZpCzCoFxcXCJnXFxcIikswqBcXFwiXFxcIilcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH1cXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGQucHVzaCh7XFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpdGxlOsKga2V5LnRvU3RyaW5nKCnCoD09PcKgY2F0ZV90ZW1wW2luZGV4XcKgP8KgXFxcIuKAnOKAnOKAneKAnVxcXCLCoCvCoHRpdGxlLmZvbnRjb2xvcijliIbnsbvpopzoibIpwqA6wqB0aXRsZSxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdXJsOsKgJChwZChpdGVtLMKg5YiG57G76ZO+5o6lKcKgK8KgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcynCoD0+wqB7XFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGV0wqBuZXdfY2F0ZcKgPcKgW11cXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYXJhbXMuY2F0ZV90ZW1wLmZvckVhY2goKGNhdGUswqBpbmRleCnCoD0+wqB7XFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBuZXdfY2F0ZS5wdXNoKGluZGV4wqA9PT3CoDDCoD/CoHBhcmFtcy5rZXkudG9TdHJpbmcoKcKgOsKgXFxcIjBcXFwiKVxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHV0VmFyKE1ZX1JVTEUudGl0bGUswqBKU09OLnN0cmluZ2lmeShuZXdfY2F0ZSkpXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHV0VmFyKE1ZX1JVTEUudXJsLMKgaW5wdXQpXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVmcmVzaFBhZ2UodHJ1ZSlcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm7CoFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9LMKge1xcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhdGVfdGVtcDrCoGNhdGVfdGVtcCxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBrZXk6wqBrZXksXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGFnZTrCoHBhZ2UsXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pLFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb2xfdHlwZTrCoCdzY3JvbGxfYnV0dG9uJyxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0pXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSlcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkLnB1c2goe1xcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29sX3R5cGU6wqBcXFwiYmxhbmtfYmxvY2tcXFwiXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSk7XFxuwqDCoMKgwqDCoMKgwqDCoH3CoGVsc2XCoGlmwqAoZm9sZMKgPT09wqAnMScpwqB7XFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3ViX2NhdGVnb3JpZXMuZm9yRWFjaCgoaXRlbSzCoGtleSnCoD0+wqB7XFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsZXTCoHRpdGxlwqA9wqBwZGZoKGl0ZW0swqDliIbnsbvmoIfpopgpXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZsKgKHR5cGVvZijmjpLpmaQpwqAhPcKgJ3VuZGVmaW5lZCfCoCYmwqDmjpLpmaTCoCE9wqAnJynCoHtcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGXCoD3CoHRpdGxlLnJlcGxhY2UobmV3wqBSZWdFeHAo5o6S6ZmkLMKgXFxcImdcXFwiKSzCoFxcXCJcXFwiKVxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfVxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZC5wdXNoKHtcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGU6wqBrZXkudG9TdHJpbmcoKcKgPT09wqBjYXRlX3RlbXBbaW5kZXhdwqA/wqBcXFwi4oCc4oCc4oCd4oCdXFxcIsKgK8KgdGl0bGUuZm9udGNvbG9yKOWIhuexu+minOiJsinCoDrCoHRpdGxlLFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1cmw6wqAkKHBkKGl0ZW0swqDliIbnsbvpk77mjqUpwqArwqAnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgocGFyYW1zKcKgPT7CoHtcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYXJhbXMuY2F0ZV90ZW1wW3BhcmFtcy5pbmRleF3CoD3CoHBhcmFtcy5rZXkudG9TdHJpbmcoKVxcblxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dFZhcihNWV9SVUxFLnRpdGxlLMKgSlNPTi5zdHJpbmdpZnkocGFyYW1zLmNhdGVfdGVtcCkpXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHV0VmFyKE1ZX1JVTEUudXJsLMKgaW5wdXQpXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVmcmVzaFBhZ2UodHJ1ZSlcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm7CoFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9LMKge1xcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhdGVfdGVtcDrCoGNhdGVfdGVtcCxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbmRleDrCoGluZGV4LFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGtleTrCoGtleSxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwYWdlOsKgcGFnZSxcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSksXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbF90eXBlOsKgJ3Njcm9sbF9idXR0b24nLFxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSlcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KVxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGQucHVzaCh7XFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb2xfdHlwZTrCoFxcXCJibGFua19ibG9ja1xcXCJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXG7CoMKgwqDCoMKgwqDCoMKgfVxcbsKgwqDCoMKgfSlcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLop6PmnpBcIixcInBhdGhcIjpcImp4XCIsXCJydWxlXCI6XCJqczpcXG52YXIgbGF6eSA9ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgZXZhbFByaXZhdGVKUygncFhYUlN5WnlxUUtYVEY3MkFiTUsxbjByYkVjYkVTaXIwODdFK2Q3ZjVoK3RGSXlqM1pleVd3QXp1OVVKdHBWM3VuL3g3NWZaSFg3UXhJNmJFaml1MWxrY3lhcXVBZjk0RHZqWGNUN3V3dUxYZXAyTFlqWTBZTnZLcHo2ZmFiaTd0NmxReUxpT21SZEtCVDNrQXFZRUpwa2E0MDRJMDU4S2xmYnI2VVdrTHlWU1RXM0Y1VzhGUUs2WTJKdytlbUpnQnROWGw3U2VqWFNwOW9oclFpSXNCVlo0MTd5WWJxVGJZMVBjWmphRzRwcERrQUFBbmlXZm03ek1FcHVNZDh4RDNZaVlMSVMxYU1oLzVEUTZqaDY5U2toWThJZ2lRMlYrUEVUOXBZeGJXTHV2WWc1dEV6ZVc4YWVBV0t1Mk91elNiOWY5WnI0dXcya3pZNkxDSVo1MmZRcGVVdlZEVll0bWdwOEJSK2RoUVpvYXRXVUhKWU1LUEdJZE1sdXFLcExad1ZQeGRhL2w0RHJuaGtHa0JkdjZ6cWpYRllxZ2d6Z1BBbTN6NzVNMk5rZ2N1L2IyVWIzRmh1SEMyaUM2UGoybVlCUlZhOGF2bkhQOVlVMmhoWGFFbm9aZzNPZlROdnRiTmtlM1kvWUUxYWYxSXBKTEFPSFVVMUdDYm1GaDlqaVozV28yNndQa2FXY0sva2kvMFZYT2svcHFzeTluK1pUd2VsSVpzUnZEeGFaWTJzWURxTVFkV0NMck9qQnNHTGR4dVpXVHhZS0Fod1ZUVS9wYkpUZ2J3bWtRSU5KbDRWQlhFVktNUFVVbFJ5NlpsR2VyejlnOVBkVVRxU0piN05sL3l6VURRNXloNUhoR0NDcWM4YjFLVWhTaDRiWlNJNGx2SE5aL3ltT1hlaU1GWndmVi9SZ3YzQnNEYit1TlZxNk9DMGJMOHE0NENLdTJCZmxGZThweVppTU45dlFENUozcUc5TVJsSHI1SkRMVFRTRk81cW9wZzFTNmhwYlNhVHFaeTIxTTcwb2hEM0dCUGpEWklIcTlScGVOaUl3VTB2MUh4cy8vM3hVMlYyOD0nKVxcbiAgICByZXR1cm4gcHVybCsnI2lzVmlkZW89dHJ1ZSMnXFxufSlcIn1dIiwiaWNvbiI6Imh0dHA6Ly93d3cubnRkbTguY29tL3RlbXBsYXRlL250eW91L2ltYWdlL2Zhdmljb24uaWNvIiwicHJveHkiOiIifQ==
Add Comment
Please, Sign In to add comment