Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@MISSAV@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoiTUlTU0FWIiwiYXV0aG9yIjoiQXJpc2UiLCJ1cmwiOiJoaWtlcjovL2VtcHR5IyNmeXBhZ2UiLCJ2ZXJzaW9uIjoxLCJjb2xfdHlwZSI6Im1vdmllXzMiLCJjbGFzc19uYW1lIjoiIiwidHlwZSI6Im90aGVyIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG4kLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJykuYmFzZVBhcnNlKCkiLCJzZWFyY2hfdXJsIjoiaHR0cHM6Ly9taXNzYXYuY29tL2NuL3NlYXJjaC8qKj9wYWdlPWZ5cGFnZTtnZXQ7VVRGLTg7e1VzZXItQWdlbnRATW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCl9IiwiZ3JvdXAiOiLwn5iNIiwic2VhcmNoRmluZCI6ImpzOlxuJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpLnNlYXJjaFBhcnNlKCkiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiIiLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwibWlzc1wiLFwicGF0aFwiOlwibWlzc1wiLFwicnVsZVwiOlwiY29uc3QgbWlzcyA9IHtcXG4gICAgZW1wdHk6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgdXJsOiAnaHR0cHM6Ly9taXNzYXYuY29tL2NuLycsXFxuICAgIGQ6IFtdLFxcbiAgICB0YXNrTGlzdDogW10sXFxuICAgIGRhdGE6IHtcXG4gICAgICAgIGNhdGVnb3J5OiBnZXRNeVZhcignTWlzc0FWLmNhdGVnb3J5JywgJzAnKSxcXG4gICAgICAgIHN1YkNhdGU6IGdldE15VmFyKCdNaXNzQVYuc3ViQ2F0ZScsICcwJyksXFxuICAgIH0sXFxuICAgIGJhc2VQYXJzZTogKCkgPT4ge1xcbiAgICAgICAgY29uc3QgcGFnZSA9IHBhcnNlSW50KE1ZX1VSTC5zcGxpdCgnIyMnKVsxXSlcXG4gICAgICAgIGxldCBjYXRlZ29yeUxpc3QgPSBbe1xcbiAgICAgICAgICAgIHRpdGxlOiAn5LuK5pel54Ot6ZeoJyxcXG4gICAgICAgICAgICBwYXRoOiAndG9kYXktaG90JyxcXG4gICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcbiAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgdGl0bGU6ICfmnKzpgLHng63pl6gnLFxcbiAgICAgICAgICAgIHBhdGg6ICd3ZWVrbHktaG90JyxcXG4gICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcbiAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgdGl0bGU6ICfmnKzmnIjng63pl6gnLFxcbiAgICAgICAgICAgIHBhdGg6ICdtb250aGx5LWhvdCcsXFxuICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcXG4gICAgICAgICAgICBzdWI6IFtdXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgICAgIHRpdGxlOiAn5Lit5paH5a2X5bmVJyxcXG4gICAgICAgICAgICBwYXRoOiAnY2hpbmVzZS1zdWJ0aXRsZScsXFxuICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcXG4gICAgICAgICAgICBzdWI6IFtdXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgICAgIHRpdGxlOiAn5pyA6L+R5pu05pawJyxcXG4gICAgICAgICAgICBwYXRoOiAnbmV3JyxcXG4gICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcbiAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgdGl0bGU6ICfmlrDkvZzkuIrluIInLFxcbiAgICAgICAgICAgIHBhdGg6ICdyZWxlYXNlJyxcXG4gICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcbiAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgdGl0bGU6ICfntKDkuronLFxcbiAgICAgICAgICAgIHBhdGg6ICcnLFxcbiAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxuICAgICAgICAgICAgc3ViOiBbe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1NJUk8nLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnc2lybydcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdMVVhVJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ2x1eHUnXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnR0FOQScsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdnYW5hJ1xcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1BSRVNUSUdFIFBSRU1JVU0nLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnbWFhbidcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdTLUNVVEUnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnc2N1dGUnXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnQVJBJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ2FyYSdcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIF1cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgdGl0bGU6ICfml6DnoIEnLFxcbiAgICAgICAgICAgIHBhdGg6ICcnLFxcbiAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxuICAgICAgICAgICAgc3ViOiBbe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+aXoOeggea1geWHuicsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICd1bmNlbnNvcmVkLWxlYWsnXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnRkMyJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ2ZjMidcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdIRVlaTyAnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnaGV5em8nXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5Lic5Lqs54OtJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ3Rva3lvaG90J1xcbiAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfkuIDmnKzpgZMnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnMXBvbmRvJ1xcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0NhcmliYmVhbmNvbScsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdjYXJpYmJlYW5jb20nXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnQ2FyaWJiZWFuY29tcHInLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnY2FyaWJiZWFuY29tcHInXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnMTBtdXN1bWUnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnMTBtdXN1bWUnXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAncGFjb3BhY29tYW1hJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ3BhY29wYWNvbWFtYSdcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdHYWNoaW5jbycsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdnYWNoaW5jbydcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdYWFgtQVYnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAneHh4YXYnXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5Lq65aa75papJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ21hcnJpZWRzbGFzaCdcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfpob3nmq4gNDYxMCcsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICduYXVnaHR5NDYxMCdcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfpob3nmq4gMDkzMCcsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICduYXVnaHR5MDkzMCdcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIF1cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgdGl0bGU6ICflm73kuqcgQVYnLFxcbiAgICAgICAgICAgIHBhdGg6ICcnLFxcbiAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxuICAgICAgICAgICAgc3ViOiBbe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+m6u+ixhuS8oOWqkicsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdtYWRvdSdcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdUV0FWJyxcXG4gICAgICAgICAgICAgICAgcGF0aDogJ3R3YXYnXFxuICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0Z1cnVrZScsXFxuICAgICAgICAgICAgICAgIHBhdGg6ICdmdXJ1a2UnXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICBdXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgICAgIHRpdGxlOiAnVlInLFxcbiAgICAgICAgICAgIHBhdGg6ICdnZW5yZXMvVlInLFxcbiAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxuICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgfSxcXG4gICAgICAgIHtcXG4gICAgICAgICAgICB0aXRsZTogJ0FWIOW9seivhCcsXFxuICAgICAgICAgICAgcGF0aDogJ2FydGljbGVzJyxcXG4gICAgICAgICAgICB0eXBlOiAnYXJ0aWNsZXMnLFxcbiAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgdGl0bGU6ICflpbPkvJjkuIDop4gnLFxcbiAgICAgICAgICAgIHBhdGg6ICdhY3RyZXNzZXMnLFxcbiAgICAgICAgICAgIHR5cGU6ICdhdmF0YXInLFxcbiAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgdGl0bGU6ICflpbPkvJjmjpLooYwnLFxcbiAgICAgICAgICAgIHBhdGg6ICdhY3RyZXNzZXMvcmFua2luZycsXFxuICAgICAgICAgICAgdHlwZTogJ2F2YXRhcicsXFxuICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgfSxcXG4gICAgICAgIHtcXG4gICAgICAgICAgICB0aXRsZTogJ+exu+WeiycsXFxuICAgICAgICAgICAgcGF0aDogJ2dlbnJlcycsXFxuICAgICAgICAgICAgdHlwZTogJ3RhZ3MnLFxcbiAgICAgICAgICAgIHN1YjogW11cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgdGl0bGU6ICflj5HooYzllYYnLFxcbiAgICAgICAgICAgIHBhdGg6ICdtYWtlcnMnLFxcbiAgICAgICAgICAgIHR5cGU6ICd0YWdzJyxcXG4gICAgICAgICAgICBzdWI6IFtdXFxuICAgICAgICB9LCB7XFxuICAgICAgICAgICAgdGl0bGU6ICfmm7TlpJonLFxcbiAgICAgICAgICAgIHBhdGg6ICcnLFxcbiAgICAgICAgICAgIHR5cGU6ICd2aWRlbycsXFxuICAgICAgICAgICAgc3ViOiBbe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ05qYXYnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnc2l0ZS9uamF2JyxcXG4gICAgICAgICAgICAgICAgdHlwZTogJ3ZpZGVvJyxcXG4gICAgICAgICAgICAgICAgc3ViOiBbXVxcbiAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdTdXBqYXYnLFxcbiAgICAgICAgICAgICAgICBwYXRoOiAnc2l0ZS9zdXBqYXYnLFxcbiAgICAgICAgICAgICAgICB0eXBlOiAndmlkZW8nLFxcbiAgICAgICAgICAgICAgICBzdWI6IFtdXFxuICAgICAgICAgICAgfSxdXFxuICAgICAgICB9LFxcbiAgICAgICAgXVxcbiAgICAgICAgY29uc3QgY3VycmVudENhdGUgPSBjYXRlZ29yeUxpc3RbbWlzcy5kYXRhLmNhdGVnb3J5XVxcbiAgICAgICAgbGV0IHVybFxcbiAgICAgICAgY29uc3QgdHlwZSA9IGN1cnJlbnRDYXRlLnR5cGVcXG4gICAgICAgIGNvbnN0IHBhdGggPSBjdXJyZW50Q2F0ZS5wYXRoXFxuICAgICAgICBpZiAoY3VycmVudENhdGUuc3ViLmxlbmd0aCA+IDApIHtcXG4gICAgICAgICAgICB1cmwgPSBtaXNzLnVybCArIGN1cnJlbnRDYXRlLnN1YlttaXNzLmRhdGEuc3ViQ2F0ZV0ucGF0aFxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICB1cmwgPSBtaXNzLnVybCArIGN1cnJlbnRDYXRlLnBhdGhcXG4gICAgICAgIH1cXG4gICAgICAgIHVybCArPSAnP3BhZ2U9JyArIHBhZ2VcXG4gICAgICAgIGlmIChwYWdlID09PSAxKSB7XFxuICAgICAgICAgICAgY2F0ZWdvcnlMaXN0LmZvckVhY2goKGNhdGUsIGluZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwYXJzZUludChtaXNzLmRhdGEuY2F0ZWdvcnkpID09PSBpbmRleCA/XFxuICAgICAgICAgICAgICAgICAgICAgICAgJ+KAmOKAmOKAmeKAmTxzdHJvbmc+PGZvbnQgY29sb3I9XFxcIiNmZjE0OTNcXFwiPicgKyBjYXRlLnRpdGxlICsgJzwvZm9udD48L3N0cm9uZz4nIDogY2F0ZS50aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChtaXNzLmVtcHR5KS5sYXp5UnVsZSgoaW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiTWlzc0FWLmNhdGVnb3J5XFxcIiwgaW5kZXgudG9TdHJpbmcoKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiTWlzc0FWLnN1YkNhdGVcXFwiLCAnMCcpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9LCBpbmRleCksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgaWYgKGN1cnJlbnRDYXRlLnN1Yi5sZW5ndGggPiAwKSB7XFxuICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICBjdXJyZW50Q2F0ZS5zdWIuZm9yRWFjaCgoY2F0ZSwgaW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGFyc2VJbnQobWlzcy5kYXRhLnN1YkNhdGUpID09PSBpbmRleCA/XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICfigJjigJjigJnigJk8c3Ryb25nPjxmb250IGNvbG9yPVxcXCIjZmYxNDkzXFxcIj4nICsgY2F0ZS50aXRsZSArXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L2ZvbnQ+PC9zdHJvbmc+JyA6IGNhdGUudGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKG1pc3MuZW1wdHkpLmxhenlSdWxlKChpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiTWlzc0FWLnN1YkNhdGVcXFwiLCBpbmRleC50b1N0cmluZygpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgaW5kZXgpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGh0bWwgPSBmZXRjaCh1cmwsIHtcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjApJ1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pXFxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcXG4gICAgICAgICAgICBjYXNlICd2aWRlbyc6XFxuICAgICAgICAgICAgICAgIG1pc3MudmlkZW9UeXBlKGh0bWwpXFxuICAgICAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICAgICAgY2FzZSAnYXJ0aWNsZXMnOlxcbiAgICAgICAgICAgICAgICBtaXNzLmFydGljbGVzVHlwZShodG1sKVxcbiAgICAgICAgICAgICAgICBicmVha1xcbiAgICAgICAgICAgIGNhc2UgJ2F2YXRhcic6XFxuICAgICAgICAgICAgICAgIGlmICgocGF0aCA9PT0gJ2FjdHJlc3Nlcy9yYW5raW5nJyAmJiBwYWdlID09PSAxKSB8fCBwYXRoICE9PSAnYWN0cmVzc2VzL3JhbmtpbmcnKSB7XFxuICAgICAgICAgICAgICAgICAgICBtaXNzLmF2YXRhclR5cGUoaHRtbClcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBicmVha1xcbiAgICAgICAgICAgIGNhc2UgJ3RhZ3MnOlxcbiAgICAgICAgICAgICAgICBtaXNzLnRhZ3NUeXBlKGh0bWwpXFxuICAgICAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICAgICAgZGVmYXVsdDpcXG4gICAgICAgICAgICAgICAgbWlzcy52aWRlb1R5cGUoaHRtbClcXG4gICAgICAgIH1cXG4gICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgIH0sXFxuXFxuXFxuICAgIHNlYXJjaFBhcnNlOiAoKSA9PiB7XFxuICAgICAgICBpZiAoTVlfVVJMLmluY2x1ZGVzKFxcXCJwYWdlPTFcXFwiKSkge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLigJTigJTlpbPkvJjigJTigJRcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIG1pc3MuYXZhdGFyVHlwZShnZXRSZXNDb2RlKCkpO1xcblxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLigJTigJTlvbHniYfigJTigJRcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIG1pc3MudmlkZW9UeXBlMihnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBtaXNzLnZpZGVvVHlwZShnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgfVxcbiAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgfSxcXG5cXG5cXG4gICAgdmlkZW9QYXJzZTogKHVybCkgPT4ge1xcbiAgICAgICAgY29uc3QgaHRtbCA9IGZldGNoKHVybCwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCknXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIGNvbnN0IHRpdGxlID0gcGRmaChodG1sLCAnaDEmJlRleHQnKVxcblxcbiAgICAgICAgc2V0UGFnZVRpdGxlKHRpdGxlKVxcblxcblxcbiAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArIHRpdGxlLnNtYWxsKCksXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIGxpbmVWaXNpYWJsZTogZmFsc2VcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcbiAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgIGRlc2M6IHBkZmgoaHRtbCwgJy50ZXh0LXNlY29uZGFyeS5icmVhay1hbGwubGluZS1jbGFtcC0yJiZUZXh0JyksXFxuICAgICAgICAgICAgcGljX3VybDogcGRmaChodG1sLCAnbWV0YVtwcm9wZXJ0eT1vZzppbWFnZV0mJmNvbnRlbnQnKSArICdAUmVmZXJlcj0nICsgbWlzcy51cmwsXFxuICAgICAgICAgICAgdXJsOiAkKG1pc3MuZW1wdHkgKyAnI25vSGlzdG9yeSMnKS5sYXp5UnVsZSgoaHRtbCwgdXJsKSA9PiB7XFxuICAgICAgICAgICAgICAgIGV2YWwoaHRtbC5tYXRjaCgvZXZhbC4qP1xcXFxuLylbMF0pXFxuICAgICAgICAgICAgICAgIC8vIOiOt+WPlueUu+i0qOWIl+ihqO+8jOW5tuWOu+acgOmrmOeUu+i0qFxcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBfcXVhbGl0eSA9IGZldGNoKHNvdXJjZSwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJvcmlnaW5cXFwiOiBcXFwiaHR0cHM6Ly9taXNzYXYuY29tXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICBoZ2hlc3RfcXVhbGl0eSA9IGdyb3VwX3F1YWxpdHkubWF0Y2goL14oLiopXFxcXC5tM3U4JC9nbSkubWFwKHYgPT4gc291cmNlLnJlcGxhY2UoXFxcInBsYXlsaXN0Lm0zdThcXFwiLCB2KSkucmV2ZXJzZSgpXFxuICAgICAgICAgICAgICAgIG5hbWVfcXVhbGl0eSA9IGdyb3VwX3F1YWxpdHkubWF0Y2goL1JFU09MVVRJT049LiokL2dtKS5tYXAobiA9PiBuLnJlcGxhY2UoXFxcIlJFU09MVVRJT049XFxcIiwgXFxcIlxcXCIpKS5yZXZlcnNlKClcXG4gICAgICAgICAgICAgICAgbGV0IHBsYXlsaXN0ID0ge1xcbiAgICAgICAgICAgICAgICAgICAgdXJsczogaGdoZXN0X3F1YWxpdHksXFxuICAgICAgICAgICAgICAgICAgICBuYW1lczogbmFtZV9xdWFsaXR5LFxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogbmV3IEFycmF5KGhnaGVzdF9xdWFsaXR5Lmxlbmd0aCkuZmlsbCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlcjogdXJsXFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICByZXR1cm4gcGxheWxpc3Q7XFxuICAgICAgICAgICAgfSwgaHRtbCwgbWlzcy51cmwpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAncGljXzFfZnVsbCcsXFxuICAgICAgICB9KVxcbiAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBwZGZoKGh0bWwsICcudGV4dC1zZWNvbmRhcnkuYnJlYWstYWxsLmxpbmUtY2xhbXAtMiYmVGV4dCcpLnNtYWxsKCksXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIGxpbmVWaXNpYWJsZTogZmFsc2VcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcblxcbiAgICAgICAgY29uc3QgdGV4dF9zZWNvbmRhcnlfbGlzdCA9IHBkZmEoaHRtbCwgJ2JvZHkmJi50ZXh0LXNlY29uZGFyeScpXFxuICAgICAgICBsZXQgbnVtLCBhY3RyZXNzZXNMaXN0LCB0YWdzTGlzdCwgc2VyaWVzLCBtYWtlcnMsIGRpcmVjdG9ycywgbGFiZWxzTGlzdFxcbiAgICAgICAgdGV4dF9zZWNvbmRhcnlfbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIGxldCBjdXJyZW50X3RpdGxlID0gcGRmaChpdGVtLCAnc3BhbiYmVGV4dCcpXFxuICAgICAgICAgICAgbGV0IGFjdHJlc3NOYW1lID0gJ+Wls+S8mCdcXG4gICAgICAgICAgICBpZiAoY3VycmVudF90aXRsZSA9PT0gJ+eVquWPtzonKSB7XFxuICAgICAgICAgICAgICAgIG51bSA9IHBkZmgoaXRlbSwgJy5mb250LW1lZGl1bSYmVGV4dCcpXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSBhY3RyZXNzTmFtZSArICc6Jykge1xcbiAgICAgICAgICAgICAgICBhY3RyZXNzZXNMaXN0ID0gcGRmYShpdGVtLCAnLnRleHQtc2Vjb25kYXJ5JiZhJylcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRfdGl0bGUgPT09ICfnsbvlnos6Jykge1xcbiAgICAgICAgICAgICAgICB0YWdzTGlzdCA9IHBkZmEoaXRlbSwgJy50ZXh0LXNlY29uZGFyeSYmYScpXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSAn57O75YiXOicpIHtcXG4gICAgICAgICAgICAgICAgc2VyaWVzID0gcGRmYShpdGVtLCAnLnRleHQtc2Vjb25kYXJ5JiZhJylbMF1cXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRfdGl0bGUgPT09ICflj5HooYzllYY6Jykge1xcbiAgICAgICAgICAgICAgICBtYWtlcnMgPSBwZGZhKGl0ZW0sICcudGV4dC1zZWNvbmRhcnkmJmEnKVswXVxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudF90aXRsZSA9PT0gJ+WvvOa8lDonKSB7XFxuICAgICAgICAgICAgICAgIGRpcmVjdG9ycyA9IHBkZmEoaXRlbSwgJy50ZXh0LXNlY29uZGFyeSYmYScpWzBdXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50X3RpdGxlID09PSAn5qCH57GkOicpIHtcXG4gICAgICAgICAgICAgICAgbGFiZWxzTGlzdCA9IHBkZmEoaXRlbSwgJy50ZXh0LXNlY29uZGFyeSYmYScpXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIGlmIChudW0pIHtcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn55Wq5Y+3JyxcXG4gICAgICAgICAgICAgICAgdXJsOiBtaXNzLmVtcHR5LFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBudW0sXFxuICAgICAgICAgICAgICAgIHVybDogJ2NvcHk6Ly8nICsgbnVtLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpZiAoYWN0cmVzc2VzTGlzdCkge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmvJTlkZgnLFxcbiAgICAgICAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGFjdHJlc3Nlc0xpc3QuZm9yRWFjaCgoYWN0cmVzc2VzLCBpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKGFjdHJlc3NlcywgJ2EmJlRleHQnKVxcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gcGRmaChhY3RyZXNzZXMsICdhJiZocmVmJylcXG4gICAgICAgICAgICAgICAgbWlzcy50YXNrTGlzdC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIGZ1bmM6IG1pc3MudXBkYXRlQXZhdGFyLFxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW06IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHVybCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogJ2F2YXRhcl8nICsgaW5kZXhcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICBpZDogJ2F2YXRhcl8nICsgaW5kZXgsXFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgIHBpY191cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQodXJsICsgJz9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjJykucnVsZSgodGl0bGUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaXNzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFnZVRpdGxlKHRpdGxlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pc3MuYXZhdGFyUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgICAgICAgICAgICAgICAgICB9LCB0aXRsZSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcicsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnYXZhdGFyXycgKyBpbmRleCxcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpZiAodGFnc0xpc3QpIHtcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn57G75Z6LJyxcXG4gICAgICAgICAgICAgICAgdXJsOiBtaXNzLmVtcHR5LFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB0YWdzTGlzdC5mb3JFYWNoKHRhZyA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCB0YWdfdGl0bGUgPSBwZGZoKHRhZywgJ2EmJlRleHQnKVxcbiAgICAgICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGFnX3RpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgodGFnLCAnYSYmaHJlZicpICsgJz9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjJykucnVsZSgodGFnX3RpdGxlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZSh0YWdfdGl0bGUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgICAgICAgICAgICAgICAgICB9LCB0YWdfdGl0bGUpLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcblxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpZiAoc2VyaWVzKSB7XFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+ezu+WIlycsXFxuICAgICAgICAgICAgICAgIHVybDogbWlzcy5lbXB0eSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgbGV0IHNlcmllc190aXRsZSA9IHBkZmgoc2VyaWVzLCAnYSYmVGV4dCcpXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogc2VyaWVzX3RpdGxlLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQocGRmaChzZXJpZXMsICdhJiZocmVmJykgKyAnP3BhZ2U9ZnlwYWdlI25vSGlzdG9yeSMnKS5ydWxlKChzZXJpZXNfdGl0bGUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXG4gICAgICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZShzZXJpZXNfdGl0bGUpXFxuICAgICAgICAgICAgICAgICAgICBtaXNzLnRhZ3NQYXJzZShNWV9VUkwpXFxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQobWlzcy5kKVxcbiAgICAgICAgICAgICAgICB9LCBzZXJpZXNfdGl0bGUpLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH1cXG4gICAgICAgIGlmIChtYWtlcnMpIHtcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5Y+R6KGM5ZWGJyxcXG4gICAgICAgICAgICAgICAgdXJsOiBtaXNzLmVtcHR5LFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBsZXQgbWFrZXJzX3RpdGxlID0gcGRmaChtYWtlcnMsICdhJiZUZXh0JylcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBtYWtlcnNfdGl0bGUsXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKG1ha2VycywgJ2EmJmhyZWYnKSArICc/cGFnZT1meXBhZ2Ujbm9IaXN0b3J5IycpLnJ1bGUoKG1ha2Vyc190aXRsZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcbiAgICAgICAgICAgICAgICAgICAgc2V0UGFnZVRpdGxlKG1ha2Vyc190aXRsZSlcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MudGFnc1BhcnNlKE1ZX1VSTClcXG4gICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgICAgICAgICAgICAgIH0sIG1ha2Vyc190aXRsZSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaydcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGRpcmVjdG9ycykge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICflr7zmvJQnLFxcbiAgICAgICAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGxldCBkaXJlY3RvcnNfdGl0bGUgPSBwZGZoKGRpcmVjdG9ycywgJ2EmJlRleHQnKVxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRpcmVjdG9yc190aXRsZSxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgoZGlyZWN0b3JzLCAnYSYmaHJlZicpICsgJz9wYWdlPWZ5cGFnZSNub0hpc3RvcnkjJykucnVsZSgoZGlyZWN0b3JzX3RpdGxlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtaXNzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpXFxuICAgICAgICAgICAgICAgICAgICBzZXRQYWdlVGl0bGUoZGlyZWN0b3JzX3RpdGxlKVxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgICAgICAgICAgICAgfSwgZGlyZWN0b3JzX3RpdGxlKSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpZiAobGFiZWxzTGlzdCkge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfmoIfnrb4nLFxcbiAgICAgICAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGxhYmVsc0xpc3QuZm9yRWFjaChsYWJlbCA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBsYWJlbF90aXRsZSA9IHBkZmgobGFiZWwsICdhJiZUZXh0JylcXG4gICAgICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGxhYmVsX3RpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgobGFiZWwsICdhJiZocmVmJykgKyAnP3BhZ2U9ZnlwYWdlI25vSGlzdG9yeSMnKS5ydWxlKChcXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbF90aXRsZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRQYWdlVGl0bGUobGFiZWxfdGl0bGUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChtaXNzLmQpXFxuICAgICAgICAgICAgICAgICAgICB9LCBsYWJlbF90aXRsZSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH1cXG5cXG5cXG4gICAgICAgIC8qXFxuICAgICAgICBjb25zdCB2aWRlb0xpc3QgPSBwZGZhKGh0bWwsICcuZ3JpZC5ncmlkLWNvbHMtMi5nYXAtNSYmLnJlbGF0aXZlJylcXG5cXG4gICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgdGl0bGU6ICfmjqjojZDop4bpopEnLFxcbiAgICAgICAgICB1cmw6IG1pc3MuZW1wdHksXFxuICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgIGV4dHJhOiB7bGluZVZpc2libGU6IGZhbHNlfSxcXG4gICAgICAgIH0pXFxuICAgICAgICB2aWRlb0xpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICcubG96YWQmJmFsdCcpLFxcbiAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykrJyNub0hpc3RvcnkjJykucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICBjb25zdCBtaXNzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpXFxuICAgICAgICAgICAgICBtaXNzLnZpZGVvUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgICAgICAgICAgIGlmIChtaXNzLnRhc2tMaXN0Lmxlbmd0aCA+IDApIHtcXG4gICAgICAgICAgICAgICAgYmUobWlzcy50YXNrTGlzdClcXG4gICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBwaWNfdXJsOiBwZGZoKGl0ZW0sICcubG96YWQmJmRhdGEtc3JjJykrJ0BSZWZlcmVyPScrbWlzcy51cmwsXFxuICAgICAgICAgICAgZGVzYzogcGRmaChpdGVtLCAnLmFic29sdXRlJiZUZXh0JyksXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcbiAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgICAgICovXFxuXFxuXFxuICAgIH0sXFxuXFxuXFxuICAgIGF2YXRhclBhcnNlOiAodXJsKSA9PiB7XFxuICAgICAgICBjb25zdCBodG1sID0gZmV0Y2godXJsLCB7XFxuICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wKSdcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcbiAgICAgICAgbWlzcy52aWRlb1R5cGUoaHRtbClcXG4gICAgfSxcXG5cXG5cXG4gICAgdGFnc1BhcnNlOiAodXJsKSA9PiB7XFxuICAgICAgICBjb25zdCBodG1sID0gZmV0Y2godXJsLCB7XFxuICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wKSdcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcbiAgICAgICAgbWlzcy52aWRlb1R5cGUoaHRtbClcXG4gICAgfSxcXG5cXG5cXG4gICAgdmlkZW9UeXBlOiAoaHRtbCkgPT4ge1xcbiAgICAgICAgY29uc3QgbGlzdCA9IHBkZmEoaHRtbCwgJy5ncmlkJiYucmVsYXRpdmUnKVxcbiAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgoaXRlbSwgJy5sb3phZCYmYWx0JyksXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykgKyAnI25vSGlzdG9yeSMnKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MudmlkZW9QYXJzZShNWV9VUkwpXFxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQobWlzcy5kKVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1pc3MudGFza0xpc3QubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlKG1pc3MudGFza0xpc3QpXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICBwaWNfdXJsOiBwZGZoKGl0ZW0sICcubG96YWQmJmRhdGEtc3JjJykucmVwbGFjZShcXFwiY292ZXItdFxcXCIsIFxcXCJjb3Zlci1uXFxcIikgKyAnQFJlZmVyZXI9JyArIG1pc3MudXJsLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sICdhJiZhbHQnKS50b1VwcGVyQ2FzZSgpICsgXFxcIuKPsFxcXCIgKyBwZGZoKGl0ZW0sICcuYWJzb2x1dGUmJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiAgICB9LFxcblxcblxcbiAgICB2aWRlb1R5cGUyOiAoaHRtbCkgPT4ge1xcbiAgICAgICAgY29uc3QgbGlzdCA9IHBkZmEoaHRtbCwgJ2JvZHkmJi50aHVtYm5haWwnKVxcbiAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgoaXRlbSwgJy5sb3phZCYmYWx0JyksXFxuICAgICAgICAgICAgICAgIHVybDogJChwZGZoKGl0ZW0sICdhJiZocmVmJykgKyAnI25vSGlzdG9yeSMnKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pc3MgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9taXNzJylcXG4gICAgICAgICAgICAgICAgICAgIG1pc3MudmlkZW9QYXJzZShNWV9VUkwpXFxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQobWlzcy5kKVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1pc3MudGFza0xpc3QubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlKG1pc3MudGFza0xpc3QpXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICBwaWNfdXJsOiBwZGZoKGl0ZW0sICcubG96YWQmJmRhdGEtc3JjJykucmVwbGFjZShcXFwiY292ZXItdFxcXCIsIFxcXCJjb3Zlci1uXFxcIikgKyAnQFJlZmVyZXI9JyArIG1pc3MudXJsLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sICdhJiZhbHQnKS50b1VwcGVyQ2FzZSgpICsgXFxcIuKPsFxcXCIgKyBwZGZoKGl0ZW0sICcuYWJzb2x1dGUmJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8yJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiAgICB9LFxcblxcbiAgICBhcnRpY2xlc1R5cGU6IChodG1sKSA9PiB7XFxuICAgICAgICBjb25zdCBsaXN0ID0gcGRmYShodG1sLCAnLmdyaWQmJi5yb3VuZGVkLWxnJylcXG4gICAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgICAgICBtaXNzLmQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICdpbWcmJmFsdCcpLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQocGRmaChpdGVtLCAnYSYmaHJlZicpICsgJyNub0hpc3RvcnkjJykucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtaXNzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvbWlzcycpXFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBodG1sID0gZmV0Y2goTVlfVVJMLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wKSdcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGh0bWwsICdhcnRpY2xlJiZIdG1sJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IHBkZmgoaXRlbSwgJ2ltZyYmZGF0YS1zcmMnKSArICdAUmVmZXJlcj0nICsgbWlzcy51cmwsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMidcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgfSxcXG5cXG5cXG4gICAgYXZhdGFyVHlwZTogKGh0bWwpID0+IHtcXG4gICAgICAgIGNvbnN0IGxpc3QgPSBwZGZhKGh0bWwsICcubXgtYXV0by5ncmlkJiZsaScpXFxuICAgICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICAgICAgbWlzcy5kLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogcGRmaChpdGVtLCAnaDQmJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgoaXRlbSwgJ2EmJmhyZWYnKSArICc/cGFnZT1meXBhZ2Ujbm9IaXN0b3J5IycpLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy5hdmF0YXJQYXJzZShNWV9VUkwpXFxuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQobWlzcy5kKVxcbiAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgZGVzYzogcGRmaChpdGVtLCAnLnRleHQtbm9yZDEwJiZUZXh0JyksXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IHBkZmgoaXRlbSwgJ2ltZyYmc3JjJykgKyAnQFJlZmVyZXI9JyArIG1pc3MudXJsLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ljb25fcm91bmRfNCdcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgfSxcXG5cXG5cXG4gICAgdGFnc1R5cGU6IChodG1sKSA9PiB7XFxuICAgICAgICBjb25zdCBsaXN0ID0gcGRmYShodG1sLCAnLmdhcC00JiZkaXYnKVxcbiAgICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xcbiAgICAgICAgICAgIG1pc3MuZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgoaXRlbSwgJ2EmJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKHBkZmgoaXRlbSwgJ2EmJmhyZWYnKSArICc/cGFnZT1meXBhZ2Ujbm9IaXN0b3J5IycpLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWlzcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL21pc3MnKVxcbiAgICAgICAgICAgICAgICAgICAgbWlzcy50YWdzUGFyc2UoTVlfVVJMKVxcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KG1pc3MuZClcXG4gICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF80J1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiAgICB9LFxcblxcblxcbiAgICB1cGRhdGVBdmF0YXI6IChwYXJhbSkgPT4ge1xcbiAgICAgICAgY29uc3QgYWN0cmVzc2VzSHRtbCA9IGZldGNoKHBhcmFtLnVybCwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMCknXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIHVwZGF0ZUl0ZW0oe1xcbiAgICAgICAgICAgIHBpY191cmw6IHBkZmgoYWN0cmVzc2VzSHRtbCwgJy5vYmplY3QtY292ZXIub2JqZWN0LXRvcC53LWZ1bGwuaC1mdWxsJiZzcmMnKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2F2YXRhcicsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgaWQ6IHBhcmFtLmluZGV4XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgfSxcXG59XFxuJC5leHBvcnRzID0gbWlzc1wifV0iLCJpY29uIjoiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3l1YW53YW5nb2trLTEvSGlLZXIvcmVmcy9oZWFkcy9tYWluL3R1Ymlhby1tYWluL2VyZGkvMS5wbmciLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment