Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥猫咪@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuW/q+eMq1wiLFwicGF0aFwiOlwia3VhaW1hby52XCIsXCJydWxlXCI6XCJqczpcXG5jb25zdCBrZXkgPSBcXFwia3VhaW1hb1xcXCI7XFxuYWRkTGlzdGVuZXIoXFxcIm9uQ2xvc2VcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxuY29uc3QgQ3J5cHRvVXRpbCA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9hc3NldHMvY3J5cHRvLWphdmEuanNcXFwiKTtcXG5cXG5jb25zdCBkID0gW107XFxuXFxuY29uc3QgY2xhc3NMaXN0ID0gW1xcXCLng63pl6hcXFwiLCBcXFwi5bm/5Zy6XFxcIl07XFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFwiOnR5cGVcXFwiLCBjbGFzc0xpc3RbMF0pO1xcbmlmIChNWV9QQUdFID09PSAxKSB7XFxuICAgIGNsYXNzTGlzdC5mb3JFYWNoKGl0ID0+IGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFwi4oCc4oCcXFxcIiArIGl0ICsgXFxcIuKAneKAnVxcXCIgOiBpdCxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICB1cmw6ICQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKGl0LCBrZXkpID0+IHB1dE15VmFyKGtleSwgaXQpIHx8IHJlZnJlc2hQYWdlKCkgfHwgXFxcImhpa2VyOi8vZW1wdHlcXFwiLCBpdCwga2V5ICsgXFxcIjp0eXBlXFxcIilcXG4gICAgfSkpO1xcbn1cXG5cXG5mdW5jdGlvbiBlbmNyeXB0KHRleHQpIHtcXG4gICAgbGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleChcXFwiMzYzMjM1MzIzMDMyNjYzOTMxMzQzOTZkNjE2ZjZkNjlcXFwiKTtcXG4gICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXCIzNTY1NjY2NDMzNjYzNjMwMzYzMDY1NmQ2MTZmNmQ2OVxcXCIpO1xcbiAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZW5jcnlwdCh0ZXh0LCBrZXksIHtcXG4gICAgICAgIGl2OiBpdixcXG4gICAgICAgIG1vZGU6IFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXCJcXG4gICAgfSk7XFxuICAgIHJldHVybiBlbmNyeXB0ZWQudG9IZXgoKS50b1VwcGVyQ2FzZSgpO1xcbn1cXG5cXG5mdW5jdGlvbiBkZWNyeXB0KHRleHQpIHtcXG4gICAgbGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcIjYyNTIwMmY5MTQ5bWFvbWlcXFwiKTtcXG4gICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFwiNWVmZDNmNjA2MGVtYW9taVxcXCIpO1xcbiAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZGVjcnlwdChDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgodGV4dCksIGtleSwge1xcbiAgICAgICAgaXY6IGl2LFxcbiAgICAgICAgbW9kZTogXFxcIkFFUy9DQkMvUGtjczdQYWRkaW5nXFxcIlxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGVuY3J5cHRlZC50b1N0cmluZygpO1xcbn1cXG5sZXQgcmVxRGF0YSA9IGVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoe1xcbiAgICBwZXJQYWdlOiAxOSxcXG4gICAgcGFnZTogTVlfUEFHRVxcbn0pKTtcXG5sZXQgc291cmNlID0gcG9zdChNWV9QQVJBTVMuYXBpICsgXFxcIi9hcGkvdmlkZW9zL1xcXCIgKyAodHlwZSA9PT0gXFxcIueDremXqFxcXCIgPyBcXFwibGlzdEhvdFxcXCIgOiBcXFwibGlzdEFsbFxcXCIpLCB7XFxuICAgIGJvZHk6IHtcXG4gICAgICAgIGRhdGE6IHJlcURhdGEsXFxuICAgICAgICBzaWc6IG1kNShcXFwiZGF0YT1cXFwiICsgcmVxRGF0YSArIFxcXCJtYW9taV9wYXNzX3h5elxcXCIpXFxuICAgIH1cXG59KTtcXG5sZXQgbGlzdCA9IEpTT04ucGFyc2UoZGVjcnlwdChzb3VyY2UpKS5kYXRhLmxpc3Q7XFxuZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcbiAgICBpZiAoaXQuaXNfY2F0X2FkcykgY29udGludWU7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogU3RyaW5nKGl0Lm12X2NyZWF0ZWQpLnNwbGl0KFxcXCIgXFxcIilbMF0gKyBcXFwiXFxcXG5cXFwiICsgaXQubXZfdGl0bGUsXFxuICAgICAgICBwaWNfdXJsOiBpdC5tdl9pbWdfdXJsLFxcbiAgICAgICAgdXJsOiBpdC5tdl9wbGF5X3VybC5yZXBsYWNlKC9odHRwPzpcXFxcL1xcXFwvLio/XFxcXC8vLCBcXFwiaHR0cHM6Ly9vd2VyYnNkLmh4cXF6dS54eXovXFxcIiksXFxuICAgICAgICBjb2xfdHlwZTogXFxcInBpY18yX2NhcmRcXFwiXFxuICAgIH0pO1xcbn1cXG5cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLni5Dni7jop4bpopFcIixcInBhdGhcIjpcImh1bGkudlwiLFwicnVsZVwiOlwianM6XFxuY29uc3Qga2V5ID0gXFxcImh1bGlcXFwiO1xcbmFkZExpc3RlbmVyKFxcXCJvbkNsb3NlXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcbmNvbnN0IFVSTCA9IE1ZX1BBUkFNUy5hcGkgKyBcXFwiL1xcXCIgKyBNWV9QQVJBTVMua2V5O1xcbmNvbnN0IGNsYXNzSHRtbCA9IGdldE15VmFyKGtleStcXFwiOmNsYXNzXFxcIixcXFwiXFxcIil8fGZldGNoKFVSTCArIFxcXCIvbGlzdC5waHBcXFwiKTtcXG5wdXRNeVZhcihrZXkrXFxcIjpjbGFzc1xcXCIsY2xhc3NIdG1sKTtcXG5jb25zdCBjbGFzc05hbWUgPSBwZGZhKGNsYXNzSHRtbCwgXFxcImJvZHkmJmgxXFxcIikubWFwKHYgPT4gcGRmaCh2LCBcXFwiVGV4dFxcXCIpKTtcXG5jb25zdCBjbGFzc0tleSA9IHBkZmEoY2xhc3NIdG1sLCBcXFwiYm9keSYmZHpcXFwiKS5tYXAodiA9PiBwZGZoKHYsIFxcXCJUZXh0XFxcIikpO1xcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjp0eXBlXFxcIiwgY2xhc3NLZXlbMF0pO1xcbmxldCBkID0gW107XFxuaWYgKE1ZX1BBR0UgPT09IDEpIHtcXG4gICAgY2xhc3NLZXkuZm9yRWFjaCgoaXQsIGkpID0+IGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFwi4oCc4oCcXFxcIiArIGNsYXNzTmFtZVtpXSArIFxcXCLigJ3igJ1cXFwiIDogY2xhc3NOYW1lW2ldLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsIGl0LCBrZXkgKyBcXFwiOnR5cGVcXFwiKVxcbiAgICB9KSk7XFxufVxcbmxldCBsaXN0ID0gSlNPTi5wYXJzZShmZXRjaChVUkwgKyBcXFwiL2xpc3QucGhwP3M9XFxcIiArIHR5cGUgKyBcXFwiJnA9XFxcIiArIE1ZX1BBR0UpKS5kYXRhO1xcblxcbmZvciAobGV0IGl0IG9mIGxpc3QpIHtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBpdC50aXR0bGUsXFxuICAgICAgICBwaWNfdXJsOiBpdC5pbWcsXFxuICAgICAgICB1cmw6IGl0LnVybCxcXG4gICAgICAgIGRlc2M6IGl0LnRpbWUsXFxuICAgICAgICBjb2xfdHlwZTogXFxcIm1vdmllXzJcXFwiXFxuICAgIH0pO1xcbn1cXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlpJzljYrmmZrmiqVcIixcInBhdGhcIjpcInllYmFuLnZcIixcInJ1bGVcIjpcImpzOlxcbmNvbnN0IGtleSA9IFxcXCJ5ZWJhblxcXCI7XFxuYWRkTGlzdGVuZXIoXFxcIm9uQ2xvc2VcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxubGV0IGQgPSBbXTtcXG5sZXQgY2xhc3NMaXN0ID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjpjbGFzc1xcXCIsIFxcXCJcXFwiKSB8fCBmZXRjaChcXFwiaHR0cHM6Ly9hcGkyLmZmdWRpbmdkYW5nLmNvbTo5MDAyL2xlaXhpbmcucGhwP3Q9XFxcIiArIE1ZX1BBUkFNUy5wYWdlVGl0bGUpO1xcbnB1dE15VmFyKGtleSArIFxcXCI6Y2xhc3NcXFwiLCBjbGFzc0xpc3QpO1xcbmNsYXNzTGlzdCA9IGNsYXNzTGlzdC5zcGxpdChcXFwiLVxcXCIpO1xcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjp0eXBlXFxcIiwgY2xhc3NMaXN0WzBdKTtcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcbiAgICBjbGFzc0xpc3QuZm9yRWFjaChpdCA9PiBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcIuKAnOKAnFxcXCIgKyBpdCArIFxcXCLigJ3igJ1cXFwiIDogaXQsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXCJoaWtlcjovL2VtcHR5XFxcIiwgaXQsIGtleSArIFxcXCI6dHlwZVxcXCIpXFxuICAgIH0pKTtcXG59XFxubGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1BBUkFNUy5hcGkgKyBcXFwiL2FwaS96aGNtcHQucGhwP3Q9XFxcIiArIHR5cGUgKyBcXFwiJnA9XFxcIiArIE1ZX1BBR0UgKyBcXFwiJnNqPTFcXFwiKSkuZGF0YTtcXG5cXG5mb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogaXQuYmlhb3RpLFxcbiAgICAgICAgcGljX3VybDogaXQudHVwaWFuLFxcbiAgICAgICAgdXJsOiBpdC5kaXpoaSxcXG4gICAgICAgIGRlc2M6IGl0LnNoaWppYW4gKyBcXFwiXFxcXHRcXFwiICsgaXQubGVpeGluZyxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwibW92aWVfMlxcXCJcXG4gICAgfSk7XFxufVxcbnNldFJlc3VsdChkKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueZvuiKseekvlwiLFwicGF0aFwiOlwiYmFpaHVhLnZcIixcInJ1bGVcIjpcImpzOlxcbmNvbnN0IGtleSA9IFxcXCJiYWlodWFcXFwiO1xcbmFkZExpc3RlbmVyKFxcXCJvbkNsb3NlXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcblxcbmNvbnN0IGNsYXNzSHRtbCA9IGdldE15VmFyKGtleSArIFxcXCI6Y2xhc3NcXFwiLCBcXFwiXFxcIikgfHwgZmV0Y2goTVlfUEFSQU1TLmFwaSArIFxcXCIvdm9kX2xpc3QucGhwP3A9XFxcIiArIE1ZX1BBUkFNUy5rZXksIHtcXG4gICAgaGVhZGVyczoge1xcbiAgICAgICAgYWNjZXB0OiBcXFwidGV4dC9odG1sLCBhcHBsaWNhdGlvbi94aHRtbCt4bWwsIGFwcGxpY2F0aW9uL3htbDsgcT0wLjksICovKjsgcT0wLjhcXFwiXFxuICAgIH1cXG59KTtcXG4vL2xvZyhjbGFzc0h0bWwpXFxucHV0TXlWYXIoa2V5ICsgXFxcIjpjbGFzc1xcXCIsIGNsYXNzSHRtbCk7XFxubGV0IGFyciA9IHBkZmEoY2xhc3NIdG1sLCBcXFwiLnN3aXBlci13cmFwcGVyLDEmJmFcXFwiKS5zbGljZSgxKTtcXG5cXG5jb25zdCBjbGFzc05hbWUgPSBhcnIubWFwKHYgPT4gcGRmaCh2LCBcXFwiVGV4dFxcXCIpKTtcXG5jb25zdCBjbGFzc0tleSA9IGFyci5tYXAodiA9PiBwZGZoKHYsIFxcXCJhJiZocmVmXFxcIikpO1xcblxcbmxldCB0eXBlID0gZ2V0TXlWYXIoa2V5ICsgXFxcIjp0eXBlXFxcIiwgY2xhc3NLZXlbMF0pO1xcblxcbmxldCBkID0gW107XFxuaWYgKE1ZX1BBR0UgPT09IDEpIHtcXG4gICAgY2xhc3NLZXkuZm9yRWFjaCgoaXQsIGkpID0+IGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFwi4oCc4oCcXFxcIiArIGNsYXNzTmFtZVtpXSArIFxcXCLigJ3igJ1cXFwiIDogY2xhc3NOYW1lW2ldLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsIGl0LCBrZXkgKyBcXFwiOnR5cGVcXFwiKVxcbiAgICB9KSk7XFxufVxcbmxldCBsaXN0ID0gcGRmYShmZXRjaChNWV9QQVJBTVMuYXBpICsgdHlwZSArIFxcXCImcGFnZT1cXFwiICsgTVlfUEFHRSwge1xcbiAgICBoZWFkZXJzOiB7XFxuICAgICAgICBhY2NlcHQ6IFxcXCJ0ZXh0L2h0bWwsIGFwcGxpY2F0aW9uL3hodG1sK3htbCwgYXBwbGljYXRpb24veG1sOyBxPTAuOSwgKi8qOyBxPTAuOFxcXCJcXG4gICAgfVxcbn0pLCBcXFwiYm9keSYmLmxlby12aWRlby1pdGVtXFxcIik7XFxuXFxuZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHBkZmgoaXQsIFxcXCJoMiYmVGV4dFxcXCIpLFxcbiAgICAgICAgcGljX3VybDogcGRmaChpdCwgXFxcImltZyYmc3JjXFxcIiksXFxuICAgICAgICB1cmw6IE1ZX1BBUkFNUy5hcGkgKyBwZGZoKGl0LCBcXFwiYSYmaHJlZlxcXCIpLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJtb3ZpZV8yXFxcIlxcbiAgICB9KTtcXG59XFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi54yr5ZKqXCIsXCJwYXRoXCI6XCJtYW9taVwiLFwicnVsZVwiOlwianM6XFxuY29uc3Qga2V5ID0gXFxcIm1hb21pXFxcIjtcXG5hZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsICQudG9TdHJpbmcoa2V5ID0+IGxpc3RNeVZhcktleXMoKS5mb3JFYWNoKGl0ID0+IGl0LmluY2x1ZGVzKGtleSkgJiYgY2xlYXJNeVZhcihpdCkpLCBrZXkpKTtcXG4kLmV4dGVuZCh7XFxuICAgIG1hb21pYXBpOk1ZX1BBUkFNUy5hcGksXFxuICAgIGdldENyeXB0bygpIHtcXG4gICAgICAgIGNvbnN0IENyeXB0b1V0aWwgPSAkLnJlcXVpcmUoXFxcImhpa2VyOi8vYXNzZXRzL2NyeXB0by1qYXZhLmpzXFxcIik7XFxuXFxuICAgICAgICBmdW5jdGlvbiBlbmNyeXB0KHRleHQpIHtcXG4gICAgICAgICAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXCIzNjMyMzUzMjMyMzI2NjM5MzEzNDM5NjUzOTM2MzE2NFxcXCIpO1xcbiAgICAgICAgICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleChcXFwiMzU2NTY2NjQ3NDY2MzYzMDM2MzA2NTMyNmYzMzMzMzBcXFwiKTtcXG4gICAgICAgICAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZW5jcnlwdCh0ZXh0LCBrZXksIHtcXG4gICAgICAgICAgICAgICAgaXY6IGl2LFxcbiAgICAgICAgICAgICAgICBtb2RlOiBcXFwiQUVTL0NCQy9Qa2NzN1BhZGRpbmdcXFwiXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b0hleCgpLnRvVXBwZXJDYXNlKCk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBmdW5jdGlvbiBkZWNyeXB0KHRleHQpIHtcXG4gICAgICAgICAgICBsZXQga2V5ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFwiNjI1MjIyZjkxNDllOTYxZFxcXCIpO1xcbiAgICAgICAgICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcIjVlZmR0ZjYwNjBlMm8zMzBcXFwiKTtcXG4gICAgICAgICAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZGVjcnlwdChDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgodGV4dCksIGtleSwge1xcbiAgICAgICAgICAgICAgICBpdjogaXYsXFxuICAgICAgICAgICAgICAgIG1vZGU6IFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXCJcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICByZXR1cm4gZW5jcnlwdGVkLnRvU3RyaW5nKCk7XFxuICAgICAgICB9XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGVuY3J5cHQsXFxuICAgICAgICAgICAgZGVjcnlwdFxcbiAgICAgICAgfTtcXG4gICAgfVxcbn0pO1xcbmxldCB7XFxuICAgIGVuY3J5cHQsXFxuICAgIGRlY3J5cHRcXG59ID0gJC5nZXRDcnlwdG8oKTtcXG5cXG5jb25zdCBjbGFzc05hbWUgPSBbXFxcIuWOn+WIm1xcXCIsIFxcXCJBSVxcXCIsIFxcXCLkuI3pm4VcXFwiLCBcXFwi5Lqa5rSy5pegL+eggVxcXCIsIFxcXCLmipbpn7PlprlcXFwiLCBcXFwi54Ot5YmnXFxcIiwgXFxcIuS4iee6p1xcXCIsIFxcXCLkurrmsJTlpbMv5LyYXFxcIl07XFxuY29uc3QgY2xhc3NLZXkgPSBbXFxcIjEwXFxcIiwgXFxcIjE2XFxcIiwgXFxcIjVcXFwiLCBcXFwiOVxcXCIsIFxcXCIxMVxcXCIsIFxcXCIxMlxcXCIsIFxcXCIxM1xcXCIsIFxcXCI2XFxcIl07XFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFwiOnR5cGVcXFwiLCBjbGFzc0tleVswXSk7XFxubGV0IGQgPSBbXTtcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcbiAgICBjbGFzc0tleS5mb3JFYWNoKChpdCwgaSkgPT4gZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiB0eXBlID09PSBpdCA/IFxcXCLigJzigJxcXFwiICsgY2xhc3NOYW1lW2ldICsgXFxcIuKAneKAnVxcXCIgOiBjbGFzc05hbWVbaV0sXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXCJoaWtlcjovL2VtcHR5XFxcIiwgaXQsIGtleSArIFxcXCI6dHlwZVxcXCIpXFxuICAgIH0pKTtcXG59XFxuXFxubGV0IHJlcURhdGEgPSBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHtcXG4gICAgc3BlY2lhbF9pZDogTnVtYmVyKHR5cGUpLFxcbiAgICBwYWdlOiBNWV9QQUdFXFxufSkpO1xcblxcbmxldCBsYXp5ID0gJChcXFwiXFxcIikubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICBsZXQge1xcbiAgICAgICAgZW5jcnlwdCxcXG4gICAgICAgIGRlY3J5cHRcXG4gICAgfSA9ICQuZ2V0Q3J5cHRvKCk7XFxuICAgIGxldCBzb3VyY2UgPSBwb3N0KCQubWFvbWlhcGkgKyBcXFwiL2FwaS92aWRlby9kZXRhaWw/cGFyYW1zPVxcXCIgKyBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgIGlkOk51bWJlcihpbnB1dClcXG4gICAgfSkpKTtcXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjcnlwdChzb3VyY2UpKS5kYXRhLnZpZGVvc1swXS5maWxlO1xcbn0pO1xcbnRyeSB7XFxuICAgIGxldCBzb3VyY2UgPSBwb3N0KE1ZX1BBUkFNUy5hcGkgKyBcXFwiL2FwaS9zcGVjaWFsL3ZpZGVvP3BhcmFtcz1cXFwiICsgcmVxRGF0YSk7XFxuICAgIGxldCBsaXN0ID0gSlNPTi5wYXJzZShkZWNyeXB0KHNvdXJjZSkpLmRhdGEuZGF0YTtcXG4gICAgZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogaXQudXBkYXRlX2F0ICsgXFxcIlxcXFxuXFxcIiArIGl0LnZpZGVvX25hbWUsXFxuICAgICAgICAgICAgcGljX3VybDogaXQuaW1hZ2UsXFxuICAgICAgICAgICAgdXJsOiBpdC52aWRlb19pZCtsYXp5LFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicGljXzJfY2FyZFxcXCIsXFxuICAgICAgICAgICAgZXh0cmE6e1xcbiAgICAgICAgICAgICAgICBpbmhlcml0VGl0bGU6IGZhbHNlXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSk7XFxuICAgIH1cXG59IGNhdGNoIChlKSB7XFxuXFxufVxcbnNldFJlc3VsdChkKTtcIn1dLFwicGFyYW1zXCI6XCJ7XFxcImFwaVxcXCI6XFxcImh0dHA6Ly8xMTkuMjguNTIuMTkzOjgwODlcXFwiLFxcXCJrZXlcXFwiOlxcXCJrdWFpbWFvXFxcIixcXFwicGFnZVRpdGxlXFxcIjpcXFwi54yr5ZKqXFxcIn1cIixcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi5beo6a2UXCIsXCJ2ZXJzaW9uXCI6MCxcInVybFwiOlwiaGlrZXI6Ly9wYWdlL21hb21pP3BhZ2U9ZnlwYWdlXCIsXCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwiZmluZF9ydWxlXCI6XCJqczpcXG5jb25zdCBrZXkgPSBcXFwibWFvbWlcXFwiO1xcbmFkZExpc3RlbmVyKFxcXCJvbkNsb3NlXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcbiQuZXh0ZW5kKHtcXG4gICAgbWFvbWlhcGk6TVlfUEFSQU1TLmFwaSxcXG4gICAgZ2V0Q3J5cHRvKCkge1xcbiAgICAgICAgY29uc3QgQ3J5cHRvVXRpbCA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9hc3NldHMvY3J5cHRvLWphdmEuanNcXFwiKTtcXG5cXG4gICAgICAgIGZ1bmN0aW9uIGVuY3J5cHQodGV4dCkge1xcbiAgICAgICAgICAgIGxldCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgoXFxcIjM2MzIzNTMyMzIzMjY2MzkzMTM0Mzk2NTM5MzYzMTY0XFxcIik7XFxuICAgICAgICAgICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSGV4KFxcXCIzNTY1NjY2NDc0NjYzNjMwMzYzMDY1MzI2ZjMzMzMzMFxcXCIpO1xcbiAgICAgICAgICAgIGxldCBlbmNyeXB0ZWQgPSBDcnlwdG9VdGlsLkFFUy5lbmNyeXB0KHRleHQsIGtleSwge1xcbiAgICAgICAgICAgICAgICBpdjogaXYsXFxuICAgICAgICAgICAgICAgIG1vZGU6IFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXCJcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICByZXR1cm4gZW5jcnlwdGVkLnRvSGV4KCkudG9VcHBlckNhc2UoKTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGZ1bmN0aW9uIGRlY3J5cHQodGV4dCkge1xcbiAgICAgICAgICAgIGxldCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXCI2MjUyMjJmOTE0OWU5NjFkXFxcIik7XFxuICAgICAgICAgICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFwiNWVmZHRmNjA2MGUybzMzMFxcXCIpO1xcbiAgICAgICAgICAgIGxldCBlbmNyeXB0ZWQgPSBDcnlwdG9VdGlsLkFFUy5kZWNyeXB0KENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleCh0ZXh0KSwga2V5LCB7XFxuICAgICAgICAgICAgICAgIGl2OiBpdixcXG4gICAgICAgICAgICAgICAgbW9kZTogXFxcIkFFUy9DQkMvUGtjczdQYWRkaW5nXFxcIlxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIHJldHVybiBlbmNyeXB0ZWQudG9TdHJpbmcoKTtcXG4gICAgICAgIH1cXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgZW5jcnlwdCxcXG4gICAgICAgICAgICBkZWNyeXB0XFxuICAgICAgICB9O1xcbiAgICB9XFxufSk7XFxubGV0IHtcXG4gICAgZW5jcnlwdCxcXG4gICAgZGVjcnlwdFxcbn0gPSAkLmdldENyeXB0bygpO1xcblxcbmNvbnN0IGNsYXNzTmFtZSA9IFtcXFwi5Y6f5YibXFxcIiwgXFxcIkFJXFxcIiwgXFxcIuS4jembhVxcXCIsIFxcXCLkuprmtLLml6Av56CBXFxcIiwgXFxcIuaKlumfs+WmuVxcXCIsIFxcXCLng63liadcXFwiLCBcXFwi5LiJ57qnXFxcIiwgXFxcIuS6uuawlOWlsy/kvJhcXFwiXTtcXG5jb25zdCBjbGFzc0tleSA9IFtcXFwiMTBcXFwiLCBcXFwiMTZcXFwiLCBcXFwiNVxcXCIsIFxcXCI5XFxcIiwgXFxcIjExXFxcIiwgXFxcIjEyXFxcIiwgXFxcIjEzXFxcIiwgXFxcIjZcXFwiXTtcXG5sZXQgdHlwZSA9IGdldE15VmFyKGtleSArIFxcXCI6dHlwZVxcXCIsIGNsYXNzS2V5WzBdKTtcXG5sZXQgZCA9IFtdO1xcbmlmIChNWV9QQUdFID09PSAxKSB7XFxuICAgIGNsYXNzS2V5LmZvckVhY2goKGl0LCBpKSA9PiBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHR5cGUgPT09IGl0ID8gXFxcIuKAnOKAnFxcXCIgKyBjbGFzc05hbWVbaV0gKyBcXFwi4oCd4oCdXFxcIiA6IGNsYXNzTmFtZVtpXSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICB1cmw6ICQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKGl0LCBrZXkpID0+IHB1dE15VmFyKGtleSwgaXQpIHx8IHJlZnJlc2hQYWdlKCkgfHwgXFxcImhpa2VyOi8vZW1wdHlcXFwiLCBpdCwga2V5ICsgXFxcIjp0eXBlXFxcIilcXG4gICAgfSkpO1xcbn1cXG5cXG5sZXQgcmVxRGF0YSA9IGVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoe1xcbiAgICBzcGVjaWFsX2lkOiBOdW1iZXIodHlwZSksXFxuICAgIHBhZ2U6IE1ZX1BBR0VcXG59KSk7XFxuXFxubGV0IGxhenkgPSAkKFxcXCJcXFwiKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgIGxldCB7XFxuICAgICAgICBlbmNyeXB0LFxcbiAgICAgICAgZGVjcnlwdFxcbiAgICB9ID0gJC5nZXRDcnlwdG8oKTtcXG4gICAgbGV0IHNvdXJjZSA9IHBvc3QoJC5tYW9taWFwaSArIFxcXCIvYXBpL3ZpZGVvL2RldGFpbD9wYXJhbXM9XFxcIiArIGVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgaWQ6TnVtYmVyKGlucHV0KVxcbiAgICB9KSkpO1xcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNyeXB0KHNvdXJjZSkpLmRhdGEudmlkZW9zWzBdLmZpbGU7XFxufSk7XFxudHJ5IHtcXG4gICAgbGV0IHNvdXJjZSA9IHBvc3QoTVlfUEFSQU1TLmFwaSArIFxcXCIvYXBpL3NwZWNpYWwvdmlkZW8/cGFyYW1zPVxcXCIgKyByZXFEYXRhKTtcXG4gICAgbGV0IGxpc3QgPSBKU09OLnBhcnNlKGRlY3J5cHQoc291cmNlKSkuZGF0YS5kYXRhO1xcbiAgICBmb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBpdC51cGRhdGVfYXQgKyBcXFwiXFxcXG5cXFwiICsgaXQudmlkZW9fbmFtZSxcXG4gICAgICAgICAgICBwaWNfdXJsOiBpdC5pbWFnZSxcXG4gICAgICAgICAgICB1cmw6IGl0LnZpZGVvX2lkK2xhenksXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJwaWNfMl9jYXJkXFxcIixcXG4gICAgICAgICAgICBleHRyYTp7XFxuICAgICAgICAgICAgICAgIGluaGVyaXRUaXRsZTogZmFsc2VcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgfVxcbn0gY2F0Y2ggKGUpIHtcXG5cXG59XFxuc2V0UmVzdWx0KGQpO1wiLFwiZ3JvdXBcIjpcIuW8gOWPkeS4reW/g1wiLFwidWFcIjpcIm1vYmlsZVwiLFwicHJlUnVsZVwiOlwiXCIsXCJwYWdlc1wiOlwiW3tcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuW/q+eMq1xcXCIsXFxcInBhdGhcXFwiOlxcXCJrdWFpbWFvLnZcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5jb25zdCBrZXkgPSBcXFxcXFxcImt1YWltYW9cXFxcXFxcIjtcXFxcbmFkZExpc3RlbmVyKFxcXFxcXFwib25DbG9zZVxcXFxcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxcXG5jb25zdCBDcnlwdG9VdGlsID0gJC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9hc3NldHMvY3J5cHRvLWphdmEuanNcXFxcXFxcIik7XFxcXG5cXFxcbmNvbnN0IGQgPSBbXTtcXFxcblxcXFxuY29uc3QgY2xhc3NMaXN0ID0gW1xcXFxcXFwi54Ot6ZeoXFxcXFxcXCIsIFxcXFxcXFwi5bm/5Zy6XFxcXFxcXCJdO1xcXFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIsIGNsYXNzTGlzdFswXSk7XFxcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcXFxuICAgIGNsYXNzTGlzdC5mb3JFYWNoKGl0ID0+IGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiB0eXBlID09PSBpdCA/IFxcXFxcXFwi4oCc4oCcXFxcXFxcXCIgKyBpdCArIFxcXFxcXFwi4oCd4oCdXFxcXFxcXCIgOiBpdCxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLFxcXFxuICAgICAgICB1cmw6ICQoXFxcXFxcXCIjbm9Mb2FkaW5nI1xcXFxcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIiwgaXQsIGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIilcXFxcbiAgICB9KSk7XFxcXG59XFxcXG5cXFxcbmZ1bmN0aW9uIGVuY3J5cHQodGV4dCkge1xcXFxuICAgIGxldCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgoXFxcXFxcXCIzNjMyMzUzMjMwMzI2NjM5MzEzNDM5NmQ2MTZmNmQ2OVxcXFxcXFwiKTtcXFxcbiAgICBsZXQgaXYgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgoXFxcXFxcXCIzNTY1NjY2NDMzNjYzNjMwMzYzMDY1NmQ2MTZmNmQ2OVxcXFxcXFwiKTtcXFxcbiAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZW5jcnlwdCh0ZXh0LCBrZXksIHtcXFxcbiAgICAgICAgaXY6IGl2LFxcXFxuICAgICAgICBtb2RlOiBcXFxcXFxcIkFFUy9DQkMvUGtjczdQYWRkaW5nXFxcXFxcXCJcXFxcbiAgICB9KTtcXFxcbiAgICByZXR1cm4gZW5jcnlwdGVkLnRvSGV4KCkudG9VcHBlckNhc2UoKTtcXFxcbn1cXFxcblxcXFxuZnVuY3Rpb24gZGVjcnlwdCh0ZXh0KSB7XFxcXG4gICAgbGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcXFxcXCI2MjUyMDJmOTE0OW1hb21pXFxcXFxcXCIpO1xcXFxuICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcXFxcXCI1ZWZkM2Y2MDYwZW1hb21pXFxcXFxcXCIpO1xcXFxuICAgIGxldCBlbmNyeXB0ZWQgPSBDcnlwdG9VdGlsLkFFUy5kZWNyeXB0KENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleCh0ZXh0KSwga2V5LCB7XFxcXG4gICAgICAgIGl2OiBpdixcXFxcbiAgICAgICAgbW9kZTogXFxcXFxcXCJBRVMvQ0JDL1BrY3M3UGFkZGluZ1xcXFxcXFwiXFxcXG4gICAgfSk7XFxcXG4gICAgcmV0dXJuIGVuY3J5cHRlZC50b1N0cmluZygpO1xcXFxufVxcXFxubGV0IHJlcURhdGEgPSBlbmNyeXB0KEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICBwZXJQYWdlOiAxOSxcXFxcbiAgICBwYWdlOiBNWV9QQUdFXFxcXG59KSk7XFxcXG5sZXQgc291cmNlID0gcG9zdChNWV9QQVJBTVMuYXBpICsgXFxcXFxcXCIvYXBpL3ZpZGVvcy9cXFxcXFxcIiArICh0eXBlID09PSBcXFxcXFxcIueDremXqFxcXFxcXFwiID8gXFxcXFxcXCJsaXN0SG90XFxcXFxcXCIgOiBcXFxcXFxcImxpc3RBbGxcXFxcXFxcIiksIHtcXFxcbiAgICBib2R5OiB7XFxcXG4gICAgICAgIGRhdGE6IHJlcURhdGEsXFxcXG4gICAgICAgIHNpZzogbWQ1KFxcXFxcXFwiZGF0YT1cXFxcXFxcIiArIHJlcURhdGEgKyBcXFxcXFxcIm1hb21pX3Bhc3NfeHl6XFxcXFxcXCIpXFxcXG4gICAgfVxcXFxufSk7XFxcXG5sZXQgbGlzdCA9IEpTT04ucGFyc2UoZGVjcnlwdChzb3VyY2UpKS5kYXRhLmxpc3Q7XFxcXG5mb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxcXG4gICAgaWYgKGl0LmlzX2NhdF9hZHMpIGNvbnRpbnVlO1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBTdHJpbmcoaXQubXZfY3JlYXRlZCkuc3BsaXQoXFxcXFxcXCIgXFxcXFxcXCIpWzBdICsgXFxcXFxcXCJcXFxcXFxcXG5cXFxcXFxcIiArIGl0Lm12X3RpdGxlLFxcXFxuICAgICAgICBwaWNfdXJsOiBpdC5tdl9pbWdfdXJsLFxcXFxuICAgICAgICB1cmw6IGl0Lm12X3BsYXlfdXJsLnJlcGxhY2UoL2h0dHA/OlxcXFxcXFxcL1xcXFxcXFxcLy4qP1xcXFxcXFxcLy8sIFxcXFxcXFwiaHR0cHM6Ly9vd2VyYnNkLmh4cXF6dS54eXovXFxcXFxcXCIpLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJwaWNfMl9jYXJkXFxcXFxcXCJcXFxcbiAgICB9KTtcXFxcbn1cXFxcblxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIueLkOeLuOinhumikVxcXCIsXFxcInBhdGhcXFwiOlxcXCJodWxpLnZcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5jb25zdCBrZXkgPSBcXFxcXFxcImh1bGlcXFxcXFxcIjtcXFxcbmFkZExpc3RlbmVyKFxcXFxcXFwib25DbG9zZVxcXFxcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxcXG5jb25zdCBVUkwgPSBNWV9QQVJBTVMuYXBpICsgXFxcXFxcXCIvXFxcXFxcXCIgKyBNWV9QQVJBTVMua2V5O1xcXFxuY29uc3QgY2xhc3NIdG1sID0gZ2V0TXlWYXIoa2V5K1xcXFxcXFwiOmNsYXNzXFxcXFxcXCIsXFxcXFxcXCJcXFxcXFxcIil8fGZldGNoKFVSTCArIFxcXFxcXFwiL2xpc3QucGhwXFxcXFxcXCIpO1xcXFxucHV0TXlWYXIoa2V5K1xcXFxcXFwiOmNsYXNzXFxcXFxcXCIsY2xhc3NIdG1sKTtcXFxcbmNvbnN0IGNsYXNzTmFtZSA9IHBkZmEoY2xhc3NIdG1sLCBcXFxcXFxcImJvZHkmJmgxXFxcXFxcXCIpLm1hcCh2ID0+IHBkZmgodiwgXFxcXFxcXCJUZXh0XFxcXFxcXCIpKTtcXFxcbmNvbnN0IGNsYXNzS2V5ID0gcGRmYShjbGFzc0h0bWwsIFxcXFxcXFwiYm9keSYmZHpcXFxcXFxcIikubWFwKHYgPT4gcGRmaCh2LCBcXFxcXFxcIlRleHRcXFxcXFxcIikpO1xcXFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIsIGNsYXNzS2V5WzBdKTtcXFxcbmxldCBkID0gW107XFxcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcXFxuICAgIGNsYXNzS2V5LmZvckVhY2goKGl0LCBpKSA9PiBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFxcXFxcIuKAnOKAnFxcXFxcXFwiICsgY2xhc3NOYW1lW2ldICsgXFxcXFxcXCLigJ3igJ1cXFxcXFxcIiA6IGNsYXNzTmFtZVtpXSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLFxcXFxuICAgICAgICB1cmw6ICQoXFxcXFxcXCIjbm9Mb2FkaW5nI1xcXFxcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIiwgaXQsIGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIilcXFxcbiAgICB9KSk7XFxcXG59XFxcXG5sZXQgbGlzdCA9IEpTT04ucGFyc2UoZmV0Y2goVVJMICsgXFxcXFxcXCIvbGlzdC5waHA/cz1cXFxcXFxcIiArIHR5cGUgKyBcXFxcXFxcIiZwPVxcXFxcXFwiICsgTVlfUEFHRSkpLmRhdGE7XFxcXG5cXFxcbmZvciAobGV0IGl0IG9mIGxpc3QpIHtcXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogaXQudGl0dGxlLFxcXFxuICAgICAgICBwaWNfdXJsOiBpdC5pbWcsXFxcXG4gICAgICAgIHVybDogaXQudXJsLFxcXFxuICAgICAgICBkZXNjOiBpdC50aW1lLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJtb3ZpZV8yXFxcXFxcXCJcXFxcbiAgICB9KTtcXFxcbn1cXFxcbnNldFJlc3VsdChkKTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLlpJzljYrmmZrmiqVcXFwiLFxcXCJwYXRoXFxcIjpcXFwieWViYW4udlxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmNvbnN0IGtleSA9IFxcXFxcXFwieWViYW5cXFxcXFxcIjtcXFxcbmFkZExpc3RlbmVyKFxcXFxcXFwib25DbG9zZVxcXFxcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxcXG5sZXQgZCA9IFtdO1xcXFxubGV0IGNsYXNzTGlzdCA9IGdldE15VmFyKGtleSArIFxcXFxcXFwiOmNsYXNzXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXCIpIHx8IGZldGNoKFxcXFxcXFwiaHR0cHM6Ly9hcGkyLmZmdWRpbmdkYW5nLmNvbTo5MDAyL2xlaXhpbmcucGhwP3Q9XFxcXFxcXCIgKyBNWV9QQVJBTVMucGFnZVRpdGxlKTtcXFxcbnB1dE15VmFyKGtleSArIFxcXFxcXFwiOmNsYXNzXFxcXFxcXCIsIGNsYXNzTGlzdCk7XFxcXG5jbGFzc0xpc3QgPSBjbGFzc0xpc3Quc3BsaXQoXFxcXFxcXCItXFxcXFxcXCIpO1xcXFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIsIGNsYXNzTGlzdFswXSk7XFxcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcXFxuICAgIGNsYXNzTGlzdC5mb3JFYWNoKGl0ID0+IGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiB0eXBlID09PSBpdCA/IFxcXFxcXFwi4oCc4oCcXFxcXFxcXCIgKyBpdCArIFxcXFxcXFwi4oCd4oCdXFxcXFxcXCIgOiBpdCxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLFxcXFxuICAgICAgICB1cmw6ICQoXFxcXFxcXCIjbm9Mb2FkaW5nI1xcXFxcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIiwgaXQsIGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIilcXFxcbiAgICB9KSk7XFxcXG59XFxcXG5sZXQgbGlzdCA9IEpTT04ucGFyc2UoZmV0Y2goTVlfUEFSQU1TLmFwaSArIFxcXFxcXFwiL2FwaS96aGNtcHQucGhwP3Q9XFxcXFxcXCIgKyB0eXBlICsgXFxcXFxcXCImcD1cXFxcXFxcIiArIE1ZX1BBR0UgKyBcXFxcXFxcIiZzaj0xXFxcXFxcXCIpKS5kYXRhO1xcXFxuXFxcXG5mb3IgKGxldCBpdCBvZiBsaXN0KSB7XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IGl0LmJpYW90aSxcXFxcbiAgICAgICAgcGljX3VybDogaXQudHVwaWFuLFxcXFxuICAgICAgICB1cmw6IGl0LmRpemhpLFxcXFxuICAgICAgICBkZXNjOiBpdC5zaGlqaWFuICsgXFxcXFxcXCJcXFxcXFxcXHRcXFxcXFxcIiArIGl0LmxlaXhpbmcsXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcIm1vdmllXzJcXFxcXFxcIlxcXFxuICAgIH0pO1xcXFxufVxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIueZvuiKseekvlxcXCIsXFxcInBhdGhcXFwiOlxcXCJiYWlodWEudlxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmNvbnN0IGtleSA9IFxcXFxcXFwiYmFpaHVhXFxcXFxcXCI7XFxcXG5hZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgJC50b1N0cmluZyhrZXkgPT4gbGlzdE15VmFyS2V5cygpLmZvckVhY2goaXQgPT4gaXQuaW5jbHVkZXMoa2V5KSAmJiBjbGVhck15VmFyKGl0KSksIGtleSkpO1xcXFxuXFxcXG5jb25zdCBjbGFzc0h0bWwgPSBnZXRNeVZhcihrZXkgKyBcXFxcXFxcIjpjbGFzc1xcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFwiKSB8fCBmZXRjaChNWV9QQVJBTVMuYXBpICsgXFxcXFxcXCIvdm9kX2xpc3QucGhwP3A9XFxcXFxcXCIgKyBNWV9QQVJBTVMua2V5LCB7XFxcXG4gICAgaGVhZGVyczoge1xcXFxuICAgICAgICBhY2NlcHQ6IFxcXFxcXFwidGV4dC9odG1sLCBhcHBsaWNhdGlvbi94aHRtbCt4bWwsIGFwcGxpY2F0aW9uL3htbDsgcT0wLjksICovKjsgcT0wLjhcXFxcXFxcIlxcXFxuICAgIH1cXFxcbn0pO1xcXFxuLy9sb2coY2xhc3NIdG1sKVxcXFxucHV0TXlWYXIoa2V5ICsgXFxcXFxcXCI6Y2xhc3NcXFxcXFxcIiwgY2xhc3NIdG1sKTtcXFxcbmxldCBhcnIgPSBwZGZhKGNsYXNzSHRtbCwgXFxcXFxcXCIuc3dpcGVyLXdyYXBwZXIsMSYmYVxcXFxcXFwiKS5zbGljZSgxKTtcXFxcblxcXFxuY29uc3QgY2xhc3NOYW1lID0gYXJyLm1hcCh2ID0+IHBkZmgodiwgXFxcXFxcXCJUZXh0XFxcXFxcXCIpKTtcXFxcbmNvbnN0IGNsYXNzS2V5ID0gYXJyLm1hcCh2ID0+IHBkZmgodiwgXFxcXFxcXCJhJiZocmVmXFxcXFxcXCIpKTtcXFxcblxcXFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIsIGNsYXNzS2V5WzBdKTtcXFxcblxcXFxubGV0IGQgPSBbXTtcXFxcbmlmIChNWV9QQUdFID09PSAxKSB7XFxcXG4gICAgY2xhc3NLZXkuZm9yRWFjaCgoaXQsIGkpID0+IGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiB0eXBlID09PSBpdCA/IFxcXFxcXFwi4oCc4oCcXFxcXFxcXCIgKyBjbGFzc05hbWVbaV0gKyBcXFxcXFxcIuKAneKAnVxcXFxcXFwiIDogY2xhc3NOYW1lW2ldLFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJzY3JvbGxfYnV0dG9uXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogJChcXFxcXFxcIiNub0xvYWRpbmcjXFxcXFxcXCIpLmxhenlSdWxlKChpdCwga2V5KSA9PiBwdXRNeVZhcihrZXksIGl0KSB8fCByZWZyZXNoUGFnZSgpIHx8IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiLCBpdCwga2V5ICsgXFxcXFxcXCI6dHlwZVxcXFxcXFwiKVxcXFxuICAgIH0pKTtcXFxcbn1cXFxcbmxldCBsaXN0ID0gcGRmYShmZXRjaChNWV9QQVJBTVMuYXBpICsgdHlwZSArIFxcXFxcXFwiJnBhZ2U9XFxcXFxcXCIgKyBNWV9QQUdFLCB7XFxcXG4gICAgaGVhZGVyczoge1xcXFxuICAgICAgICBhY2NlcHQ6IFxcXFxcXFwidGV4dC9odG1sLCBhcHBsaWNhdGlvbi94aHRtbCt4bWwsIGFwcGxpY2F0aW9uL3htbDsgcT0wLjksICovKjsgcT0wLjhcXFxcXFxcIlxcXFxuICAgIH1cXFxcbn0pLCBcXFxcXFxcImJvZHkmJi5sZW8tdmlkZW8taXRlbVxcXFxcXFwiKTtcXFxcblxcXFxuZm9yIChsZXQgaXQgb2YgbGlzdCkge1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBwZGZoKGl0LCBcXFxcXFxcImgyJiZUZXh0XFxcXFxcXCIpLFxcXFxuICAgICAgICBwaWNfdXJsOiBwZGZoKGl0LCBcXFxcXFxcImltZyYmc3JjXFxcXFxcXCIpLFxcXFxuICAgICAgICB1cmw6IE1ZX1BBUkFNUy5hcGkgKyBwZGZoKGl0LCBcXFxcXFxcImEmJmhyZWZcXFxcXFxcIiksXFxcXG4gICAgICAgIGNvbF90eXBlOiBcXFxcXFxcIm1vdmllXzJcXFxcXFxcIlxcXFxuICAgIH0pO1xcXFxufVxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIueMq+WSqlxcXCIsXFxcInBhdGhcXFwiOlxcXCJtYW9taVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmNvbnN0IGtleSA9IFxcXFxcXFwibWFvbWlcXFxcXFxcIjtcXFxcbmFkZExpc3RlbmVyKFxcXFxcXFwib25DbG9zZVxcXFxcXFwiLCAkLnRvU3RyaW5nKGtleSA9PiBsaXN0TXlWYXJLZXlzKCkuZm9yRWFjaChpdCA9PiBpdC5pbmNsdWRlcyhrZXkpICYmIGNsZWFyTXlWYXIoaXQpKSwga2V5KSk7XFxcXG4kLmV4dGVuZCh7XFxcXG4gICAgbWFvbWlhcGk6TVlfUEFSQU1TLmFwaSxcXFxcbiAgICBnZXRDcnlwdG8oKSB7XFxcXG4gICAgICAgIGNvbnN0IENyeXB0b1V0aWwgPSAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL2Fzc2V0cy9jcnlwdG8tamF2YS5qc1xcXFxcXFwiKTtcXFxcblxcXFxuICAgICAgICBmdW5jdGlvbiBlbmNyeXB0KHRleHQpIHtcXFxcbiAgICAgICAgICAgIGxldCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgoXFxcXFxcXCIzNjMyMzUzMjMyMzI2NjM5MzEzNDM5NjUzOTM2MzE2NFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgIGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUhleChcXFxcXFxcIjM1NjU2NjY0NzQ2NjM2MzAzNjMwNjUzMjZmMzMzMzMwXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgbGV0IGVuY3J5cHRlZCA9IENyeXB0b1V0aWwuQUVTLmVuY3J5cHQodGV4dCwga2V5LCB7XFxcXG4gICAgICAgICAgICAgICAgaXY6IGl2LFxcXFxuICAgICAgICAgICAgICAgIG1vZGU6IFxcXFxcXFwiQUVTL0NCQy9Qa2NzN1BhZGRpbmdcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICByZXR1cm4gZW5jcnlwdGVkLnRvSGV4KCkudG9VcHBlckNhc2UoKTtcXFxcbiAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgIGZ1bmN0aW9uIGRlY3J5cHQodGV4dCkge1xcXFxuICAgICAgICAgICAgbGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcXFxcXCI2MjUyMjJmOTE0OWU5NjFkXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgbGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFxcXFxcIjVlZmR0ZjYwNjBlMm8zMzBcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICBsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZGVjcnlwdChDcnlwdG9VdGlsLkRhdGEucGFyc2VIZXgodGV4dCksIGtleSwge1xcXFxuICAgICAgICAgICAgICAgIGl2OiBpdixcXFxcbiAgICAgICAgICAgICAgICBtb2RlOiBcXFxcXFxcIkFFUy9DQkMvUGtjczdQYWRkaW5nXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b1N0cmluZygpO1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHJldHVybiB7XFxcXG4gICAgICAgICAgICBlbmNyeXB0LFxcXFxuICAgICAgICAgICAgZGVjcnlwdFxcXFxuICAgICAgICB9O1xcXFxuICAgIH1cXFxcbn0pO1xcXFxubGV0IHtcXFxcbiAgICBlbmNyeXB0LFxcXFxuICAgIGRlY3J5cHRcXFxcbn0gPSAkLmdldENyeXB0bygpO1xcXFxuXFxcXG5jb25zdCBjbGFzc05hbWUgPSBbXFxcXFxcXCLljp/liJtcXFxcXFxcIiwgXFxcXFxcXCJBSVxcXFxcXFwiLCBcXFxcXFxcIuS4jembhVxcXFxcXFwiLCBcXFxcXFxcIuS6mua0suaXoC/noIFcXFxcXFxcIiwgXFxcXFxcXCLmipbpn7PlprlcXFxcXFxcIiwgXFxcXFxcXCLng63liadcXFxcXFxcIiwgXFxcXFxcXCLkuInnuqdcXFxcXFxcIiwgXFxcXFxcXCLkurrmsJTlpbMv5LyYXFxcXFxcXCJdO1xcXFxuY29uc3QgY2xhc3NLZXkgPSBbXFxcXFxcXCIxMFxcXFxcXFwiLCBcXFxcXFxcIjE2XFxcXFxcXCIsIFxcXFxcXFwiNVxcXFxcXFwiLCBcXFxcXFxcIjlcXFxcXFxcIiwgXFxcXFxcXCIxMVxcXFxcXFwiLCBcXFxcXFxcIjEyXFxcXFxcXCIsIFxcXFxcXFwiMTNcXFxcXFxcIiwgXFxcXFxcXCI2XFxcXFxcXCJdO1xcXFxubGV0IHR5cGUgPSBnZXRNeVZhcihrZXkgKyBcXFxcXFxcIjp0eXBlXFxcXFxcXCIsIGNsYXNzS2V5WzBdKTtcXFxcbmxldCBkID0gW107XFxcXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcXFxuICAgIGNsYXNzS2V5LmZvckVhY2goKGl0LCBpKSA9PiBkLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogdHlwZSA9PT0gaXQgPyBcXFxcXFxcIuKAnOKAnFxcXFxcXFwiICsgY2xhc3NOYW1lW2ldICsgXFxcXFxcXCLigJ3igJ1cXFxcXFxcIiA6IGNsYXNzTmFtZVtpXSxcXFxcbiAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLFxcXFxuICAgICAgICB1cmw6ICQoXFxcXFxcXCIjbm9Mb2FkaW5nI1xcXFxcXFwiKS5sYXp5UnVsZSgoaXQsIGtleSkgPT4gcHV0TXlWYXIoa2V5LCBpdCkgfHwgcmVmcmVzaFBhZ2UoKSB8fCBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIiwgaXQsIGtleSArIFxcXFxcXFwiOnR5cGVcXFxcXFxcIilcXFxcbiAgICB9KSk7XFxcXG59XFxcXG5cXFxcbmxldCByZXFEYXRhID0gZW5jcnlwdChKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgc3BlY2lhbF9pZDogTnVtYmVyKHR5cGUpLFxcXFxuICAgIHBhZ2U6IE1ZX1BBR0VcXFxcbn0pKTtcXFxcblxcXFxubGV0IGxhenkgPSAkKFxcXFxcXFwiXFxcXFxcXCIpLmxhenlSdWxlKCgpID0+IHtcXFxcbiAgICBsZXQge1xcXFxuICAgICAgICBlbmNyeXB0LFxcXFxuICAgICAgICBkZWNyeXB0XFxcXG4gICAgfSA9ICQuZ2V0Q3J5cHRvKCk7XFxcXG4gICAgbGV0IHNvdXJjZSA9IHBvc3QoJC5tYW9taWFwaSArIFxcXFxcXFwiL2FwaS92aWRlby9kZXRhaWw/cGFyYW1zPVxcXFxcXFwiICsgZW5jcnlwdChKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgICAgIGlkOk51bWJlcihpbnB1dClcXFxcbiAgICB9KSkpO1xcXFxuICAgIHJldHVybiBKU09OLnBhcnNlKGRlY3J5cHQoc291cmNlKSkuZGF0YS52aWRlb3NbMF0uZmlsZTtcXFxcbn0pO1xcXFxudHJ5IHtcXFxcbiAgICBsZXQgc291cmNlID0gcG9zdChNWV9QQVJBTVMuYXBpICsgXFxcXFxcXCIvYXBpL3NwZWNpYWwvdmlkZW8/cGFyYW1zPVxcXFxcXFwiICsgcmVxRGF0YSk7XFxcXG4gICAgbGV0IGxpc3QgPSBKU09OLnBhcnNlKGRlY3J5cHQoc291cmNlKSkuZGF0YS5kYXRhO1xcXFxuICAgIGZvciAobGV0IGl0IG9mIGxpc3QpIHtcXFxcbiAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiBpdC51cGRhdGVfYXQgKyBcXFxcXFxcIlxcXFxcXFxcblxcXFxcXFwiICsgaXQudmlkZW9fbmFtZSxcXFxcbiAgICAgICAgICAgIHBpY191cmw6IGl0LmltYWdlLFxcXFxuICAgICAgICAgICAgdXJsOiBpdC52aWRlb19pZCtsYXp5LFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwicGljXzJfY2FyZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgZXh0cmE6e1xcXFxuICAgICAgICAgICAgICAgIGluaGVyaXRUaXRsZTogZmFsc2VcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfVxcXFxufSBjYXRjaCAoZSkge1xcXFxuXFxcXG59XFxcXG5zZXRSZXN1bHQoZCk7XFxcIn1dXCIsXCJwcm94eVwiOlwiXCJ9IiwicGljVXJsIjoiaHR0cDovL2FwaS54a2ExLnRvcC82aW1nL21hb21pc3EucG5nIiwidGl0bGUiOiLnjKvlkqoifQ==
Add Comment
Please, Sign In to add comment