Advertisement
xiaomianao666

邀您一起看:CV影视

Jul 15th, 2022
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥CV影视@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJqczpcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9jaGFwdGVyJywge30pKS5ydWxlKTtcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaOpeWPo+aVsOaNrjIwMjIvNC8xXCIsXCJwYXRoXCI6XCJSZXNDb2RlXCIsXCJydWxlXCI6XCJ7XFxuICAgIFxcXCJkYXRhXFxcIjogW3tcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5LyY6LSoXFxcIixcXG4gICAgICAgICAgICBcXFwibGlzdFxcXCI6IFt7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiMzAw55yL5LiW55WMXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly8zMDB5cy54eXovYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi8zMDDnnIvkuJbnlYwucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiNEvlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMWFwaS40a2R5dHYuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vNEvlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiQ0pU5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuY2p0NTIxLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0NKVOW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCJEQ+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9jaGFvcmVuYmIuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vREPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiSEflvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vaGd5eC52aXAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9IR+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCJ0dmlwXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwcC50dmlwLmNjL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vdHZpcC5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLniLHnnIvnvo7liadcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3d3dy51dW1qdy5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHnnIvnvo7liacucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi54ix6YW35b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuemhhbmxhbmdidS5jb20vcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix6YW35b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueZveWrluW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly96Z2p4ZHRnLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m95auW5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWIneW/g+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vd3d3LjE4bXYuY2x1Yi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WIneW/g+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLni6zmkq3npL5cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMzV5cy5jYy9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eLrOaSreekvi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlj67lvZPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3R2LjA1NzN3bC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lj67lvZPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5q615Y+L5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzEyMS4yMDQuMjQ5LjEzNTo0NDMzL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+auteWPi+W9seinhjMucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5q615Y+L5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9zaGFuZ2ppaHVva2UuY29tL2FwaS5waHAvdHYudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q615Y+L5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumjnuaNt+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vd3d3LmZqNjA4MC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po57mjbflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi57KJ6LGh6KeG55WMXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzQyLjE1Ny4xMjkuMTU6MzQ0NDQvbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nsonosaHop4bnlYwucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6JmO54yr6KeG6aKRXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3Z2Lmh1bWFvd2ViLmNvbS9tb2dhaV9hcGkucGhwL2djdHZhcGkudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JmO54yr6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumjk+mjjuW9semZolxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly95aWRheXkudG9wL2xlaGFpbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po5Ppo47lvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi55yL55yL5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2trLmNjYm9rZS50b3AvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL55yL5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIue7v+eureW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly93d3cuNjl0eS5jYy9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e7v+eureW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpm7bliLvlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3lzLmxpbmcwMC5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbtuWIu+W9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnkIXnkIrlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vZmd5dXUudG9wL2xlaGFpbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nkIXnkIrlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Jyc6JyC5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwcC5mOHRwLmNvbS9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+icnOicguW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpurvnk5zop4bpopFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vYWxpeXVuLms4YWEuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6bq755Oc6KeG6aKRMS5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnvo7liafomatcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL21laWp1Y2hvbmcuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v576O5Ymn6JmrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWliOmdnui/t1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vYXBwLm5ldGZsaXhtaS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpYjpnZ7ov7flvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5Y2X5bqc5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2lhcHAubmZ1eHMuY2x1Yi9kbm1iLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ljZflupzlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5pqW5YWJ5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9hcHAuYmwyMTAuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pqW5YWJ5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumdkuinhumikVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly8xNTAuMTU4LjEzMy4zNjo5OTA0L3Fpbmdkb3VqaWVrb3UucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mdkuinhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlpKnor5rlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdGNzcHZpcC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeivmuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlpKnlpKnlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2FwcC5kYWlzaHVzYy5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Zuq5Lq65b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly96eS5xZDIzNC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbquS6uuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnm4rovr7lvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vbHVvYnUueXNzNjA4MC5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nm4rovr7lvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5b2x6KeG5aSn5YWoXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9hcHAub2ttZWRjb3MuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6KeG5aSn5YWoLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuW9seinhui+vuS6ulxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly93d3cueXNkci52aXAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pgJrnlKjlm77moIcucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5LyY6KeG5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwcC55c3lzLmFzaWEvbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kvJjop4blvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5b2x6ZiF6ZiBXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzIyMS4yMzYuMTguMTI6NjY1L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6ZiF6ZiBLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIui/veWJp+WQp1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly96aHVpanU4LnZpcC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+i/veWJp+WQp+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBdXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmma7pgJpcXFwiLFxcbiAgICAgICAgICAgIFxcXCJsaXN0XFxcIjogW3tcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCJKRE9ET1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vYXBweXMuamRvZG8ueHl6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSkRPRE/lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiVTXlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2FwcHgudXkwNy5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9VNeW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpmL/ph4zlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vYWxpeXMuY246OTAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pmL/ph4zlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Im+54m55b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuYWl0ZWUuY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/oib7nibnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi54ix5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuaHpsZmYuY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi55m+5reY5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3lzLjU4ZzguY29tL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m+5reY5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuavlOmCu+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly8waHp5LmNuOjk5OTAvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mr5TpgrvlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5aSn5aiB55S15b2xXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3ZpcC5kYXZkeS5jb20vcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSn5aiB55S15b2xLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuixhua4o+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9kb3V6aGF5c3MuY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/osYbmuKPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5a+S5p6r6KeG6aKRXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly92aXAuc2hlbnl1bndsLmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5a+S5p6r6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIum7hOays+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9pLmxlZHU4LmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6buE5rKz5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuaZl+WFiOajrlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vaGFudHYudG9wL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pmX5YWI5qOu5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueti+aWl+S6kVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vdHYuamluZGNsb3VkLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eti+aWl+S6keW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLogZrlkIjop4bpopFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2FwcC5qaHlzdHYuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6IGa5ZCI6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuapmOWtkOW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9qei5qdXppZHkudmlwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5qmY5a2Q5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueci+WJp+WQp1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9hcHAuaXNoZW41MjAuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL5Ymn5ZCnLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueci+eci+WJp1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vd3d3Lmthbmthbmp1LmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL55yL5YmnLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueci+eci+inhumikVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly84ODguY2Nib2tlLnRvcC9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nnIvnnIvop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5Ya36KeGVFZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2xlbi50di9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WGt+inhlRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuS5kOS6keW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vd3d3LmxleXVuLnR2L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LmQ5LqR5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWFjei0ueW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly8xMTEuMjI5LjEyMC4xODA6ODgvbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhY3otLnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi576O5Ymn6IyDXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3R0em16Lm5ldC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e+juWJp+iMgy5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLku7vmgKfnnItcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3JlbnhpbmdrYW4ubmV0L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Lu75oCn55yLLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumaj+mjjuW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9hcHAucnVjaHUuY2xvdWQvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pmo/po47lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5LiJ5pel5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuM3JpLm5ldC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S4ieaXpeW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmt5jliafnpL5cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL2FwcC5zaHVoYWk5OS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mt5jliafnpL4ucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5aSp5aSp6KeG6aKRXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwcC5xaWFuanUuY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5YWU5a2Q56qdXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2NqLmh1aW1hb2ppYS5jb206MTIzNDUvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhZTlrZDnqp0ucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5oiR54ix6Lef5YmnXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly93d3cuZ2VubW92LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aIkeeIsei3n+WJpy5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLonJfniZvliqjmvKtcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vd29uaXVkbS53b25pdS5jeW91OjIwMDAwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JyX54mb5Yqo5ryrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueGiueMq+WKqOa8q1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9kb25nbWFuLms4YWEuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54aK54yr5Yqo5ryrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIueGiueMq+inhumikVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9hbmVnaC5jb20vbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nhornjKvop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5bCP6bif5Yqo5ryrXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3h5ZG0uYmFpY2FpLmJ1enovbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/puJ/liqjmvKsucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5bCP6Jy76JyTXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzNrZXR2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wwj+icu+ick+inhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmmJ/nkIPop4bpopFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMTE5LjI5LjEyMS40ODo4MDg4L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pif55CD6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuaciOWEv+W9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8veXVlNTIueHl6L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YCa55So5Zu+5qCHLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuW9seinhuWkp+WFqFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8veGMueGl4aTJ5eS54eXovbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lvbHop4blpKflhahIRC5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmuJTmuJTlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vbHVvYm8ueXVnZW55ZS5zaXRlL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5riU5riU5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuafmuWtkOinhumikVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly95ei4yNnlzLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p+a5a2Q6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIui/veWJp+eMq1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90di5rbXR2Yi5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ov73liafnjKsxLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIF1cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWkp+eGilxcXCIsXFxuICAgICAgICAgICAgXFxcImxpc3RcXFwiOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWkp+eGilxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHBzOi8vZHh5czIyMzMuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSn54aKLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIua1geaYn1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9ma3hzMjIzMy5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mtYHmmJ8ucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5YWo6IO9XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9xbnlzNTU2Ni5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhajog70ucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5omL5oyHXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly9zenlzNTY3OC5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/miYvmjIcucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5b+D54ixXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly94YXlzNjY3Ny5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lv4PniLEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Zuq5qKoXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cHM6Ly96c2IyMjMzLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbquaiqC5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmnajmoYNcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwczovL3l0eXMzNDU2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+adqOahgy5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBdXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnpZ7pqaxcXFwiLFxcbiAgICAgICAgICAgIFxcXCJsaXN0XFxcIjogW3tcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCIy5Y+35biBXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL3Bob2ViZS5jZi9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzLlj7fluIHlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCJDVuW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly93d3cuY2NjdnZ2LnRvcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0NW5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwiSEflvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vYXBpLmhneXgudmlwL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSEflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLniLHopb/opb9UVlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90djIuYWl4aXhpLnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIseilv+ilv1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5Y+u5b2TVFZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdHYuaHlkZHlzLnRvcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WPruW9k1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi5aSn5biI5YWEXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2RzeHR2LnR2LmNpL2FwaS5waHAvZHN4L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKfluIjlhYTlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpnZ7lh6HlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vY21zLmZlaWZhbjEyLnh5ei9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mdnuWHoeW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIumjnuaJrFRWXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2RpYW5jai56aGVuZnkuY24vYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po57miaxUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuWYv+iNvOmUi1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90di5oZnlzOC52aXAvYXBpLnBocC9TbnR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lmL/ojbzplIsucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLpu5HpvpnlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdmlwLmppLWRpbmctaGUuc2l0ZS9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+m7kem+meW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuaegeWTgeW9seinhlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly9qcHNiLnloenkueHl6L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p6B5ZOB5b2x6KeGVFYucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLmnoHlk4HlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMjkzeC55aHp5Lnh5ei9tdi9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aegeWTgeW9semZolRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6I2U5p6d5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovL2FwaS56anlzLnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iNlOaeneW9seinhlRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi6Jyc5p6cVFZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdnYubWlndW90di5uZXQvbS9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwiaW1nXFxcIjogXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+icnOaenFRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi57Gz5p2l5b2x6KeGXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ1cmxcXFwiOiBcXFwiaHR0cDovLzQyLjUxLjM3LjE2MToyMzQ2L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Gz5p2l5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwibXVybFxcXCI6IFxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwidGl0bGVcXFwiOiBcXFwi54yr5ZKqVFZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vMTA2LjEyLjExMy45MDo2NTY1L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54yr5ZKqVFYucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLnsbPlpYdUVlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly93d3cuczZlcDMudG9wL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Gz5aWHVFYucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlsbHmpYLlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vZHk2LmRjZDEuY24vYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsbHmpYLlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlpKnnqbpUVlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90di50a3lzLnR2L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJpbWdcXFwiOiBcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp56m6VFYucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLomb7nmq7op4bpopFcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcInVybFxcXCI6IFxcXCJodHRwOi8vdHYuY210OC54eXovYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/omb7nmq7op4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6IFxcXCLlsI/nhornjKtUVlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly90djIuaGV0YW95cy52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/nhornjKtUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcIm11cmxcXFwiOiBcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcInRpdGxlXFxcIjogXFxcIuW9seinhumYgVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBcXFwidXJsXFxcIjogXFxcImh0dHA6Ly8yMTYuOTguMTAuODUvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgXFxcImltZ1xcXCI6IFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lvbHop4bpmIEucG5nXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJtdXJsXFxcIjogXFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBdXFxuICAgICAgICB9XFxuICAgIF1cXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmkJzntKJcIixcInBhdGhcIjpcInNlYXJcIixcInJ1bGVcIjpcInZhciByZXMgPSB7fTtcXG52YXIgaXRlbXMgPSBbXTtcXG4vL+iuvue9ruaQnOe0oue6v+eoi1xcbnZhciBzc21vZGUgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLnNzbW9kZTtcXG52YXIga2V5ID0gTVlfVVJMLnNwbGl0KCckJCQnKVsxXTtcXG4vL3NldEVycm9yKGxlKTtcXG5pZiAoc3Ntb2RlID09ICcwJykge1xcbiAgICBzZXRQYWdlVGl0bGUoa2V5ICsgJyDnmoTmkJzntKLnu5PmnpwnKVxcbn07XFxudHJ5IHtcXG4gICAgdmFyIGFwcGZpbGUgPSBmZXRjaENhY2hlKCdodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQVBQLmpzb24nLCAyNCk7XFxufSBjYXRjaCAoZSkge1xcbiAgICBhcHBmaWxlID0gJyc7XFxufVxcbmlmICgvZW1vcnkvLnRlc3QoYXBwZmlsZSkpIHtcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGFwcGZpbGUpO1xcbn0gZWxzZSB7XFxuICAgIGxvZygn5b2T5YmN5Yqg6L2955qE5piv5YaF572u5pWw5o2uJyk7XFxuICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvUmVzQ29kZScsIHt9KSkucnVsZSk7XFxufTtcXG52YXIgZGxpc3QgPSBodG1sLmRhdGE7XFxuXFxuZnVuY3Rpb24gcmFuZG9tU29ydDMoYXJyKSB7XFxuICAgIC8qXFxuICAgICAgICBhcnIuc29ydChmdW5jdGlvbihhLCBiKSB7XFxuICAgICAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgLSAwLjU7XFxuICAgICAgICB9KTtcXG4gICAgKi9cXG4gICAgcmV0dXJuIGFycjtcXG59XFxuXFxuLy/miZPkubHpobrluo9cXG52YXIgcmFuZG9tID0gdHJ1ZTtcXG5pZiAoc3Ntb2RlID09ICcxJyB8fCBNWV9UWVBFID09ICdob21lJykge1xcbiAgICBmb3IgKHZhciBsID0gMDsgbCA8IGRsaXN0Lmxlbmd0aDsgbCsrKSB7XFxuICAgICAgICB2YXIgbGlzdCA9IGRsaXN0W2xdLmxpc3Q7XFxuICAgICAgICB2YXIgdHl0aXQgPSBkbGlzdFtsXS50aXRsZTtcXG4gICAgICAgIGlmIChyYW5kb20pIHtcXG4gICAgICAgICAgICBsZXQgayA9IGdldFZhcihNWV9SVUxFLnRpdGxlICsgXFxcIi1cXFwiICsgdHl0aXQsIFxcXCJcXFwiKTtcXG4gICAgICAgICAgICBpZiAoayA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICBsaXN0ID0gcmFuZG9tU29ydDMobGlzdClcXG4gICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudGl0bGUgKyBcXFwiLVxcXCIgKyB0eXRpdCwgSlNPTi5zdHJpbmdpZnkobGlzdCkpXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgbGlzdCA9IEpTT04ucGFyc2UoaylcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuXFxuXFxuICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogTVlfVFlQRSA9PSBcXFwiaG9tZVxcXCIgPyBcXFwi54K55Ye75p+l55yLIFxcXCIgKyB0eXRpdCArIFxcXCIg5YiG57G7IOKAnOKAnFxcXCIgKyBrZXkgKyBcXFwi4oCd4oCdIOeahOiBmuaQnOe7k+aenFxcXCIgOiBcXFwi54K55Ye75p+l55yLIFxcXCIgKyB0eXRpdCArIFxcXCIg5YiG57G7IFxcXCIgKyBrZXkgKyBcXFwiIOeahOiBmuaQnOe7k+aenFxcXCIsXFxuICAgICAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5JCQkJyArIGtleSArICckJCRmeXBhZ2UkJCQnKS5ydWxlKChsaXN0LCB0eXRpdCkgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcbiAgICAgICAgICAgICAgICB2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxuICAgICAgICAgICAgICAgIHZhciBtb250aCA9IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/IFxcXCIwXFxcIiArIChub3dEYXRlLmdldE1vbnRoKCkgKyAxKSA6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDE7XFxuICAgICAgICAgICAgICAgIHZhciBkYXkgPSBub3dEYXRlLmdldERhdGUoKSA8IDEwID8gXFxcIjBcXFwiICsgbm93RGF0ZS5nZXREYXRlKCkgOiBub3dEYXRlLmdldERhdGUoKTtcXG4gICAgICAgICAgICAgICAgdmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcbiAgICAgICAgICAgICAgICAvL+WPluaQnOe0oue6v+eoi+iuvue9rlxcbiAgICAgICAgICAgICAgICB2YXIgc3N4YyA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicsIHt9KSkuc3Njb3VudDtcXG4gICAgICAgICAgICAgICAgLy/orr7nva7otoXml7bml7bpl7TvvIzotorlsI/otorlv6vvvIzljZXkvY3mr6vnp5JcXG4gICAgICAgICAgICAgICAgdmFyIHRpbWVvdSA9IGdldEl0ZW0oJ2FwcHRpbW91dCcsICczMDAwJyk7XFxuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBNWV9VUkwuc3BsaXQoJyQkJCcpWzFdO1xcbiAgICAgICAgICAgICAgICB2YXIgbnVtID0gTVlfVVJMLnNwbGl0KCckJCQnKVsyXTtcXG4gICAgICAgICAgICAgICAgdmFyIGxlID0gcGFyc2VJbnQobnVtICogc3N4Yyk7XFxuICAgICAgICAgICAgICAgIHZhciBEYXRhID0gW107XFxuICAgICAgICAgICAgICAgIHZhciBUaXQgPSBbXTtcXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IGxlIC0gc3N4YzsgaiA8IGxlOyBqKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChqIDwgbGlzdC5sZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGluayA9IGxpc3Rbal0udXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXRpdCA9IGxpc3Rbal0ubXVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1RWL2kudGVzdChsaXRpdCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC8xOWp4fDI5M3lzfHpoYWlrYW55c3xqaVxcXFwtZGluZ1xcXFwtaGV8cGhvZWJlfHl1bmJvXFxcXC5ieGlufGxhbnJlbnRrfGhldGFveXN8cHh1bnwxMzlcXFxcLjE1NXxma2tkeXwwNTYxNTh8YWl4aXhpfHJ1b3hpbmV3fGZlaWZhbjEyM3xzaXFpdHYvLnRlc3QobGluaykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmem09JyArIGtleSArICcmcGFnZT0xJztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmd2Q9JyArIGtleSArICcmcGFnZT0xJztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvZGlqaWF4aWEvLnRlc3QobGluaykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSAnaHR0cDovL3d3dy5kaWppYXhpYS5jb20vYXBpLnBocC9hcHAvJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhtdXJsID0gbGluayArICdzZWFyY2g/cGc9MSZ0ZXh0PScgKyBrZXkgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGluay5pbmRleE9mKCd4Z2FwcC5waHAvdjEvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnc2VhcmNoP3BnPTEmdGV4dD0nICsga2V5O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdChsaW5rKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnL2xpc3Q/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9JyArIGtleTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhtdXJsID0gbGluayArICc/cGFnZT0xJmxpbWl0PTEwJndkPScgKyBrZXk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9EYXRhLnB1c2goe3VybDogaG11cmwsb3B0aW9uczoge2hlYWRlcnM6IHtcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcIn0sdGltZW91dDogdGltZW91fX0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGEucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogaG11cmwsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IGxpbmsuaW5kZXhPZihcXFwibW9nYWlfYXBpXFxcIikgIT0gLTEgPyBcXFwiRGFydC8yLjE0IChkYXJ0OmlvKVxcXCIgOiBcXFwib2todHRwLzQuMS4wXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IHRpbWVvdVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgVGl0LnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXQ6IGxpc3Rbal0udGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IGxpbmssXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cG5tOiBsaXRpdFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgfSAvL2lmXFxuICAgICAgICAgICAgICAgIH0gLy9mb3IgalxcblxcbiAgICAgICAgICAgICAgICAvLy0tLeS7o+eggeWIhueVjOe6vy0tLS0gXFxuICAgICAgICAgICAgICAgIGlmIChEYXRhICE9ICcnKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgYmh0bWwgPSBiYXRjaEZldGNoKERhdGEpO1xcbiAgICAgICAgICAgICAgICAgICAgLy93cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcEVycm9yLmpzb25cXFwiLEpTT04uc3RyaW5naWZ5KGJodG1sKSk7XFxuXFxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGJodG1sLmxlbmd0aDsgaysrKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBiaHRtbFtrXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhodG1sKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sID0gaHRtbC5zdWJzdHJpbmcoMCwgMikgPT0gJ1xcXFxyXFxcXG4nID8gaHRtbC5yZXBsYWNlKCdcXFxcclxcXFxuJywgJycpIDogaHRtbDtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvYnR3YWYvLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGZldGNoKERhdGFba10udXJsICsgJyZidHdhZicgKyBodG1sLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwge30pO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbCA9PSBcXFwiXFxcIiB8fCBodG1sID09IG51bGwgfHwgaHRtbC5zdWJzdHJpbmcoMCwgNSkgPT0gJ2Vycm9yJyB8fCAhaHRtbC5zdGFydHNXaXRoKCd7JykpIHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogVGl0W2tdLnRpdCArICcgJyArICfmnKrmkJzntKLliLDvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBEYXRhW2tdLnVybCArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5sZW5ndGggPCA4MCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBUaXRba10udGl0ICsgJyAnICsgJ+i/lOWbnuaVsOaNruS4jeWujOaVtO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IERhdGFba10udXJsICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGh0bWwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhodG1sKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHR5cGV0ID0gVGl0W2tdLnR5cG5tO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGRvbWluID0gVGl0W2tdLmxpbms7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChodG1sLmxpc3QpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gaHRtbC5saXN0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS5saXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YS5saXN0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3QgPSBodG1sLmRhdGE7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCA8IDEpIHtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBUaXRba10udGl0ICsgJyAnICsgJ+WIl+ihqOWwj+S6jjHvvIzml6Dms5XlsZXnpLrvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogRGF0YVtrXS51cmwgKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9UVi9pLnRlc3QodHlwZXQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udGl0bGU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnBpYztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IGxpc3RbaV0ubmV4dGxpbms7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnN0YXRlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZG9taW4uaW5kZXhPZignYXBpLnBocC9hcHAvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS52b2RfcGljO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9mYW50dWFuLy50ZXN0KHRkb21pbikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAndmlkZW9fZGV0YWlsP2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgY29uPWxpc3RbaV0udHlwZS50eXBlX2RlcztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZG9taW4uaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAndmlkZW9fZGV0YWlsP2lkPScgKyBsaXN0W2ldLnZvZF9pZDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgY29uPWxpc3RbaV0udHlwZS50eXBlX2RlcztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS52b2RfcGljO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdCh0ZG9taW4pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICcvZGV0YWlsSUQ/dm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICcvZGV0YWlsP2tleT0nICsgZGF0ZVN0ciArICcmdm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgY29uPWxpc3RbaV0udHlwZS50eXBlX2RlcztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS5zdGF0ZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyh2aWQpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogTVlfVFlQRSA9PSBcXFwiaG9tZVxcXCIgPyB0aXRsZS5yZXBsYWNlKGtleSwgJ+KAnOKAnCcgKyBrZXkgKyAn4oCd4oCdJykgKyAnXFxcXG4nICsgcmVtIDogdGl0bGUgKyByZW0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHBpYyArICdAUmVmZXJlcj0nLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQodGRvbWluLmluZGV4T2YoXFxcIm1vZ2FpX2FwaVxcXCIpICE9IC0xID8gdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nIDogdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRAb2todHRwLzQuMS4wfScpLnJ1bGUoKHR5cGV0KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSBbXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBteXVybCA9IE1ZX1VSTC5tYXRjaCgvKFtcXFxcU10qPzpcXFxcL1xcXFwvW1xcXFxTXSo/KVxcXFwvLylbMV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1RWL2kudGVzdCh0eXBldCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBtb3ZsaXN0Jywge30pKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhID0gaXRlbXM7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHR5cGV0KSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb250ZW50OiByZW0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IHR5dGl0ICsgJyA9PiAnICsgVGl0W2tdLnRpdCxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gLy9mb3IgaVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IC8vaWYgbGlzdC5sZW5ndGhcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IC8vZm9yIGsgYmh0bWwubGVuZ3RoXFxuICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXG4gICAgICAgICAgICAgICAgc2V0SG9tZVJlc3VsdChyZXMpO1xcbiAgICAgICAgICAgIH0sIGxpc3QsIHR5dGl0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgIH0pO1xcblxcbiAgICB9IC8vZm9yIGlcXG59OyAvL2VuZCBtb2RlIDFcXG5cXG5pZiAoc3Ntb2RlID09ICcwJyB8fCBNWV9UWVBFID09ICdob21lJykge1xcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRsaXN0Lmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICB2YXIgbGlzdCA9IGRsaXN0W2ldLmxpc3Q7XFxuICAgICAgICB2YXIgdHl0aXQgPSBkbGlzdFtpXS50aXRsZTtcXG4gICAgICAgIGlmIChyYW5kb20pIHtcXG4gICAgICAgICAgICBsZXQgayA9IGdldFZhcihNWV9SVUxFLnRpdGxlICsgXFxcIi1cXFwiICsgdHl0aXQsIFxcXCJcXFwiKTtcXG4gICAgICAgICAgICBpZiAoayA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICBsaXN0ID0gcmFuZG9tU29ydDMobGlzdClcXG4gICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudGl0bGUgKyBcXFwiLVxcXCIgKyB0eXRpdCwgSlNPTi5zdHJpbmdpZnkobGlzdCkpXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgbGlzdCA9IEpTT04ucGFyc2UoaylcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogTVlfVFlQRSA9PSBcXFwiaG9tZVxcXCIgPyBcXFwiIOmAieaLqeS4gOS4qiBcXFwiICsgZGxpc3RbaV0udGl0bGUgKyBcXFwiIOmhueebruafpeeciyDigJzigJxcXFwiICsga2V5ICsgXFxcIuKAneKAnSDnmoTmkJzntKLnu5PmnpxcXFwiIDogXFxcIiDpgInmi6nkuIDkuKogXFxcIiArIGRsaXN0W2ldLnRpdGxlICsgXFxcIiDpobnnm67mn6XnnIsgXFxcIiArIGtleSArIFxcXCIg55qE5pCc57Si57uT5p6cXFxcIixcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgIH0pO1xcblxcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XFxuICAgICAgICAgICAgdmFyIGxpbmsgPSBsaXN0W2pdLnVybDtcXG4gICAgICAgICAgICB2YXIgbGl0aXQgPSBsaXN0W2pdLm11cmw7XFxuICAgICAgICAgICAgaWYgKC9UVi9pLnRlc3QobGl0aXQpKSB7XFxuICAgICAgICAgICAgICAgIGlmICgvMTlqeHwyOTN5c3x6aGFpa2FueXN8amlcXFxcLWRpbmdcXFxcLWhlfHBob2ViZXx5dW5ib1xcXFwuYnhpbnxsYW5yZW50a3xoZXRhb3lzfHB4dW58MTM5XFxcXC4xNTV8ZmtrZHl8MDU2MTU4fGFpeGl4aXxydW94aW5ld3xmZWlmYW4xMjN8c2lxaXR2Ly50ZXN0KGxpbmspKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJz9hYz1saXN0JnptPScgKyBrZXkgKyAnJnBhZ2U9ZnlwYWdlJztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmd2Q9JyArIGtleSArICcmcGFnZT1meXBhZ2UnO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgaWYgKC9kaWppYXhpYS8udGVzdChsaW5rKSkge1xcbiAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC8nXFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgIGlmIChsaW5rLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJ3NlYXJjaD9wZz1meXBhZ2UmdGV4dD0nICsga2V5ICsgJyZ0b2tlbj0nO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmsuaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJ3NlYXJjaD9wZz1meXBhZ2UmdGV4dD0nICsga2V5O1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdChsaW5rKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnL2xpc3Q/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9JyArIGtleTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhtdXJsID0gbGluayArICc/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9JyArIGtleTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGxpc3Rbal0udGl0bGUsXFxuICAgICAgICAgICAgICAgIGltZzogbGlzdFtqXS5pbWcsXFxuICAgICAgICAgICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSN4IycgKyBobXVybCArICcjeCMnICsgbGluayArICcjeCMnICsgbGl0aXQgKyAnI3gjJyArIGtleSArICcjeCMnKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL3NlYXJlcmonKTtcXG4gICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl9yb3VuZF9zbWFsbF80J1xcbiAgICAgICAgICAgICAgICAvL2NvbF90eXBlOiAndGV4dF8zJ1xcbiAgICAgICAgICAgICAgICAvL2xpbms6bGluayxcXG4gICAgICAgICAgICAgICAgLy90eXBlOiBpXFxuICAgICAgICAgICAgfSk7XFxuXFxuICAgICAgICB9IC8vZm9yIGpcXG5cXG5cXG4gICAgfSAvL2ZvciBpXFxuXFxufSAvL2VuZCBtb2RlIDBcXG5cXG5cXG5yZXMuZGF0YSA9IGl0ZW1zO1xcbnNldEhvbWVSZXN1bHQocmVzKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIkFQUOWIhuexu+WIl+ihqFwiLFwicGF0aFwiOlwiYXBwbGlzdGRhdGFcIixcInJ1bGVcIjpcImlmIChodG1sLmxpc3QpIHtcXG4gICAgdmFyIGxpc3QgPSBodG1sLmxpc3Q7XFxufSBlbHNlIGlmIChodG1sLmRhdGEgJiYgaHRtbC5kYXRhLmxpc3QpIHtcXG4gICAgdmFyIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXG59IGVsc2Uge1xcbiAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YTtcXG59XFxuLy9sb2cobGlzdCk7XFxuZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxuICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxuICAgIHZhciBpbWcgPSBsaXN0W2ldLnZvZF9waWM7XFxuICAgIHZhciB1cmwgPSBsaXN0W2ldLnZvZF9pZDtcXG4gICAgdmFyIGRlc2MgPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcbiAgICB2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxuICAgIHZhciBtb250aCA9IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/IFxcXCIwXFxcIiArIChub3dEYXRlLmdldE1vbnRoKCkgKyAxKSA6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDE7XFxuICAgIHZhciBkYXkgPSBub3dEYXRlLmdldERhdGUoKSA8IDEwID8gXFxcIjBcXFwiICsgbm93RGF0ZS5nZXREYXRlKCkgOiBub3dEYXRlLmdldERhdGUoKTtcXG4gICAgdmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcbiAgICBpZiAoaHRtbC5saXN0KSB7XFxuICAgICAgICB2YXIgbGluayA9IG11cmwgKyAndmlkZW9fZGV0YWlsP2lkPScgKyB1cmwgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcbiAgICAgICAgaWYgKG11cmwuc2VhcmNoKC9tb2dhaV9hcGkvKSAhPSAtMSkge1xcbiAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICcvZGV0YWlsP2tleT0nICsgZGF0ZVN0ciArICcmdm9kX2lkPScgKyB1cmwgKyAnJnJlbF9saW1pdD0xMDtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbD9rZXk9JyArIGRhdGVTdHIgKyAnJnZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QG9raHR0cC80LjEuMH0nO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXG4gICAgfTtcXG4gICAgaWYgKC9mYW50dWFuLy50ZXN0KG11cmwpKSB7XFxuICAgICAgICB2YXIgbGluayA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHVybCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgIH0gZWxzZSBpZiAoL2lvcGVueXVuLy50ZXN0KG11cmwpKSB7XFxuICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXG4gICAgfSBlbHNlIGlmICgvZGlqaWF4aWEvLnRlc3QobXVybCkpIHtcXG4gICAgICAgIHZhciBsaW5rID0gJ2h0dHA6Ly93d3cuZGlqaWF4aWEuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsO1xcbiAgICB9XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgcGljX3VybDogaW1nICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICB1cmw6ICQobGluaykucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgdmFyIHJlcyA9IHt9O1xcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJycsXFxuICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXG4gICAgICAgICAgICAgICAgdXJsOiAnJyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd4NV93ZWJ2aWV3X3NpbmdsZSdcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICByZWZyZXNoWDVXZWJWaWV3KCcnKTtcXG4gICAgICAgICAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXG4gICAgICAgICAgICB2YXIgbXl1cmwgPSBNWV9VUkwubWF0Y2goLyhbXFxcXFNdKj86XFxcXC9cXFxcL1tcXFxcU10qPylcXFxcLy8pWzFdO1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcG1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXG4gICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxuICAgICAgICB9KSxcXG4gICAgICAgIGRlc2M6IGRlc2MsXFxuICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZSdcXG4gICAgfSk7XFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiVFbliJfooajop6PmnpBcIixcInBhdGhcIjpcInR2bGlzdGRhdGFcIixcInJ1bGVcIjpcInZhciBsaXN0ID0gaHRtbC5kYXRhO1xcbmZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcbiAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcbiAgICB2YXIgaW1nID0gbGlzdFtpXS5waWM7XFxuICAgIHZhciB1cmwgPSBsaXN0W2ldLm5leHRsaW5rO1xcbiAgICB2YXIgZGVzYyA9IGxpc3RbaV0uc3RhdGU7XFxuICAgIHVybCA9IHVybC5zdGFydHNXaXRoKCdodHRwJykgPyB1cmwgOiBtdXJsICsgJz9hYz1kZXRhaWwmaWRzPScgKyB1cmw7XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgcGljX3VybDogaW1nICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICB1cmw6ICQodXJsKS5ydWxlKCgpID0+IHtcXG4gICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgdmFyIGl0ZW1zID0gW107XFxuICAgICAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGdldFJlc0NvZGUoKSk7XFxuICAgICAgICAgICAgdmFyIG15dXJsID0gTVlfVVJMLm1hdGNoKC8oW1xcXFxTXSo/OlxcXFwvXFxcXC9bXFxcXFNdKj8pXFxcXC8vKVsxXTtcXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcbiAgICAgICAgICAgICAgICBkZXNjOiAnMjU1JiZmbG9hdCcsXFxuICAgICAgICAgICAgICAgIHVybDogJycsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgcmVmcmVzaFg1V2ViVmlldygnJyk7XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXG4gICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxuICAgICAgICB9KSxcXG4gICAgICAgIGRlc2M6IGRlc2MsXFxuICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZSdcXG4gICAgfSk7XFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiQVBQ566A5LuL5LiO6YCJ6ZuGXCIsXCJwYXRoXCI6XCJhcHBtb3ZsaXN0XCIsXCJydWxlXCI6XCJpZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgdmFyIGNvbnRzID0gaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxuICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxuICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgdmFyIHRhYnMgPSBodG1sLmRhdGEudm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxuICAgIH1cXG59IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcbiAgICB2YXIgY29udHMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcjtcXG4gICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxuICAgICAgICB2YXIgdGFicyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfcGxheV9mcm9tLnNwbGl0KCckJCQnKTtcXG4gICAgfVxcbn0gZWxzZSB7XFxuICAgIHZhciBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV9saXN0O1xcbiAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXG4gICAgICAgIHZhciB0YWJzID0gaHRtbC5kYXRhLnZvZF9wbGF5X2Zyb20uc3BsaXQoJyQkJCcpO1xcbiAgICB9XFxufVxcblxcbi8vbG9nKGh0bWwpO1xcblxcbnZhciB0aHVtYiA9IGh0bWwuZGF0YS52b2RfaW5mbyA/IGh0bWwuZGF0YS52b2RfaW5mby52b2RfcGljIDogaHRtbC5kYXRhLnZvZF9waWM7XFxudmFyIGRlcyA9IGh0bWwuZGF0YS52b2RfaW5mbyA/IGh0bWwuZGF0YS52b2RfaW5mby52b2RfY29udGVudCA6IGh0bWwuZGF0YS52b2RfY29udGVudDtcXG5pdGVtcy5wdXNoKHtcXG4gICAgdGl0bGU6ICfliafmg4XnroDku4vvvJonLFxcbiAgICBkZXNjOiBkZXMsXFxuICAgIHBpY191cmw6IHRodW1iLFxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGRlcykgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IGRlcyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG4gICAgICAgIH1dKTtcXG4gICAgfSwgZGVzKSxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXG59KTtcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9kbnBsdWdpbicsIHt9KSkucnVsZSk7XFxuXFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCc4oCc5o6S5bqP4oCd4oCdJyxcXG4gICAgdXJsOiBcXFwiaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0TXlWYXIoJ2FwcG1hcHBzb3J0JywnMScpPT0nMSc/JzAnOicxJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdcXFwiLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSk7XFxudmFyIHRpdGxlID0gTVlfVVJMO1xcbmZvciAodmFyIGsgPSAwOyBrIDwgY29udHMubGVuZ3RoOyBrKyspIHtcXG4gICAgLy9zZXRFcnJvcihsaXN0Lmxlbmd0aCk7XFxuICAgIGlmIChodG1sLmRhdGEudm9kX3VybF93aXRoX3BsYXllcikge1xcbiAgICAgICAgdmFyIHB0YWIgPSBjb250c1trXS5jb2RlID8gY29udHNba10uY29kZSA6IHRhYnNba107XFxuICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF9pbmZvICYmIGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICB2YXIgcHRhYiA9IGNvbnRzW2tdLmNvZGUgPyBjb250c1trXS5jb2RlIDogdGFic1trXTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBwdGFiID0gY29udHNba10uZnJvbSA/IGNvbnRzW2tdLmZyb20gOiB0YWJzW2tdO1xcbiAgICB9XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IChnZXRNeVZhcih0aXRsZSwgJzAnKSA9PSBrID8gJ/CfkYnwn4+7JyA6ICcnKSArIHB0YWIsXFxuICAgICAgICB1cmw6IGBoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRNeVZhcignYCArIHRpdGxlICsgXFxcIicsICdcXFwiICsgayArIGAnKTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdgLFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICB9KTtcXG5cXG59XFxuXFxuXFxuXFxudmFyIGppZWsgPSAnJztcXG4vL2ZvciAodmFyIGkgPSAwOyBpIDwgY29udHMubGVuZ3RoOyBpKyspIHtcXG5pZiAoZ2V0TXlWYXIoJ2FwcG1hcHBzb3J0JywgJzEnKSA9PSAnMScpIHtcXG4gICAgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmxzKSB7XFxuICAgICAgICB2YXIgbGlzdCA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmxzO1xcbiAgICB9IGVsc2UgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmwpIHtcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybC5zcGxpdChcXFwiI1xcXCIpO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdmFyIGxpc3QgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uc3BsaXQoXFxcIiNcXFwiKTtcXG4gICAgfTtcXG59IGVsc2Uge1xcbiAgICBpZiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybHMpIHtcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybHMucmV2ZXJzZSgpO1xcbiAgICB9IGVsc2UgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmwpIHtcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybC5zcGxpdChcXFwiI1xcXCIpLnJldmVyc2UoKTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnNwbGl0KFxcXCIjXFxcIikucmV2ZXJzZSgpO1xcbiAgICB9XFxufTtcXG4vL3NldEVycm9yKGxpc3QubGVuZ3RoKTtcXG5pZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgdmFyIHB0YWIgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uY29kZSA/IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5jb2RlIDogdGFic1tnZXRNeVZhcih0aXRsZSwgJzAnKV07XFxufSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgdmFyIHB0YWIgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uY29kZSA/IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5jb2RlIDogdGFic1tnZXRNeVZhcih0aXRsZSwgJzAnKV07XFxufSBlbHNlIHtcXG4gICAgdmFyIHB0YWIgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uZnJvbSA/IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5mcm9tIDogdGFic1tnZXRNeVZhcih0aXRsZSwgJzAnKV07XFxufVxcbi8qXFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHB0YWIgKyAnIPCflJcnICsgW2kgKyAxXSArICcvJyArIFtjb250cy5sZW5ndGhdICsgXFxcIuKAnOKAnOKGk+KGkeKAneKAnVxcXCIsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0VmFyKCdhcHBtYXBwc29ydCcsJzEnKT09JzEnPycwJzonMScpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnXFxcIixcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgfSk7Ki9cXG5cXG5mb3IgKHZhciBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXG4gICAgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmxzKSB7XFxuICAgICAgICB2YXIgdmxpbmsgPSBsaXN0W2pdLnVybC5yZXBsYWNlKC8jNDU2Iy9nLCAnaHR0cCcpLnJlcGxhY2UoLyMxMjMjL2csICcuJykucmVwbGFjZSgvIzc4OSMvZywgJzonKTtcXG4gICAgICAgIHZhciB0aXRsZSA9IGxpc3Rbal0ubmFtZTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciB2bGluayA9IGxpc3Rbal0uc3BsaXQoXFxcIiRcXFwiKVsxXTtcXG4gICAgICAgIHZhciB0aXRsZSA9IGxpc3Rbal0uc3BsaXQoXFxcIiRcXFwiKVswXTtcXG4gICAgfVxcbiAgICB0cnkge1xcbiAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICAgICAgdmFyIGppZWsgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGFyc2VfYXBpO1xcbiAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgICAgICAgICB2YXIgamllayA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wYXJzZV9hcGk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UyICYmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UyKS5pbmRleE9mKFxcXCI9XFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgdmFyIGppZWsgPSAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMikubWF0Y2goLy4qP3VybD18Lio/dj18Lio/dmlkPS8pWzBdLnJlcGxhY2UoXFxcIi4uXFxcIiwgXFxcIi5cXFwiKS5yZXBsYWNlKCdqc29uYnMnLCAnJyk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UgJiYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSkuaW5kZXhPZihcXFwiPVxcXCIpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgIHZhciBqaWVrID0gKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSkubWF0Y2goLy4qP3VybD18Lio/dj18Lio/dmlkPS8pWzBdLnJlcGxhY2UoXFxcIi4uXFxcIiwgXFxcIi5cXFwiKTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICB2YXIgamllayA9IFxcXCJcXFwiO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAvL3NldEVycm9yKGppZWspOyAgICAgICAgICAgICAgICBcXG4gICAgICAgIH1cXG4gICAgfSBjYXRjaCAoZSkge31cXG4gICAgLy9qaWVr5ou85o6lXFxuICAgIGlmIChqaWVrICE9ICcnICYmIGppZWsgIT0gbnVsbCkge1xcbiAgICAgICAgaWYgKGppZWsuc3Vic3RyaW5nKDAsIDQpID09ICdodHRwJykge1xcbiAgICAgICAgICAgIGppZWsgPSBqaWVrO1xcbiAgICAgICAgfSBlbHNlIGlmIChqaWVrLnN1YnN0cmluZygwLCAyKSA9PSAnXFxcXC9cXFxcLycpIHtcXG4gICAgICAgICAgICBqaWVrID0gJ2h0dHBzOicgKyBqaWVrO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgamllayA9IFxcXCJcXFwiO1xcbiAgICB9XFxuICAgIC8v5a+55aSx5pWI5o6l5Y+j6L+b6KGM5pu/5o2iXFxuICAgIGlmICgvY29rZW12Ly50ZXN0KG15dXJsKSAmJiAvY29rZXFpZXx4aW58OTBtbS8udGVzdChwdGFiKSkge1xcbiAgICAgICAgamllayA9ICdodHRwczovL3BsYXllci45MG1tLm1lL3BsYXkucGhwP3VybD0nO1xcbiAgICB9IGVsc2UgaWYgKC9qc29uXFxcXC5tM3U4XFxcXC50dnx3d3dcXFxcLngtblxcXFwuY2MvLnRlc3QoamllaykpIHtcXG4gICAgICAgIGppZWsgPSAnaHR0cHM6Ly9qeC5tM3U4LnR2L2ppZXhpLz91cmw9JztcXG4gICAgfSBlbHNlIGlmICgvY2p0NTIxLy50ZXN0KG15dXJsKSkge1xcbiAgICAgICAgamllayA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZTtcXG4gICAgfSBlbHNlIGlmIChqaWVrLmluZGV4T2YoJ2pwZy5ob3UubHUvam0vemEvaW5kZXgucGhwJykgIT0gLTEpIHtcXG4gICAgICAgIGppZWsgPSAnaHR0cDovL3ZpcC5tZW5neC52aXAvaG9tZS9hcGk/dHlwZT15cyZ1aWQ9MzI0OTY5NiZrZXk9YWVmcXJ0dXd4eUVGSEtOT1FZJnVybD0nO1xcbiAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ3JlbnJlbm1pJyAmJiBqaWVrLnNlYXJjaCgvamhkeXcvKSAhPSAtMSkge1xcbiAgICAgICAgamllayA9ICdodHRwOi8vd3d3LjEwODBrYW4uY2MvamlleGkvcnJtaS5waHA/dXJsPSc7XFxuICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnZnFmaWxtJyAmJiBqaWVrLnNlYXJjaCgvamhkeXcvKSAhPSAtMSkge1xcbiAgICAgICAgamllayA9ICdodHRwOi8vd3d3LjEwODBrYW4uY2MvamlleGkvZnEucGhwP3VybD0nO1xcbiAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ3Jyc3AnICYmIGppZWsuc2VhcmNoKC9qaGR5dy8pICE9IC0xKSB7XFxuICAgICAgICBqaWVrID0gJ2h0dHA6Ly93d3cuMTA4MGthbi5jYy9qaWV4aS9yci5waHA/dXJsPSc7XFxuICAgIH0gZWxzZSBpZiAoL21pYW9wYXJ0eS8udGVzdChwdGFiKSAmJiBteXVybC5zZWFyY2goL2Z1bjRrLykgIT0gLTEpIHtcXG4gICAgICAgIGppZWsgPSAnaHR0cHM6Ly93d3cuZnVuNGsuY29tL2FwbGF5ZXIvP3VybD0nO1xcbiAgICB9IGVsc2UgaWYgKC9qaHl1blxcXFwucGhwLy50ZXN0KGppZWspKSB7XFxuICAgICAgICBqaWVrID0gamllay5yZXBsYWNlKCdodHRwOi8vc3ZpcC5qaHl1bi5qeC5jbjoxMjM0L2poeXVuLnBocD91cmw9JywgJ2h0dHBzOi8vYXBpLmpoZHl3LnZpcC8/dXJsPScpO1xcbiAgICB9O1xcbiAgICAvL+aJk+WNsOaOpeWPo1xcbiAgICB0cnkge1xcbiAgICAgICAgaWYgKGogPT0gJzAnKSB7XFxuICAgICAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICAgICAgICAgIGxvZygnXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcbicgKyAn6Kej5p6Q5o6l5Y+j77yaXFxcXG4nICsgamllayk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgICAgICAgICAgICAgbG9nKCdcXFxcbue6v+i3r++8micgKyBwdGFiICsgJ1xcXFxu6KeG6aKR77yaJyArIHZsaW5rICsgJ1xcXFxuJyArICfop6PmnpDmjqXlj6PvvJpcXFxcbicgKyBqaWVrKTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBpZiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMiAmJiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMikuaW5kZXhPZihcXFwiPVxcXCIpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICBsb2coJ1xcXFxu57q/6Lev77yaJyArIHB0YWIgKyAnXFxcXG7op4bpopHvvJonICsgdmxpbmsgKyAnXFxcXG4nICsgJ+ino+aekOaOpeWPo++8mlxcXFxuJyArIGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZTIucmVwbGFjZSgvXFxcXC5cXFxcLi9nLCBcXFwiLlxcXCIpLnJlcGxhY2UoL1xcXFwsL2csIFxcXCJcXFxcblxcXFxuXFxcIikpO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSAmJiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlKS5pbmRleE9mKFxcXCI9XFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxvZygnXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcbicgKyAn6Kej5p6Q5o6l5Y+j77yaXFxcXG4nICsgY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlLnJlcGxhY2UoL1xcXFwuXFxcXC4vZywgXFxcIi5cXFwiKS5yZXBsYWNlKC9cXFxcLC9nLCBcXFwiXFxcXG5cXFxcblxcXCIpKTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGxvZygnXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcbicgKyAn6Kej5p6Q5o6l5Y+j77yaXFxcXG4nICsgamllayk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgLy9zZXRFcnJvcihqaWVrKTsgICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9IGNhdGNoIChlKSB7fVxcbiAgICAvL+WjsOaYjumTvuaOpVxcbiAgICB2YXIgbGluayA9IGppZWsgKyB2bGluaztcXG4gICAgLypcXG4gICAgaWYgKC9cXFxcLm0zdTh8XFxcXC5tcDR8b2JqXFxcXC90b3MvLnRlc3QodmxpbmspICYmIC9odHRwLy50ZXN0KHZsaW5rKSkge1xcbiAgICAgICAgbGluayA9IHZsaW5rO1xcbiAgICB9XFxuICAgICovXFxuICAgIC8vbG9nKGxpbmspO1xcbiAgICB0aXRsZSA9IHRpdGxlLm1hdGNoKC8o56ysfFxcXFxkfC0pKijpm4Z86K+dfOacnykvZykgPyB0aXRsZS5yZXBsYWNlKC/nrKx86ZuGfOivnXzmnJ8vZywgJycpIDogdGl0bGU7XFxuICAgIGlmIChsaXN0Lmxlbmd0aCA8PSA0KSB7XFxuICAgICAgICB2YXIgY2x0ID0gJ3RleHRfMic7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB2YXIgY2x0ID0gaXNOYU4odGl0bGUpID8gJ2ZsZXhfYnV0dG9uJyA6ICd0ZXh0XzUnXFxuICAgIH07XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5JykubGF6eVJ1bGUoKHB0YWIsIGxpbmssIG15dXJsLCB2bGluaykgPT4ge1xcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBvcGVudXJsKHJlc3VybCkge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VybC5tYXRjaCgveW91a3V8bWd0dnxpeGlndWF8cXEuY29tfHFpeWl8bWlndXxiaWxpYmlsaXxzb2h1fHBwdHZ8bGV8MTkwNS5jb20vKSAmJiByZXN1cmwuc2VhcmNoKC9odG1sfGJpbGliaWxpfGl4aWd1YS8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9odG1s572R6aG16LCD55So5pat5o+S6Kej5p6QXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVuRG4gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLmVuRG47XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuRG4gPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn6LCD55So5pat5o+S6Kej5p6QaHRtbCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXCJ2YXIgY29uZmlnID1cXFwiICsgZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKHJlc3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcLm0zdTh8XFxcXC5tcDR8b2JqXFxcXC90b3N8bmV0ZWFzZVxcXFwuY29tLy50ZXN0KHJlc3VybCkgJiYgL2h0dHAvLnRlc3QocmVzdXJsKSAmJiAhL1xcXFwuaHRtbC8udGVzdChyZXN1cmwpICYmICEvXFxcXD1odHRwLy50ZXN0KHJlc3VybCkgJiYgcHRhYiAhPSAnZHVvZHVvenknKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC93a2ZpbGUvLnRlc3QocmVzdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdXJsICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99J1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAvXFxcXD0vLnRlc3QocmVzdXJsKSA/IHJlc3VybC5zcGxpdCgnPScpWzFdIDogcmVzdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v6LCD55So5pat5o+S6YCa55So5Ye95pWw6Kej5p6QXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVuRG4gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLmVuRG47XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuRG4gPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn6LCD55So5pat5o+S6YCa55So5Ye95pWw6Kej5p6QXFxcXG4nICsgcHRhYiArICco6YCa55So5Ye95pWwKScpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXCJ2YXIgY29uZmlnID1cXFwiICsgZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHB0YWIgKyAnKOmAmueUqOWHveaVsCknO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGFyc2VTW25hbWVdKHJlc3VybCwgbXl1cmwpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnZHVvZHVvenknKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoZ2V0Q3J5cHRvSlMoKSk7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIERlKHdvcmQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UobWQ1KCdyWGpXdlhsNicpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZSgnTlhiSG9XSmJwc0VPaW44YicpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ3J5cHRvSlMuQUVTLmRlY3J5cHQod29yZCwgYSwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2OiB0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIGRkenkgPSAnYWRIdVJvMGRjdUhvTTE2M0wxeTQnICsgYmFzZTY0RW5jb2RlKHNyY3VybCkuc2xpY2UoMTApO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2h0dHBzOi8vYm8uZGQ1MjAuY2MveHBsYXkvYXBpLnBocCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRkd3kgPSBmZXRjaCgnaHR0cHM6Ly9qaHBjLm1hbmR1aHUuY29tL2R1b2R1by9hcGkucGhwJywge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogTU9CSUxFX1VBXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogJ3VybD0nICsgcmVzdXJsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKGRkd3kpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGUoSlNPTi5wYXJzZShkZHd5KS51cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL21pYW9wYXJ0eS8udGVzdChwdGFiKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L21hc3Rlci94NXJ1bGUuanMnLCAyNCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoJ2h0dHBzOi8vd3d3LmZ1bjRrLmNvbS9hcGxheWVyLz91cmw9JyArIHJlc3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgIHZhciBzcmN1cmwgPSBsaW5rO1xcbiAgICAgICAgICAgICAgICAvL2xvZyhzcmN1cmwpO1xcbiAgICAgICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggeW8gOWni1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgLy/lpITnkIbmjIflrprop4bpopHkuI7nur/ot69cXG4gICAgICAgICAgICAgICAgICAgIGlmICgvXFxcXC5tM3U4fFxcXFwubXA0fG9ialxcXFwvdG9zfG5ldGVhc2VcXFxcLmNvbS8udGVzdChzcmN1cmwpICYmIC9odHRwLy50ZXN0KHNyY3VybCkgJiYgIS9cXFxcLmh0bWwvLnRlc3Qoc3JjdXJsKSAmJiAhL1xcXFw9aHR0cC8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC93a2ZpbGUvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3JjdXJsICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99J1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAvXFxcXD0vLnRlc3Qoc3JjdXJsKSA/IHNyY3VybC5zcGxpdCgnPScpWzFdIDogc3JjdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNyY3VybC5pbmRleE9mKFxcXCIvc2hhcmUvXFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGluayA9IHNyY3VybC5zcGxpdChcXFwiL3NoYXJlXFxcIilbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmYyA9IGZldGNoKHNyY3VybCwge30pLnJlcGxhY2UoXFxcInZhciBwdXJsXFxcIiwgXFxcInZhciBtYWluXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYy5pbmRleE9mKFxcXCJtYWluXFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXQgPSBmYy5tYXRjaCgvdmFyIG1haW4uKj87LylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKG1hdCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheSA9IChtYWluLmluZGV4T2YoXFxcImh0dHBcXFwiKSAhPSAtMSA/IG1haW4gOiBsaW5rICsgbWFpbik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbiA9IGZjLm1hdGNoKC91cmw6Lio/W1xcXFwnXFxcXFxcXCJdKC4qPylbXFxcXCdcXFxcXFxcIl0vKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ID0gKG1haW4uaW5kZXhPZihcXFwiaHR0cFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGxheTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneDVXZWJWaWV3Oi8vJyArIChzcmN1cmwpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvOTgzdmlwLy50ZXN0KHNyY3VybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoSGVhZGVyczogdHJ1ZVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgveFxcXFwtblxcXFwuY2N8bmhkejY2Ni8udGVzdChzcmN1cmwpICYmIC9cXFxcLmh0bWx8YmlsaWJpbGkvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHZsaW5rKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIC8v5aSE55CG5oyH5a6a6KeG6aKR5ZKM57q/6Lev57uT5p2fXFxuICAgICAgICAgICAgICAgICAgICAvLy0tLS3liIblibLnur8tLS0tLy9cXG4gICAgICAgICAgICAgICAgICAgIHZhciBzY29kZSA9IEpTT04ucGFyc2UoZmV0Y2goc3JjdXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhTdGF0dXNDb2RlOiB0cnVlXFxuICAgICAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgICAgICAvL2xvZyhzY29kZSk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAyJyB8fCBzY29kZS5zdGF0dXNDb2RlID09ICczMDEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/miZPlvIDop6PmnpDmnIkzMDLph43lrprlkJHnmoTpk77mjqVcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVkdXJsID0gc2NvZGUuaGVhZGVycy5sb2NhdGlvblswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcPWh0dHAvLnRlc3QocmVkdXJsKSAmJiAvaHRtbHxiaWxpYmlsaXxrZXlcXFxcPS8udGVzdChyZWR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZldGNoKHJlZHVybCwge30pKS51cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXD1odHRwLy50ZXN0KHJlZHVybCkgJiYgL1xcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdi8udGVzdChyZWR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1cmwuc3Vic3RyaW5nKHJlZHVybC5pbmRleE9mKCc9aHR0cCcpICsgMSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvaHR0cC8udGVzdChyZWR1cmwpICYmIC9rZXlcXFxcPXx1aWRcXFxcPS8udGVzdChyZWR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZldGNoKHJlZHVybCwge30pKS51cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgaHRtbCA9IHJlcXVlc3Qoc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IHNjb2RlLmJvZHk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC80MDQgTm90IEZvdW5kfOWkh+ahiOWQjuWPr+e7p+e7reiuv+mXri8udGVzdChodG1sKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybCh2bGluayk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXDxib2R5Ly50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn5bCd6K+V6Z2eSlNPTuaOpeWPo+e9kemhteino+aekCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L21hc3Rlci94NXJ1bGUuanMnLCAyNCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoc3JjdXJsLCBzcmN1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3JldHVybiBvcGVudXJsKHNyY3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9qc29u6Kej5p6Q55qE5Y+W6ZO+5o6lXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gaHRtbC5tYXRjaCgvW1xcXFwnXFxcXFxcXCJddXJsW1xcXFwnXFxcXFxcXCJdOi4qP1tcXFxcJ1xcXFxcXFwiXSguKj8pW1xcXFwnXFxcXFxcXCJdLylbMV0ucmVwbGFjZSgvXFxcXFxcXFwvZywgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhwdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9odHRwLy50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHRhYiA9PSAnYmlsaWJpbGknKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS8mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnbWd0dicpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvb2piay8udGVzdChwdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJzt7UmVmZXJlckBodHRwczovL2Jhay5vamJranguY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v6Z2eaHR0cOW8gOWktOeahOaJk+W8gOWOn+mTvuaOpSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHZsaW5rKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAvL+aKpemUmeWIpOaWreWkhOeQhlxcbiAgICAgICAgICAgICAgICAgICAgbG9nKCfmiafooYzmiqXplJnot7PovazlpITnkIYnKTtcXG4gICAgICAgICAgICAgICAgICAgIC8qaWYgKHNyY3VybC5zdWJzdHJpbmcoMCwgMikgPT0gJ1xcXFwvXFxcXC8nKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoJ2h0dHBzOicgKyBzcmN1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXD1odHRwLy50ZXN0KHNyY3VybCkgJiYgL1xcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXR1cm4gc3JjdXJsLnNwbGl0KCc9JylbMV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuaW5kZXhPZignPWh0dHAnKSArIDEpKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ki9cXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHZsaW5rKVxcbiAgICAgICAgICAgICAgICAgICAgLy9yZXR1cm4gJ3g1V2ViVmlldzovLycrc3JjdXJsXFxuICAgICAgICAgICAgICAgICAgICAvL31cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggee7k+adn1xcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgcHRhYixcXG4gICAgICAgICAgICBsaW5rLFxcbiAgICAgICAgICAgIG15dXJsLFxcbiAgICAgICAgICAgIHZsaW5rKSxcXG4gICAgICAgIGNvbF90eXBlOiBjbHRcXG4gICAgfSk7XFxufVxcbi8vfVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwiVFbnroDku4vkuI7pgInpm4ZcIixcInBhdGhcIjpcInR2bW92bGlzdFwiLFwicnVsZVwiOlwidmFyIHRhYnMgPSBPYmplY3Qua2V5cyhodG1sLnZpZGVvbGlzdCk7XFxudmFyIHRodW1iID0gaHRtbC5pbWdfdXJsO1xcbml0ZW1zLnB1c2goe1xcbiAgICB0aXRsZTogJ+WJp+aDheeugOS7i++8micsXFxuICAgIGRlc2M6IGh0bWwuaW50cm8sXFxuICAgIHBpY191cmw6IHRodW1iLFxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGRlcykgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IGRlcyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG4gICAgICAgIH1dKTtcXG4gICAgfSwgaHRtbC5pbnRybyksXFxuICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWMnXFxufSk7XFxuZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvZG5wbHVnaW4nLCB7fSkpLnJ1bGUpO1xcblxcbml0ZW1zLnB1c2goe1xcbiAgICB0aXRsZTogJ+KAnOKAnOaOkuW6j+KAneKAnScsXFxuICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnB1dE15VmFyKCdhcHBtdHZzb3J0JywgZ2V0TXlWYXIoJ2FwcG10dnNvcnQnLCcxJyk9PScxJz8nMCc6JzEnKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJ1xcXCIsXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG59KTtcXG52YXIgZ3ZhID0gTVlfVVJMO1xcbmZvciAodmFyIGsgPSAwOyBrIDwgdGFicy5sZW5ndGg7IGsrKykge1xcbiAgICB2YXIgcHRhYiA9IHRhYnNba107XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IChnZXRNeVZhcihndmEsICcwJykgPT0gayA/ICfwn5GJ8J+PuycgOiAnJykgKyBwdGFiLFxcbiAgICAgICAgdXJsOiBgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ2AgKyBndmEgKyBcXFwiJywgJ1xcXCIgKyBrICsgYCcpO3JlZnJlc2hQYWdlKCk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJ2AsXFxuICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgIH0pO1xcblxcbn1cXG5cXG4vL2ZvciAodmFyIGkgPSAwOyBpIDwgdGFicy5sZW5ndGg7IGkrKykge1xcbmlmIChnZXRNeVZhcignYXBwbXR2c29ydCcsICcxJykgPT0gJzEnKSB7XFxuICAgIHZhciBsaXN0ID0gaHRtbC52aWRlb2xpc3RbdGFic1tnZXRNeVZhcihndmEsICcwJyldXTtcXG59IGVsc2Uge1xcbiAgICB2YXIgbGlzdCA9IGh0bWwudmlkZW9saXN0W3RhYnNbZ2V0TXlWYXIoZ3ZhLCAnMCcpXV0ucmV2ZXJzZSgpO1xcbn07XFxuXFxuZm9yICh2YXIgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XFxuICAgIHZhciBzcmN1cmwgPSBsaXN0W2pdLnVybDtcXG4gICAgaWYgKC8yOTNqeDEvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgc3JjdXJsID0gc3JjdXJsLnJlcGxhY2UoJzI5M2p4MScsICdqeCcpO1xcbiAgICB9IGVsc2UgaWYgKC84ZDhxfGRpbGlrdHZ8aGFva2FuanUxfGN6dHZ8Zml0XFxcXDo4fHBwemh1Ly50ZXN0KG15dXJsKSkge1xcbiAgICAgICAgc3JjdXJsID0gc3JjdXJsICsgJyZhcHA9MTAwMDAmYWNjb3VudD0yNzI3NzUwMjgmcGFzc3dvcmQ9cXEyNzI3NzUwMjgnO1xcbiAgICB9XFxuICAgIHZhciB0aXRsZSA9IGxpc3Rbal0udGl0bGU7XFxuICAgIHRpdGxlID0gdGl0bGUubWF0Y2goLyjnrKx8XFxcXGR8LSkqKOmbhnzor5185pyfKS9nKSA/IHRpdGxlLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJykgOiB0aXRsZTtcXG4gICAgaWYgKGxpc3QubGVuZ3RoIDw9IDQpIHtcXG4gICAgICAgIHZhciBjbHQgPSAndGV4dF8yJztcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBjbHQgPSBpc05hTih0aXRsZSkgPyAnZmxleF9idXR0b24nIDogJ3RleHRfNSdcXG4gICAgfTtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHknKS5sYXp5UnVsZSgocHRhYiwgc3JjdXJsLCBteXVybCkgPT4ge1xcbiAgICAgICAgICAgIGZ1bmN0aW9uIG9wZW51cmwocmVzdXJsKSB7XFxuICAgICAgICAgICAgICAgIGlmIChyZXN1cmwubWF0Y2goL3lvdWt1fG1ndHZ8aXhpZ3VhfHFxLmNvbXxxaXlpfG1pZ3V8YmlsaWJpbGl8c29odXxwcHR2fGxlfDE5MDUuY29tLykgJiYgcmVzdXJsLnNlYXJjaCgvaHRtbHxiaWxpYmlsaS8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgZW5EbiA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicsIHt9KSkuZW5EbjtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbkRuID09ICcxJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn6LCD55So5pat5o+S6Kej5p6QJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChcXFwidmFyIGNvbmZpZyA9XFxcIiArIGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvblxcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBheXRtUGFyc2UocmVzdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcbiAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1cmxcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgLy9sb2coc3JjdXJsKTtcXG4gICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggeW8gOWni1xcbiAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgIGlmICgvXFxcXC5tM3U4fFxcXFwubXA0fG9ialxcXFwvdG9zLy50ZXN0KHNyY3VybCkgJiYgL2h0dHAvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC9cXFxcPS8udGVzdChzcmN1cmwpID8gc3JjdXJsLnNwbGl0KCc9JylbMV0gOiBzcmN1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNyY3VybC5pbmRleE9mKFxcXCIvc2hhcmUvXFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBzcmN1cmwuc3BsaXQoXFxcIi9zaGFyZVxcXCIpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmYyA9IGZldGNoKHNyY3VybCwge30pLnJlcGxhY2UoXFxcInZhciBwdXJsXFxcIiwgXFxcInZhciBtYWluXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZjLmluZGV4T2YoXFxcIm1haW5cXFwiKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWF0ID0gZmMubWF0Y2goL3ZhciBtYWluLio/Oy8pWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKG1hdCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ID0gKG1haW4uaW5kZXhPZihcXFwiaHR0cFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbiA9IGZjLm1hdGNoKC91cmw6Lio/W1xcXFwnXFxcXFxcXCJdKC4qPylbXFxcXCdcXFxcXFxcIl0vKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXkgPSAobWFpbi5pbmRleE9mKFxcXCJodHRwXFxcIikgIT0gLTEgPyBtYWluIDogbGluayArIG1haW4pXFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGxheTtcXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3g1V2ViVmlldzovLycgKyAoc3JjdXJsKVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2FsaXp5Jykge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBmZXRjaCgnaHR0cHM6Ly9mb3ViaW4uY29tL2ppZXhpLnBocD91cmw9JyArIHNyY3VybCwge30pLm1hdGNoKC9cXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiKC4qPylcXFxcXFxcIi8pWzFdO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmw7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoLzE5anhcXFxcLnZpcHxuZnlpbmdzaGkvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBKU09OLnBhcnNlKGZldGNoKHNyY3VybC5yZXBsYWNlKCdodHRwOi8vJywgJ2h0dHBzOi8vJyksIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogTU9CSUxFX1VBXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEhlYWRlcnM6IHRydWVcXG4gICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKC90aXRhbi5tZ3R2Ly50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29ialxcXFwvdG9zLy50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybFxcbiAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAvKmVsc2UgaWYgKC96aGFpa2FueXMvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwgKyAnJmFwcD0xMDAwMyZhY2NvdW50PTI3Mjc3NTAyOCZwYXNzd29yZD1xcTI3Mjc3NTAyOCcsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoSGVhZGVyczogdHJ1ZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvdGl0YW4ubWd0di8udGVzdChwdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29ialxcXFwvdG9zLy50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ki9cXG5cXG4gICAgICAgICAgICAgICAgLy8tLS0t5YiG5Ymy57q/LS0tLS8vXFxuICAgICAgICAgICAgICAgIHZhciBzY29kZSA9IEpTT04ucGFyc2UoZmV0Y2goc3JjdXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxuICAgICAgICAgICAgICAgICAgICB3aXRoU3RhdHVzQ29kZTogdHJ1ZVxcbiAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgIC8vbG9nKHNjb2RlKTtcXG4gICAgICAgICAgICAgICAgaWYgKHNjb2RlLnN0YXR1c0NvZGUgPT0gJzMwMicgfHwgc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAxJykge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBzY29kZS5oZWFkZXJzLmxvY2F0aW9uWzBdLnJlcGxhY2UoL1xcXFxcXFxcL2csICcnKTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGh0bWwgPSByZXF1ZXN0KHNyY3VybCk7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IHNjb2RlLmJvZHk7XFxuICAgICAgICAgICAgICAgICAgICAvL2xvZyhodG1sKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvNDA0IE5vdCBGb3VuZHzlpIfmoYjlkI7lj6/nu6fnu63orr/pl64vLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXFxcXCJ1cmxcXFxcXFxcIlxcXFw6XFxcXFxcXCJodHRwLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBodG1sLm1hdGNoKC9cXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiKC4qPylcXFxcXFxcIi8pWzFdLnJlcGxhY2UoL1xcXFxcXFxcL2csICcnKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5zdGFydHNXaXRoKCd7JykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHVybCA9IHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy92YXIgcHVybCA9IHNyY3VybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9jb2RlLmFsaXl1bi5jb20vbHprMjM1NTkvUHVibGljUnVsZS9yYXcvbWFzdGVyL3g1cnVsZS5qcycsIDI0KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geDVydWxlKHNyY3VybCwgc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3JldHVybiAneDVXZWJWaWV3Oi8vJysoc3JjdXJsKSBcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgLy9sb2cocHVybCk7XFxuICAgICAgICAgICAgICAgIGlmICgvdGl0YW4ubWd0di8udGVzdChwdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvb2JqXFxcXC90b3MvLnRlc3QocHVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsXFxuICAgICAgICAgICAgICAgIH07XFxuXFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICBpZiAoc3JjdXJsLnN1YnN0cmluZygwLCAyKSA9PSAnXFxcXC9cXFxcLycpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKCdodHRwczonICsgc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXD1odHRwLy50ZXN0KHNyY3VybCkgJiYgL1xcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAvL3JldHVybiBzcmN1cmwuc3BsaXQoJz0nKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKSk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHnu5PmnZ9cXG4gICAgICAgIH0sIHB0YWIsIHNyY3VybCwgbXl1cmwpLFxcbiAgICAgICAgY29sX3R5cGU6IGNsdFxcbiAgICB9KTtcXG59XFxuLy99XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLliJfooajmqKHlvI/mkJzntKLkuoznuqdcIixcInBhdGhcIjpcInNlYXJlcmpcIixcInJ1bGVcIjpcInZhciByZXMgPSB7fTtcXG52YXIgaXRlbXMgPSBbXTtcXG52YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxudmFyIG1vbnRoID0gbm93RGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gXFxcIjBcXFwiICsgKG5vd0RhdGUuZ2V0TW9udGgoKSArIDEpIDogbm93RGF0ZS5nZXRNb250aCgpICsgMTtcXG52YXIgZGF5ID0gbm93RGF0ZS5nZXREYXRlKCkgPCAxMCA/IFxcXCIwXFxcIiArIG5vd0RhdGUuZ2V0RGF0ZSgpIDogbm93RGF0ZS5nZXREYXRlKCk7XFxudmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcbnZhciBzcGwgPSBnZXRSZXNDb2RlKCkuc3BsaXQoJyN4IycpO1xcbnZhciB0eXBldCA9IHNwbFszXTtcXG52YXIgdGRvbWluID0gc3BsWzJdO1xcbnZhciBrZXkgPSBzcGxbNF07XFxuXFxuaWYgKC92aXBtdi8udGVzdCh0ZG9taW4pKSB7XFxuICAgIHZhciBiaHRtbCA9IHJlcXVlc3Qoc3BsWzFdKTtcXG59IGVsc2Uge1xcbiAgICB2YXIgYmh0bWwgPSBmZXRjaChzcGxbMV0sIHtcXG4gICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IHRkb21pbi5pbmRleE9mKFxcXCJtb2dhaV9hcGlcXFwiKSAhPSAtMSA/IFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcIiA6IFxcXCJva2h0dHAvNC4xLjBcXFwiXFxuICAgICAgICB9XFxuICAgIH0pO1xcbn1cXG50cnkge1xcbiAgICBiaHRtbCA9IGJodG1sLnN0YXJ0c1dpdGgoJ1xcXFxyXFxcXG4nKSA/IGJodG1sLnJlcGxhY2UoJ1xcXFxyXFxcXG4nLCAnJykgOiBiaHRtbDtcXG59IGNhdGNoIChlKSB7fVxcbmlmICgvYnR3YWYvLnRlc3QoYmh0bWwpKSB7XFxuICAgIC8qXFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6J+acieWuneWhlOmqjOivge+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHNwbFsxXSArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAqL1xcblxcbiAgICBiaHRtbCA9IGZldGNoKHNwbFsxXSArICcmYnR3YWYnICsgYmh0bWwubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcIi8pWzFdLCB7fSk7XFxuXFxufVxcblxcbmlmIChiaHRtbCA9PSBcXFwiXFxcIiB8fCBiaHRtbCA9PSBudWxsIHx8IGJodG1sLnN1YnN0cmluZygwLCA1KSA9PSAnZXJyb3InIHx8ICFiaHRtbC5zdGFydHNXaXRoKCd7JykpIHtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+acquaQnOe0ouWIsOebuOWFs+i1hOa6kO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxuICAgICAgICB1cmw6IHNwbFsxXSArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgIH0pO1xcbn0gZWxzZSBpZiAoYmh0bWwubGVuZ3RoIDwgODApIHtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+i/lOWbnuaVsOaNruS4jeWujOaVtO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxuICAgICAgICB1cmw6IHNwbFsxXSArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgIH0pO1xcbn0gZWxzZSB7XFxuICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShiaHRtbCk7XFxuICAgIC8vbG9nKHNwbFsxXSk7XFxuICAgIGlmIChodG1sLmxpc3QpIHtcXG4gICAgICAgIHZhciBsaXN0ID0gaHRtbC5saXN0O1xcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS5saXN0KSB7XFxuICAgICAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YS5saXN0O1xcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSkge1xcbiAgICAgICAgdmFyIGxpc3QgPSBodG1sLmRhdGE7XFxuICAgIH1cXG5cXG4gICAgaWYgKGxpc3QubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6ICfmnKrmkJzntKLliLDvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcbiAgICAgICAgICAgIHVybDogc3BsWzFdICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgICAgICB9KTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcblxcbiAgICAgICAgICAgIGlmICgvVFYvLnRlc3QodHlwZXQpKSB7XFxuICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udGl0bGU7XFxuICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnBpYztcXG4gICAgICAgICAgICAgICAgLy92YXIgdmlkPXRkb21pbisnL2RldGFpbD92b2RfaWQ9JytsaXN0W2ldLm5leHRsaW5rKycmcmVsX2xpbWl0PTEwJztcXG4gICAgICAgICAgICAgICAgdmFyIHZpZCA9IGxpc3RbaV0ubmV4dGxpbms7XFxuICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnN0YXRlO1xcbiAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS5zdGF0ZTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBpZiAodGRvbWluLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvZmFudHVhbi8udGVzdCh0ZG9taW4pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS52b2RfcmVtYXJrcztcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGRvbWluLmluZGV4T2YoJ3hnYXBwLnBocC92MS8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gbGlzdFtpXS52b2RfbmFtZTtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnZvZF9waWM7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQ7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS52b2RfcmVtYXJrcztcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QodGRvbWluKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAnL2RldGFpbD9rZXk9JyArIGRhdGVTdHIgKyAnJnZvZF9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS52b2RfcmVtYXJrcztcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZS5yZXBsYWNlKGtleSwgJ+KAnOKAnCcgKyBrZXkgKyAn4oCd4oCdJyksXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IHBpYyArICdAUmVmZXJlcj0nLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQodGRvbWluLmluZGV4T2YoXFxcIm1vZ2FpX2FwaVxcXCIpICE9IC0xID8gdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nIDogdmlkICsgJztnZXQ7dXRmLTg7e1VzZXItQWdlbnRAb2todHRwLzQuMS4wfScpLnJ1bGUoKHR5cGV0KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSBbXTtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hYNVdlYlZpZXcoJycpO1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIG15dXJsID0gTVlfVVJMLm1hdGNoKC8oW1xcXFxTXSo/OlxcXFwvXFxcXC9bXFxcXFNdKj8pXFxcXC8vKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvVFYvLnRlc3QodHlwZXQpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvdHZtb3ZsaXN0Jywge30pKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICByZXMuZGF0YSA9IGl0ZW1zO1xcbiAgICAgICAgICAgICAgICAgICAgc2V0SG9tZVJlc3VsdChyZXMpO1xcbiAgICAgICAgICAgICAgICB9LCB0eXBldCksXFxuICAgICAgICAgICAgICAgIC8vY29udGVudDpyZW0sXFxuICAgICAgICAgICAgICAgIGRlc2M6IHJlbSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0gLy9mb3IgaVxcbiAgICB9IC8vZWxzZSBsaXN0Lmxlbmd0aFxcbn1cXG5cXG5yZXMuZGF0YSA9IGl0ZW1zO1xcbnNldEhvbWVSZXN1bHQocmVzKTtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIkFQUOmmlumhteWIl+ihqFwiLFwicGF0aFwiOlwiYXBwaW5kZXhkYXRhXCIsXCJydWxlXCI6XCJpZiAoaHRtbC5saXN0KSB7XFxuICAgIHZhciBsaXN0ID0gaHRtbC5saXN0O1xcbn0gZWxzZSBpZiAoaHRtbC5kYXRhICYmIGh0bWwuZGF0YS5saXN0KSB7XFxuICAgIHZhciBsaXN0ID0gaHRtbC5kYXRhLmxpc3Q7XFxufSBlbHNlIHtcXG4gICAgdmFyIGxpc3QgPSBodG1sLmRhdGE7XFxufVxcblxcbmZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcbiAgICBpZiAobGlzdFtpXS52b2RfbGlzdCkge1xcbiAgICAgICAgdmFyIGxpc3RzID0gbGlzdFtpXS52b2RfbGlzdDtcXG4gICAgICAgIHZhciB0eXBlbmFtZSA9IGxpc3RbaV0udm9kX3R5cGVfbmFtZTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHZhciBsaXN0cyA9IGxpc3RbaV0udmxpc3Q7XFxuICAgICAgICB2YXIgdHlwZW5hbWUgPSBsaXN0W2ldLnR5cGVfbmFtZVxcbiAgICB9XFxuICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHR5cGVuYW1lLFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuXFxuICAgIH0pO1xcblxcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxpc3RzLmxlbmd0aDsgaisrKSB7XFxuICAgICAgICB2YXIgdGl0bGUgPSBsaXN0c1tqXS52b2RfbmFtZTtcXG4gICAgICAgIHZhciBpbWcgPSBsaXN0c1tqXS52b2RfcGljO1xcbiAgICAgICAgdmFyIHVybCA9IGxpc3RzW2pdLnZvZF9pZDtcXG4gICAgICAgIHZhciBkZXNjID0gbGlzdHNbal0udm9kX3JlbWFya3M7XFxuICAgICAgICB2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxuICAgICAgICB2YXIgbW9udGggPSBub3dEYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyBcXFwiMFxcXCIgKyAobm93RGF0ZS5nZXRNb250aCgpICsgMSkgOiBub3dEYXRlLmdldE1vbnRoKCkgKyAxO1xcbiAgICAgICAgdmFyIGRheSA9IG5vd0RhdGUuZ2V0RGF0ZSgpIDwgMTAgPyBcXFwiMFxcXCIgKyBub3dEYXRlLmdldERhdGUoKSA6IG5vd0RhdGUuZ2V0RGF0ZSgpO1xcbiAgICAgICAgdmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcbiAgICAgICAgaWYgKGh0bWwubGlzdCkge1xcbiAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHVybCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcbiAgICAgICAgICAgIGlmIChtdXJsLnNlYXJjaCgvbW9nYWlfYXBpLykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJy9kZXRhaWw/a2V5PScgKyBkYXRlU3RyICsgJyZ2b2RfaWQ9JyArIHVybCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJy9kZXRhaWw/a2V5PScgKyBkYXRlU3RyICsgJyZ2b2RfaWQ9JyArIHVybCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBva2h0dHAvNC4xLjB9JztcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHVybCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgICAgICB9O1xcbiAgICAgICAgaWYgKC9mYW50dWFuLy50ZXN0KG11cmwpKSB7XFxuICAgICAgICAgICAgdmFyIGxpbmsgPSAnaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vYXBpLnBocC9hcHAvdmlkZW9fZGV0YWlsP2lkPScgKyB1cmwgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcbiAgICAgICAgfSBlbHNlIGlmICgvaW9wZW55dW4vLnRlc3QobXVybCkpIHtcXG4gICAgICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXG4gICAgICAgIH0gZWxzZSBpZiAoL2RpamlheGlhLy50ZXN0KG11cmwpKSB7XFxuICAgICAgICAgICAgdmFyIGxpbmsgPSAnaHR0cDovL3d3dy5kaWppYXhpYS5jb20vYXBpLnBocC9hcHAvdmlkZW9fZGV0YWlsP2lkPScgKyB1cmw7XFxuICAgICAgICB9XFxuICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICAgICAgcGljX3VybDogaW1nICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgdXJsOiAkKGxpbmspLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxuICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJycsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3g1X3dlYnZpZXdfc2luZ2xlJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFg1V2ViVmlldygnJyk7XFxuICAgICAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShnZXRSZXNDb2RlKCkpO1xcbiAgICAgICAgICAgICAgICB2YXIgbXl1cmwgPSBNWV9VUkwubWF0Y2goLyhbXFxcXFNdKj86XFxcXC9cXFxcL1tcXFxcU10qPylcXFxcLy8pWzFdO1xcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICAgICAgICAgIHJlcy5kYXRhID0gaXRlbXM7XFxuICAgICAgICAgICAgICAgIHNldEhvbWVSZXN1bHQocmVzKTtcXG4gICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICBkZXNjOiBkZXNjLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfM19tYXJxdWVlJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpppbmrKHlr7zlhaXnrYnlvoVcIixcInBhdGhcIjpcIndhaXRcIixcInJ1bGVcIjpcImZ1bmN0aW9uIGNhblVzZSgpIHtcXG4gICAgLypcXG4gICAgLy/lpoLmnpzmm7TmlrDkuobop4TliJnkuZ/opoHpmZDmtYHvvIzlj6/ku6Xkv67mlLlrZXlcXG4gICAgbGV0IGtleSA9IFxcXCJsb2NrNFxcXCJcXG4gICAgLy/nrYnlvoXliIbpkp/mlbBcXG4gICAgbGV0IHdhaXRNaW4gPSAxMFxcbiAgICBcXG4gICAgbGV0IG1pbiA9IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMDAgKiA2MCAqIHdhaXRNaW4pXFxuICAgIGxldCB1bmxvY2sgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIG1pbjtcXG4gICAgbGV0IHRpbWUgPSBnZXRJdGVtKGtleSwgXFxcIlxcXCIpO1xcbiAgICBpZiAodGltZSA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgc2V0SXRlbShrZXksIFxcXCJcXFwiICsgdW5sb2NrKVxcbiAgICAgICAgbGV0IHN0ID0gbmV3IERhdGUodW5sb2NrKS50b0xvY2FsZVN0cmluZygpLnJlcGxhY2UoLzpcXFxcZHsxLDJ9JC8sICcgJyk7XFxuICAgICAgICBsZXQgbXNnID0gXFxcIui/meaYr+aCqOesrOS4gOasoeS9v+eUqOivpeeJiOacrOinhOWIme+8jOS4uumBv+WFjeesrOS4gOasoeWvvOWFpeS9v+eUqOS6uuaVsOa/gOWinu+8jOinhOWImeWwhuWcqFxcXCIgKyBzdCArIFxcXCLop6PplIHkvb/nlKjjgII8YnI+PGJyPuWlveinhOWImeS4jeaAleaZmu+8jOivt+iAkOW/g+etieW+he+8geivpeaPkOekuuS7heWcqOesrOS4gOasoeWvvOWFpe+8iOabtOaWsO+8ieaXtuWHuueOsO+8jOWQjue7reS9v+eUqOi/h+eoi+S4reS4jeS8muWHuueOsO+8gVxcXCJcXG4gICAgICAgIHNldFJlc3VsdChbe1xcbiAgICAgICAgICAgIHRpdGxlOiBtc2csXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJyaWNoX3RleHRcXFwiXFxuICAgICAgICB9XSlcXG4gICAgICAgIHJldHVybiBmYWxzZVxcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHRpbWUpIDwgbmV3IERhdGUoKS5nZXRUaW1lKCkpIHtcXG4gICAgICAgIHJldHVybiB0cnVlXFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBsZXQgc3QgPSBuZXcgRGF0ZShwYXJzZUludCh0aW1lKSkudG9Mb2NhbGVTdHJpbmcoKS5yZXBsYWNlKC86XFxcXGR7MSwyfSQvLCAnICcpO1xcbiAgICAgICAgbGV0IG1zZyA9IFxcXCLkuLrpgb/lhY3kvb/nlKjkurrmlbDmv4Dlop7vvIzop4TliJnlsIblnKhcXFwiICsgc3QgKyBcXFwi6Kej6ZSB5L2/55So44CCPGJyPjxicj7lpb3op4TliJnkuI3mgJXmmZrvvIzor7fogJDlv4PnrYnlvoXvvIHor6Xmj5DnpLrku4XlnKjnrKzkuIDmrKHlr7zlhaXvvIjmm7TmlrDvvInml7blh7rnjrDvvIzlkI7nu63kvb/nlKjov4fnqIvkuK3kuI3kvJrlh7rnjrDvvIFcXFwiXFxuICAgICAgICBzZXRSZXN1bHQoW3tcXG4gICAgICAgICAgICB0aXRsZTogbXNnLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIlxcbiAgICAgICAgfV0pXFxuICAgICAgICByZXR1cm4gZmFsc2VcXG4gICAgfSovXFxuICAgIHJldHVybiB0cnVlXFxufVxcbiQuZXhwb3J0cyA9IGNhblVzZSgpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pat5b+15o+S5Lu26LCD55SoXCIsXCJwYXRoXCI6XCJkbnBsdWdpblwiLFwicnVsZVwiOlwidmFyIGRuZW4gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLmVuRG47XFxuaXRlbXMucHVzaCh7XFxuICAgIHRpdGxlOiAn5pat5o+S77yaJyArIChkbmVuID09ICcxJyA/ICfigJzigJzinIXigJ3igJ0nIDogJ+KdjicpLFxcbiAgICB1cmw6ICQoJycpLmxhenlSdWxlKChkbmVuKSA9PiB7XFxuICAgICAgICBpZiAoZG5lbiA9PSAnMScpIHtcXG4gICAgICAgICAgICB2YXIgZmlsZVVybCA9IGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFwiLCB7fSkucmVwbGFjZSgnXFxcXFxcXCJlbkRuXFxcXFxcXCI6XFxcXFxcXCIxXFxcXFxcXCInLCAnXFxcXFxcXCJlbkRuXFxcXFxcXCI6XFxcXFxcXCIwXFxcXFxcXCInKTtcXG4gICAgICAgICAgICB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvblxcXCIsIGZpbGVVcmwpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey56aB55So5pat5o+S6LCD55So77yBJztcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwge30pLnJlcGxhY2UoJ1xcXFxcXFwiZW5EblxcXFxcXFwiOlxcXFxcXFwiMFxcXFxcXFwiJywgJ1xcXFxcXFwiZW5EblxcXFxcXFwiOlxcXFxcXFwiMVxcXFxcXFwiJyk7XFxuICAgICAgICAgICAgLy9sb2coZmlsZVVybCk7XFxuICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFwiLCBmaWxlVXJsKTtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suW8gOWQr+aWreaPkuiwg+eUqO+8gSdcXG4gICAgICAgIH1cXG4gICAgfSwgZG5lbiksXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcbn0pO1xcbmlmIChkbmVuID09ICcxJykge1xcbiAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn57q/6Lev6YWN572uJyxcXG4gICAgICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5I0BydWxlPWpzOnRoaXMuZD1bXTtyZXF1aXJlKCdodHRwczovL2dpdGVhLmNvbS9BSTk1Ny9IaWtlci9yYXcvbS92L1JvdXRlLmpzJyk7Um91dGUuc2V0UGFyc2UoKTtzZXRSZXN1bHQoZCk7XFxcIixcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcbiAgICB9KTtcXG4gICAgaXRlbXMucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+ino+aekOeuoeeQhicsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSNAcnVsZT1qczp0aGlzLmQ9W107cmVxdWlyZSgnaHR0cHM6Ly9naXRlYS5jb20vQUk5NTcvSGlrZXIvcmF3L20vdi9qeEl0ZW0uanMnKTtqeEl0ZW0uanhMaXN0KCk7c2V0UmVzdWx0KGQpXFxcIixcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcbiAgICB9KTtcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLorr7nva7pobXku6PnoIFcIixcInBhdGhcIjpcInNldHRpbmdcIixcInJ1bGVcIjpcInZhciBkID0gW107XFxudmFyIHNldGpzb24gPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpO1xcbnZhciBzc21kID0gc2V0anNvbi5zc21vZGU7XFxudmFyIHNzeGMgPSBzZXRqc29uLnNzY291bnQ7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfmkJzntKLorr7nva4nLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICflvZPliY3vvJonICsgJygnICsgKHNzbWQgPT0gMSA/ICfogZrlkIjnu5PmnpwnIDogJ+W8leaTjuWIl+ihqCcpICsgJyknLFxcbiAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHknKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgICAgICB2YXIgbWQgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLnNzbW9kZTtcXG5cXG4gICAgICAgIGlmIChtZCA9PSAxKSB7XFxuICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwge30pLnJlcGxhY2UoJ1xcXFxcXFwic3Ntb2RlXFxcXFxcXCI6XFxcXFxcXCIxXFxcXFxcXCInLCAnXFxcXFxcXCJzc21vZGVcXFxcXFxcIjpcXFxcXFxcIjBcXFxcXFxcIicpO1xcbiAgICAgICAgICAgIHdyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwgZmlsZVVybCk7XFxuICAgICAgICAgICAgYmFjayh0cnVlKTtcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5YiH5o2i5Li65pCc57Si5byV5pOO5YiX6KGo5Y2V6YCJ5qih5byP5oiQ5Yqf77yBJztcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwge30pLnJlcGxhY2UoJ1xcXFxcXFwic3Ntb2RlXFxcXFxcXCI6XFxcXFxcXCIwXFxcXFxcXCInLCAnXFxcXFxcXCJzc21vZGVcXFxcXFxcIjpcXFxcXFxcIjFcXFxcXFxcIicpO1xcbiAgICAgICAgICAgIC8vbG9nKGZpbGVVcmwpO1xcbiAgICAgICAgICAgIHdyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwgZmlsZVVybCk7XFxuICAgICAgICAgICAgYmFjayh0cnVlKTtcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5YiH5o2i5Li66IGa5ZCI5pCc57Si5qih5byP5oiQ5Yqf77yBJ1xcbiAgICAgICAgfVxcbiAgICB9KSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzInXFxufSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+aQnOe0oui2heaXtignICsgJycgKyBnZXRJdGVtKCdhcHB0aW1vdXQnLCAnJykrJyknLFxcbiAgICB1cmw6IFxcXCJpbnB1dDovL1xcXCIgKyAnMzAwMCcgKyBcXFwiLy8vL+ivt+iuvue9rui2heaXtuaXtumXtO+8jDEwMDDkuLrkuIDnp5LjgIIuanM6dmFyIG51bSA9IHBhcnNlSW50KGlucHV0KS50b1N0cmluZygpO2lmIChudW0gPT0gJ05hTid8fG51bTwxMDAwKSB7J3RvYXN0Oi8v6L6T5YWl55qE5YC85aW95YOP5LiN5q2j56Gu44CCJzt9IGVsc2Uge3NldEl0ZW0oJ2FwcHRpbW91dCcsIG51bSk7cmVmcmVzaFBhZ2UoKTsndG9hc3Q6Ly/orr7nva7miJDlip/jgIInfVxcXCIsXFxuICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbn0pO1xcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn5pCc57Si57q/56iLJyArICcoJyArIHNzeGMgKyAnKScsXFxuICAgIHVybDogXFxcImlucHV0Oi8vXFxcIiArIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgIHZhbHVlOiBcXFwiNVxcXCIsXFxuICAgICAgICBoaW50OiBcXFwi6K+36L6T5YWl5LiA5Liq5pW05pWw5pWw5a2X77yM5o6o6I2Q5pyA5aSn5LiN6KaB6LaF6L+HMTXjgIJcXFwiLFxcbiAgICAgICAganM6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgIHZhciBudW0gPSBwYXJzZUludChpbnB1dCkudG9TdHJpbmcoKTtcXG4gICAgICAgICAgICBpZiAobnVtID09ICdOYU4nIHx8IG51bSA8IDEpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+i+k+WFpeeahOWAvOWlveWDj+S4jeato+ehruOAgic7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcIiwge30pLnJlcGxhY2UoL1xcXFxcXFwic3Njb3VudFxcXFxcXFwiOlxcXFxcXFwiW1xcXFxkXSpcXFxcXFxcIi8sICdcXFxcXFxcInNzY291bnRcXFxcXFxcIjpcXFxcXFxcIicgKyBudW0gKyAnXFxcXFxcXCInKTtcXG4gICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFwiLCBmaWxlVXJsKTtcXG4gICAgICAgICAgICAgICAgYmFjayh0cnVlKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+S/neWtmOiuvue9ruaQnOe0oue6v+eoi+WujOaIkO+8gSdcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KSxcXG4gICAgfSksXFxuICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbn0pO1xcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn5pu05paw55u45YWzJyxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn5qOA5rWL5pu05pawJyxcXG4gICAgdXJsOiAkKCcnKS5sYXp5UnVsZSgobG9jdmVyKSA9PiB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIHZhciByZW1mID0gZmV0Y2hDYWNoZSgnaHR0cHM6Ly9jb2RlYmVyZy5vcmcvbHprMjM1NTkvY2xvdWRydWxlL3Jhdy9icmFuY2gvbWFzdGVyL2FwcG1vdmllLnR4dCcsIDI0KTtcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICByZW1mID0gJyc7XFxuICAgICAgICB9XFxuICAgICAgICBpZiAoL++/pWJhc2U2NC8udGVzdChyZW1mKSkge1xcbiAgICAgICAgICAgIHZhciByZW12ID0gSlNPTi5wYXJzZShiYXNlNjREZWNvZGUocmVtZi5zcGxpdCgnQCcpWzJdKSkudmVyc2lvbjtcXG4gICAgICAgIH0gZWxzZSBpZiAoL++/pWhvbWVfcnVsZe+/pS8udGVzdChyZW1mKSkge1xcbiAgICAgICAgICAgIHZhciByZW12ID0gSlNPTi5wYXJzZShyZW1mLnNwbGl0KCfvv6Vob21lX3J1bGXvv6UnKVsxXSkudmVyc2lvbjtcXG4gICAgICAgIH07XFxuICAgICAgICBpZiAoL++/pWhvbWVfcnVsZS8udGVzdChyZW1mKSkge1xcbiAgICAgICAgICAgIGxvZygn6L+c56iL54mI5pys77yaJyArIHJlbXYpO1xcbiAgICAgICAgICAgIGxvZygn5pys5Zyw54mI5pys77yaJyArIGxvY3Zlcik7XFxuICAgICAgICAgICAgaWYgKGxvY3ZlciAhPSByZW12KSB7XFxuICAgICAgICAgICAgICAgIHB1dFZhcignYXBwbnZlcicsIHJlbWYpO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5pyJ5paw54mI5pys77yM54K55a+85YWl5pu05paw5Y+v5pu05paw6KeE5YiZ44CCJztcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5pqC5peg5paw54mI5pys77yMMjTlsI/ml7blhoXmo4DmtYvml6DmlYjjgIInXFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ajgOa1i+abtOaWsOWksei0pe+8jOWPr+iDveS6keerr+aKvemjjuS6huOAgidcXG4gICAgICAgIH1cXG4gICAgfSwgbG9jdmVyKSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzInXFxufSk7XFxuaWYgKGdldFZhcignYXBwbnZlcicpKSB7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogJ+WvvOWFpeabtOaWsCcsXFxuICAgICAgICB1cmw6ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFyKCdhcHBudmVyJyk7XFxuICAgICAgICB9KSxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbiAgICB9KTtcXG59XFxuc2V0UmVzdWx0KGQpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmnIDmlrDnq6DoioJcIixcInBhdGhcIjpcImNoYXB0ZXJcIixcInJ1bGVcIjpcInZhciBjaHAgPSBbXTtcXG50cnkge1xcbiAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXG4gICAgaWYgKGh0bWwudmlkZW9saXN0KSB7XFxuICAgICAgICB2YXIgY29udHMgPSBPYmplY3Qua2V5cyhodG1sLnZpZGVvbGlzdCk7XFxuICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgICAgIHZhciBjb250cyA9IGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyO1xcbiAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgfVxcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcbiAgICAgICAgdmFyIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxuICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICB2YXIgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfbGlzdDtcXG4gICAgICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXG4gICAgICAgIH1cXG4gICAgfVxcblxcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRzLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICBpZiAoaHRtbC52aWRlb2xpc3QpIHtcXG4gICAgICAgICAgICB2YXIgbGlzdCA9IGh0bWwudmlkZW9saXN0W2NvbnRzW2ldXTtcXG4gICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJscykge1xcbiAgICAgICAgICAgIHZhciBsaXN0ID0gY29udHNbaV0udXJscztcXG4gICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJsKSB7XFxuICAgICAgICAgICAgdmFyIGxpc3QgPSBjb250c1tpXS51cmwuc3BsaXQoXFxcIiNcXFwiKTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdmFyIGxpc3QgPSBjb250c1tpXS5zcGxpdChcXFwiI1xcXCIpO1xcbiAgICAgICAgfVxcbiAgICAgICAgY2hwLnB1c2gobGlzdC5sZW5ndGgpO1xcbiAgICB9XFxufSBjYXRjaCAoZSkge31cXG4vL2xvZyhNYXRoLm1heC5hcHBseShNYXRoLGNocCkpO1xcbnNldFJlc3VsdCgn5pu05paw6IezOicgKyAoTWF0aC5tYXguYXBwbHkoTWF0aCwgY2hwKSkpO1wifV0sXCJzYXZlZFwiOmZhbHNlLFwidGl0bGVcIjpcIkFQUOW9seinhihQKVwiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImhpa2VyOi8vZW1wdHkkJHE6VFblvbHop4YkJGh0dHA6Ly93d3cuY2NjdnZ2LnRvcC9hcGkucGhwL2lwdHYvdm9kLyQkP2FjPWxpc3QmY2xhc3M9JnBhZ2U9ZnlwYWdlJmFyZWE9JnR5cGU9JnN0YXJ0PSQkO2dldDtVVEYtODt7VXNlci1BZ2VudEBNb3ppbGxhLzUuMCAoTGludXjvvJvvvJsgQW5kcm9pZCAxMe+8m++8myBNaSAxMCBQcm8pIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS84OC4wLjQzMjQuMTUyIE1vYmlsZSBTYWZhcmkvNTM3LjM2fVwiLFwiY29sX3R5cGVcIjpcIm1vdmllXzFcIixcImZpbmRfcnVsZVwiOlwianM6XFxudmFyIHJlcyA9IHt9O1xcbnZhciBpdGVtcyA9IFtdO1xcbnZhciB0eXBldCA9IE1ZX1VSTC5zcGxpdCgnJCQnKVsxXTtcXG52YXIgbXVybCA9IE1ZX1VSTC5zcGxpdCgnJCQnKVsyXTtcXG52YXIgdHVybCA9IG11cmwgKyBNWV9VUkwuc3BsaXQoJyQkJylbM107XFxuXFxuaWYgKC9UVi9pLnRlc3QodHlwZXQpKSB7XFxuICAgIHZhciBwZyA9IE1ZX1VSTC5tYXRjaCgvcGFnZVxcXFw9KFtcXFxcZF0qKS8pWzFdO1xcbiAgICBpZiAocGcgPT0gMSkge1xcbiAgICAgICAgLy92YXIgdHlwdCA9ICgn55S15b2xJui/nue7reWJpybnu7zoibom5Yqo5ryrJykuc3BsaXQoJyYnKTtcXG4gICAgICAgIC8vdmFyIHR5cGwgPSAoJ21vdmllJnR2cGxheSZ0dnNob3cmY29taWMnKS5zcGxpdCgnJicpO1xcbiAgICAgICAgdmFyIHR5cGwgPSBPYmplY3Qua2V5cyhKU09OLnBhcnNlKGZldGNoKG11cmwgKyAnP2FjPWZsaXR0ZXInLCB7fSkpKTtcXG5cXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwbC5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgIHZhciB0eXVybCA9IG11cmwgKyAnP2FjPWxpc3QmY2xhc3M9JyArIHR5cGxbaV0gKyAnJnBhZ2U9ZnlwYWdlJmFyZWE9JnR5cGU9JnN0YXJ0PSc7XFxuICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0eXBsW2ldLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQodHl1cmwpLnJ1bGUoKG11cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXMgPSB7fTtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIG11cmwgPSBtdXJsO1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGdldFJlc0NvZGUoKSk7XFxuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dmxpc3RkYXRhJywge30pKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhID0gaXRlbXM7XFxuICAgICAgICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxuICAgICAgICAgICAgICAgIH0sIG11cmwpLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmUnXFxuICAgICAgICB9KTtcXG4gICAgfVxcblxcbiAgICB0cnkge1xcbiAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGZldGNoKHR1cmwpKTtcXG4gICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bGlzdGRhdGEnLCB7fSkpLnJ1bGUpO1xcbiAgICB9IGNhdGNoIChlKSB7fVxcbn0gZWxzZSB7XFxuICAgIGlmICgvZGlqaWF4aWEvLnRlc3QobXVybCkpIHtcXG4gICAgICAgIG11cmwgPSAnaHR0cDovL3d3dy5kaWppYXhpYS5jb20vYXBpLnBocC9hcHAvJ1xcbiAgICB9XFxuICAgIHRyeSB7XFxuICAgICAgICBpZiAobXVybC5zZWFyY2goL2FwaS5waHBcXFxcL2FwcC8pICE9IC0xKSB7XFxuXFxuICAgICAgICAgICAgdmFyIHR5cGNvZGUgPSByZXF1ZXN0KG11cmwgKyBcXFwibmF2P3Rva2VuPVxcXCIsIHtcXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiRGFydC8yLjE0IChkYXJ0OmlvKVxcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIGlmICh0eXBjb2RlLmluZGV4T2YoJ+ajgOa1i+S4rScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgIHR5cGNvZGUgPSBmZXRjaChtdXJsICsgXFxcIm5hdj90b2tlbj1cXFwiICsgJyZidHdhZicgKyB0eXBjb2RlLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwge30pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB2YXIgdHlwZWMgPSBKU09OLnBhcnNlKHR5cGNvZGUpLmxpc3Q7XFxuXFxuICAgICAgICB9IGVsc2UgaWYgKG11cmwuc2VhcmNoKC94Z2FwcC5waHBcXFxcL3YxLykgIT0gLTEpIHtcXG5cXG4gICAgICAgICAgICB2YXIgdHlwY29kZSA9IHJlcXVlc3QobXVybCArIFxcXCJuYXY/dG9rZW49XFxcIiwge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgaWYgKHR5cGNvZGUuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgdHlwY29kZSA9IGZldGNoKG11cmwgKyBcXFwibmF2P3Rva2VuPVxcXCIgKyAnJmJ0d2FmJyArIHR5cGNvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcIi8pWzFdLCB7fSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHZhciB0eXBlYyA9IEpTT04ucGFyc2UodHlwY29kZSkuZGF0YTtcXG5cXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgaWYgKG11cmwuc2VhcmNoKC9tb2dhaV9hcGkvKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICB2YXIgdHlwY29kZSA9IHJlcXVlc3QobXVybCArIFxcXCIvdHlwZXNcXFwiLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiRGFydC8yLjE0IChkYXJ0OmlvKVxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdmFyIHR5cGNvZGUgPSByZXF1ZXN0KG11cmwgKyBcXFwiL3R5cGVzXFxcIiwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogXFxcIm9raHR0cC80LjEuMFxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGlmICh0eXBjb2RlLmluZGV4T2YoJ+ajgOa1i+S4rScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgIHR5cGNvZGUgPSBmZXRjaChtdXJsICsgXFxcIi90eXBlc1xcXCIgKyAnP2J0d2FmJyArIHR5cGNvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcIi8pWzFdLCB7fSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHZhciB0eXBlYyA9IEpTT04ucGFyc2UodHlwY29kZSkuZGF0YS5saXN0O1xcblxcbiAgICAgICAgfVxcbiAgICAgICAgdmFyIHR5cGV0ID0gXFxcIlxcXCIsXFxuICAgICAgICAgICAgdHlwZWwgPSBcXFwiXFxcIjtcXG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdHlwZWMubGVuZ3RoOyBqKyspIHtcXG4gICAgICAgICAgICB0eXBldCArPSB0eXBlY1tqXS50eXBlX25hbWU7XFxuICAgICAgICAgICAgdHlwZWwgKz0gdHlwZWNbal0udHlwZV9pZDtcXG4gICAgICAgICAgICBpZiAoaiA8IHR5cGVjLmxlbmd0aCAtIDEpIHtcXG4gICAgICAgICAgICAgICAgdHlwZXQgKz0gXFxcIiZcXFwiO1xcbiAgICAgICAgICAgICAgICB0eXBlbCArPSBcXFwiJlxcXCI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgdmFyIHR5cHQgPSB0eXBldC5zcGxpdCgnJicpO1xcbiAgICAgICAgdmFyIHR5cGwgPSB0eXBlbC5zcGxpdCgnJicpO1xcblxcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXB0Lmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgaWYgKG11cmwuaW5kZXhPZignYXBpLnBocC9hcHAvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgaWYgKC9mYW50dWFuLy50ZXN0KG11cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgdHl1cmwgPSAnaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vYXBpLnBocC9hcHAvdmlkZW8/cGc9ZnlwYWdlJnRpZD0nICsgdHlwbFtpXSArICcmY2xhc3M9JmFyZWE9Jmxhbmc9JnllYXI9JnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHR5dXJsID0gbXVybCArICd2aWRlbz9wZz1meXBhZ2UmdGlkPScgKyB0eXBsW2ldICsgJyZjbGFzcz0mYXJlYT0mbGFuZz0meWVhcj0mdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG11cmwuaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgIHZhciB0eXVybCA9IG11cmwgKyAndmlkZW8/cGc9ZnlwYWdlJnRpZD0nICsgdHlwbFtpXSArICcmY2xhc3M9JmFyZWE9Jmxhbmc9JnllYXI9O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdChtdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHR5dXJsID0gbXVybCArICcvbGlzdD90eXBlPScgKyB0eXBsW2ldICsgJyZjbGFzcz0mbGFuZz0mYXJlYT0meWVhcj0mYnk9JnBhZ2U9ZnlwYWdlJmxpbWl0PTk7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9J1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG11cmwuc2VhcmNoKC9tb2dhaV9hcGkvKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHR5dXJsID0gbXVybCArICc/dHlwZT0nICsgdHlwbFtpXSArICcmY2xhc3M9Jmxhbmc9JmFyZWE9JnllYXI9JmJ5PSZwYWdlPWZ5cGFnZSZsaW1pdD05O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSdcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciB0eXVybCA9IG11cmwgKyAnP3R5cGU9JyArIHR5cGxbaV0gKyAnJmNsYXNzPSZsYW5nPSZhcmVhPSZ5ZWFyPSZieT0mcGFnZT1meXBhZ2UmbGltaXQ9OTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRAb2todHRwLzQuMS4wfSdcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHR5cHRbaV0sXFxuICAgICAgICAgICAgICAgIHVybDogJCh0eXVybCkucnVsZSgobXVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcyA9IHt9O1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1zID0gW107XFxuICAgICAgICAgICAgICAgICAgICB2YXIgbXVybCA9IG11cmw7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzY29kZSA9IGdldFJlc0NvZGUoKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNjb2RlLmluZGV4T2YoJ+ajgOa1i+S4rScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzY29kZSA9IGZldGNoKE1ZX1VSTCArICcmYnR3YWYnICsgcmVzY29kZS5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFwiLylbMV0sIHt9KTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShyZXNjb2RlKTtcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcGxpc3RkYXRhJywge30pKS5ydWxlKTtcXG5cXG4gICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhID0gaXRlbXM7XFxuICAgICAgICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxuICAgICAgICAgICAgICAgIH0sIG11cmwpLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xpbmUnXFxuICAgICAgICB9KTtcXG4gICAgfSBjYXRjaCAoZSkge31cXG5cXG5cXG4gICAgdHJ5IHtcXG4gICAgICAgIGlmIChtdXJsLnNlYXJjaCgvbW9nYWlfYXBpLykgIT0gLTEpIHtcXG4gICAgICAgICAgICB2YXIgaHRtbCA9IHJlcXVlc3QodHVybCwge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHZhciBodG1sID0gcmVxdWVzdCh0dXJsLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogXFxcIm9raHR0cC80LjEuMFxcXCJcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICAgICAgaWYgKGh0bWwuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXG4gICAgICAgICAgICBodG1sID0gZmV0Y2godHVybCArICcmYnR3YWYnICsgaHRtbC5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFwiLylbMV0sIHt9KTtcXG4gICAgICAgIH1cXG4gICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShodG1sKTtcXG4gICAgICAgIC8vbG9nKGh0bWwpO1xcbiAgICAgICAgLy9pZiAobXVybC5pbmRleE9mKCd4Z2FwcC5waHAvdjEvJykgIT0gLTEpIHtcXG4gICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcGluZGV4ZGF0YScsIHt9KSkucnVsZSk7XFxuICAgICAgICAvL30gZWxzZSB7XFxuICAgICAgICAvL2xvZyhodG1sKTtcXG4gICAgICAgIC8vZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbGlzdGRhdGEnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgLy99XFxuICAgIH0gY2F0Y2ggKGUpIHt9XFxuXFxufVxcblxcbnJlcy5kYXRhID0gaXRlbXM7XFxuc2V0SG9tZVJlc3VsdChyZXMpO1wiLFwiZ3JvdXBcIjpcIuKRoOaOqOiNkFwiLFwidWFcIjpcIm1vYmlsZVwiLFwicHJlUnVsZVwiOlwiaWYgKCFmaWxlRXhpc3QoJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicpKSB7XFxuICAgIGxldCBzZXQgPSBge1xcXCJzc21vZGVcXFwiOlxcXCIwXFxcIixcXFwic3Njb3VudFxcXCI6XFxcIjVcXFwiLFxcXCJlbkRuXFxcIjpcXFwiMFxcXCJ9YDtcXG4gICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFwiLCBzZXQpO1xcbn1cXG52YXIgcnVsZXNldCA9IGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSk7XFxuaWYgKCFKU09OLnBhcnNlKHJ1bGVzZXQpLmVuRG4pIHtcXG4gICAgbGV0IHNldCA9IHJ1bGVzZXQucmVwbGFjZSgnXFxcXFxcXCJcXFxcfScsICdcXFxcXFxcIlxcXFwsXFxcXFxcXCJlbkRuXFxcXFxcXCJcXFxcOlxcXFxcXFwiMFxcXFxcXFwiXFxcXH0nKTtcXG4gICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFwiLCBzZXQpO1xcbn1cIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5o6l5Y+j5pWw5o2uMjAyMi80LzFcXFwiLFxcXCJwYXRoXFxcIjpcXFwiUmVzQ29kZVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJ7XFxcXG4gICAgXFxcXFxcXCJkYXRhXFxcXFxcXCI6IFt7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5LyY6LSoXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImxpc3RcXFxcXFxcIjogW3tcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIjMwMOeci+S4lueVjFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vMzAweXMueHl6L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vMzAw55yL5LiW55WMLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCI0S+W9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly8xYXBpLjRrZHl0di5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi80S+W9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwiQ0pU5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly93d3cuY2p0NTIxLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0NKVOW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwiREPlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vY2hhb3JlbmJiLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0RD5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCJIR+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9oZ3l4LnZpcC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0hH5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCJ0dmlwXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2FwcC50dmlwLmNjL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vdHZpcC5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi54ix55yL576O5YmnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly93d3cudXVtancuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix55yL576O5YmnLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLniLHphbflvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3d3dy56aGFubGFuZ2J1LmNvbS9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHphbflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueZveWrluW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly96Z2p4ZHRnLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m95auW5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLliJ3lv4PlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3d3dy4xOG12LmNsdWIvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/liJ3lv4PlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueLrOaSreekvlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly8zNXlzLmNjL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54us5pKt56S+LnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlj67lvZPlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3R2LjA1NzN3bC5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lj67lvZPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuauteWPi+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly8xMjEuMjA0LjI0OS4xMzU6NDQzMy9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mrrXlj4vlvbHop4YzLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmrrXlj4vlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3NoYW5namlodW9rZS5jb20vYXBpLnBocC90di52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mrrXlj4vlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIumjnuaNt+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vd3d3LmZqNjA4MC5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po57mjbflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueyieixoeinhueVjFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly80Mi4xNTcuMTI5LjE1OjM0NDQ0L2x2ZG91X2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57KJ6LGh6KeG55WMLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLomY7njKvop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdnYuaHVtYW93ZWIuY29tL21vZ2FpX2FwaS5waHAvZ2N0dmFwaS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/omY7njKvop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIumjk+mjjuW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly95aWRheXkudG9wL2xlaGFpbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po5Ppo47lvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueci+eci+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9ray5jY2Jva2UudG9wL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eci+eci+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi57u/566t5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3d3dy42OXR5LmNjL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57u/566t5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLpm7bliLvlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3lzLmxpbmcwMC5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbtuWIu+W9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi55CF55CK5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2ZneXV1LnRvcC9sZWhhaWxiX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55CF55CK5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLonJzonILlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vYXBwLmY4dHAuY29tL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Jyc6JyC5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLpurvnk5zop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vYWxpeXVuLms4YWEuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6bq755Oc6KeG6aKRMS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi576O5Ymn6JmrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9tZWlqdWNob25nLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e+juWJp+iZqy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5aWI6Z2e6L+3XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9hcHAubmV0ZmxpeG1pLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WliOmdnui/t+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5Y2X5bqc5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2lhcHAubmZ1eHMuY2x1Yi9kbm1iLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ljZflupzlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuaaluWFieW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vYXBwLmJsMjEwLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aaluWFieW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6Z2S6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzE1MC4xNTguMTMzLjM2Ojk5MDQvcWluZ2RvdWppZWtvdS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Z2S6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlpKnor5rlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdGNzcHZpcC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeivmuW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5aSp5aSp5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9hcHAuZGFpc2h1c2MuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp5aSp5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLpm6rkurrlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3p5LnFkMjM0LmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Zuq5Lq65b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnm4rovr7lvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vbHVvYnUueXNzNjA4MC5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nm4rovr7lvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuW9seinhuWkp+WFqFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vYXBwLm9rbWVkY29zLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9seinhuWkp+WFqC5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5b2x6KeG6L6+5Lq6XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3d3dy55c2RyLnZpcC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mAmueUqOWbvuaghy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5LyY6KeG5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2FwcC55c3lzLmFzaWEvbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kvJjop4blvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuW9semYhemYgVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly8yMjEuMjM2LjE4LjEyOjY2NS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9semYhemYgS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6L+95Ymn5ZCnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3podWlqdTgudmlwL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6L+95Ymn5ZCn5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgXVxcXFxuICAgICAgICB9LFxcXFxuICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5pmu6YCaXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImxpc3RcXFxcXFxcIjogW3tcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIkpET0RPXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9hcHB5cy5qZG9kby54eXovbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9KRE9ET+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwiVTXlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2FwcHgudXkwNy5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9VNeW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6Zi/6YeM5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2FsaXlzLmNuOjkwL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Zi/6YeM5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLoib7nibnlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3d3dy5haXRlZS5jYy9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iJvueJueW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi54ix5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly93d3cuaHpsZmYuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueZvua3mOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly95cy41OGc4LmNvbS9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eZvua3mOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5q+U6YK75b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzBoenkuY246OTk5MC9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+avlOmCu+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5aSn5aiB55S15b2xXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3ZpcC5kYXZkeS5jb20vcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSn5aiB55S15b2xLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLosYbmuKPlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vZG91emhheXNzLmNjL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6LGG5rij5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlr5Lmnqvop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3ZpcC5zaGVueXVud2wuY24vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lr5Lmnqvop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIum7hOays+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9pLmxlZHU4LmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6buE5rKz5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmmZflhYjmo65cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2hhbnR2LnRvcC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aZl+WFiOajruW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi562L5paX5LqRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly90di5qaW5kY2xvdWQuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v562L5paX5LqR5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLogZrlkIjop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2FwcC5qaHlzdHYuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6IGa5ZCI6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmqZjlrZDlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vanouanV6aWR5LnZpcC9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+apmOWtkOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi55yL5Ymn5ZCnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2FwcC5pc2hlbjUyMC5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nnIvliaflkKcucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueci+eci+WJp1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vd3d3Lmthbmthbmp1LmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL55yL5YmnLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnnIvnnIvop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vODg4LmNjYm9rZS50b3AvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL55yL6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlhrfop4ZUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vbGVuLnR2L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Ya36KeGVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuS5kOS6keW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vd3d3LmxleXVuLnR2L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LmQ5LqR5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlhY3otLnlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vMTExLjIyOS4xMjAuMTgwOjg4L2x2ZG91X2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5YWN6LS55b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnvo7liafojINcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdHR6bXoubmV0L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v576O5Ymn6IyDLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLku7vmgKfnnItcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3JlbnhpbmdrYW4ubmV0L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Lu75oCn55yLLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLpmo/po47lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vYXBwLnJ1Y2h1LmNsb3VkL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6ZqP6aOO5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLkuInml6XlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3d3dy4zcmkubmV0L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LiJ5pel5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmt5jliafnpL5cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2FwcC5zaHVoYWk5OS5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mt5jliafnpL4ucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWkqeWkqeinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9hcHAucWlhbmp1LmNjL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp5aSp6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlhZTlrZDnqp1cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vY2ouaHVpbWFvamlhLmNvbToxMjM0NS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WFlOWtkOeqnS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5oiR54ix6Lef5YmnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly93d3cuZ2VubW92LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aIkeeIsei3n+WJpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6JyX54mb5Yqo5ryrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3dvbml1ZG0ud29uaXUuY3lvdToyMDAwMC9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+icl+eJm+WKqOa8qy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi54aK54yr5Yqo5ryrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2RvbmdtYW4uazhhYS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nhornjKvliqjmvKsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueGiueMq+inhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9hbmVnaC5jb20vbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nhornjKvop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWwj+m4n+WKqOa8q1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly94eWRtLmJhaWNhaS5idXp6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP6bif5Yqo5ryrLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlsI/onLvonJNcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vM2tldHYuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP6Jy76JyT6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmmJ/nkIPop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vMTE5LjI5LjEyMS40ODo4MDg4L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pif55CD6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmnIjlhL/lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3l1ZTUyLnh5ei9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mAmueUqOWbvuaghy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5b2x6KeG5aSn5YWoXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly94Yy54aXhpMnl5Lnh5ei9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9seinhuWkp+WFqEhELnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmuJTmuJTlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vbHVvYm8ueXVnZW55ZS5zaXRlL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5riU5riU5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmn5rlrZDop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8veXouMjZ5cy5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+afmuWtkOinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6L+95Ymn54yrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3R2LmttdHZiLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+i/veWJp+eMqzEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBdXFxcXG4gICAgICAgIH0sXFxcXG4gICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlpKfnhopcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibGlzdFxcXFxcXFwiOiBbe1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5aSn54aKXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9keHlzMjIzMy5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKfnhooucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIua1geaYn1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9ma3hzMjIzMy5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mtYHmmJ8ucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWFqOiDvVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vcW55czU1NjYuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5YWo6IO9LnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLmiYvmjIdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL3N6eXM1Njc4LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aJi+aMhy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5b+D54ixXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly94YXlzNjY3Ny5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lv4PniLEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIumbquaiqFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8venNiMjIzMy5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pm6rmoqgucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuadqOahg1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8veXR5czM0NTYuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p2o5qGDLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgXVxcXFxuICAgICAgICB9LFxcXFxuICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi56We6amsXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImxpc3RcXFxcXFxcIjogW3tcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIjLlj7fluIFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vcGhvZWJlLmNmL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vMuWPt+W4geW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCJDVuW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly93d3cuY2NjdnZ2LnRvcC9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0NW5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIkhH5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2FwaS5oZ3l4LnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0hH5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIueIseilv+ilv1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3R2Mi5haXhpeGkudmlwL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix6KW/6KW/VFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5Y+u5b2TVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdHYuaHlkZHlzLnRvcC9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WPruW9k1RWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWkp+W4iOWFhFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9kc3h0di50di5jaS9hcGkucGhwL2RzeC92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSn5biI5YWE5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIumdnuWHoeW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9jbXMuZmVpZmFuMTIueHl6L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Z2e5Yeh5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIumjnuaJrFRWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2RpYW5jai56aGVuZnkuY24vYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po57miaxUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLlmL/ojbzplItcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdHYuaGZ5czgudmlwL2FwaS5waHAvU250di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Zi/6I286ZSLLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIum7kem+meW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly92aXAuamktZGluZy1oZS5zaXRlL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6buR6b6Z5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuaegeWTgeW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly9qcHNiLnloenkueHl6L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p6B5ZOB5b2x6KeGVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5p6B5ZOB5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzI5M3gueWh6eS54eXovbXYvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnoHlk4HlvbHpmaJUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLojZTmnp3lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vYXBpLnpqeXMudmlwL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6I2U5p6d5b2x6KeGVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi6Jyc5p6cVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdnYubWlndW90di5uZXQvbS9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+icnOaenFRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuexs+adpeW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly80Mi41MS4zNy4xNjE6MjM0Ni9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+exs+adpeW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnjKvlkqpUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly8xMDYuMTIuMTEzLjkwOjY1NjUvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/njKvlkqpUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLnsbPlpYdUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOiBcXFxcXFxcImh0dHA6Ly93d3cuczZlcDMudG9wL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Gz5aWHVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5bGx5qWC5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL2R5Ni5kY2QxLmNuL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bGx5qWC5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjogXFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOiBcXFxcXFxcIuWkqeepulRWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovL3R2LnRreXMudHYvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnnqbpUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjogXFxcXFxcXCLomb7nmq7op4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdHYuY210OC54eXovYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjogXFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/omb7nmq7op4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5bCP54aK54yrVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjogXFxcXFxcXCJodHRwOi8vdHYyLmhldGFveXMudmlwL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6IFxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP54aK54yrVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOiBcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6IFxcXFxcXFwi5b2x6KeG6ZiBXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6IFxcXFxcXFwiaHR0cDovLzIxNi45OC4xMC44NS9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOiBcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9seinhumYgS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6IFxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgXVxcXFxuICAgICAgICB9XFxcXG4gICAgXVxcXFxufVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuaQnOe0olxcXCIsXFxcInBhdGhcXFwiOlxcXCJzZWFyXFxcIixcXFwicnVsZVxcXCI6XFxcInZhciByZXMgPSB7fTtcXFxcbnZhciBpdGVtcyA9IFtdO1xcXFxuLy/orr7nva7mkJzntKLnur/nqItcXFxcbnZhciBzc21vZGUgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLnNzbW9kZTtcXFxcbnZhciBrZXkgPSBNWV9VUkwuc3BsaXQoJyQkJCcpWzFdO1xcXFxuLy9zZXRFcnJvcihsZSk7XFxcXG5pZiAoc3Ntb2RlID09ICcwJykge1xcXFxuICAgIHNldFBhZ2VUaXRsZShrZXkgKyAnIOeahOaQnOe0oue7k+aenCcpXFxcXG59O1xcXFxudHJ5IHtcXFxcbiAgICB2YXIgYXBwZmlsZSA9IGZldGNoQ2FjaGUoJ2h0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BUFAuanNvbicsIDI0KTtcXFxcbn0gY2F0Y2ggKGUpIHtcXFxcbiAgICBhcHBmaWxlID0gJyc7XFxcXG59XFxcXG5pZiAoL2Vtb3J5Ly50ZXN0KGFwcGZpbGUpKSB7XFxcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGFwcGZpbGUpO1xcXFxufSBlbHNlIHtcXFxcbiAgICBsb2coJ+W9k+WJjeWKoOi9veeahOaYr+WGhee9ruaVsOaNricpO1xcXFxuICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvUmVzQ29kZScsIHt9KSkucnVsZSk7XFxcXG59O1xcXFxudmFyIGRsaXN0ID0gaHRtbC5kYXRhO1xcXFxuXFxcXG5mdW5jdGlvbiByYW5kb21Tb3J0MyhhcnIpIHtcXFxcbiAgICAvKlxcXFxuICAgICAgICBhcnIuc29ydChmdW5jdGlvbihhLCBiKSB7XFxcXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAtIDAuNTtcXFxcbiAgICAgICAgfSk7XFxcXG4gICAgKi9cXFxcbiAgICByZXR1cm4gYXJyO1xcXFxufVxcXFxuXFxcXG4vL+aJk+S5semhuuW6j1xcXFxudmFyIHJhbmRvbSA9IHRydWU7XFxcXG5pZiAoc3Ntb2RlID09ICcxJyB8fCBNWV9UWVBFID09ICdob21lJykge1xcXFxuICAgIGZvciAodmFyIGwgPSAwOyBsIDwgZGxpc3QubGVuZ3RoOyBsKyspIHtcXFxcbiAgICAgICAgdmFyIGxpc3QgPSBkbGlzdFtsXS5saXN0O1xcXFxuICAgICAgICB2YXIgdHl0aXQgPSBkbGlzdFtsXS50aXRsZTtcXFxcbiAgICAgICAgaWYgKHJhbmRvbSkge1xcXFxuICAgICAgICAgICAgbGV0IGsgPSBnZXRWYXIoTVlfUlVMRS50aXRsZSArIFxcXFxcXFwiLVxcXFxcXFwiICsgdHl0aXQsIFxcXFxcXFwiXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgaWYgKGsgPT0gXFxcXFxcXCJcXFxcXFxcIikge1xcXFxuICAgICAgICAgICAgICAgIGxpc3QgPSByYW5kb21Tb3J0MyhsaXN0KVxcXFxuICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnRpdGxlICsgXFxcXFxcXCItXFxcXFxcXCIgKyB0eXRpdCwgSlNPTi5zdHJpbmdpZnkobGlzdCkpXFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIGxpc3QgPSBKU09OLnBhcnNlKGspXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH1cXFxcblxcXFxuXFxcXG4gICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6IE1ZX1RZUEUgPT0gXFxcXFxcXCJob21lXFxcXFxcXCIgPyBcXFxcXFxcIueCueWHu+afpeeciyBcXFxcXFxcIiArIHR5dGl0ICsgXFxcXFxcXCIg5YiG57G7IOKAnOKAnFxcXFxcXFwiICsga2V5ICsgXFxcXFxcXCLigJ3igJ0g55qE6IGa5pCc57uT5p6cXFxcXFxcXCIgOiBcXFxcXFxcIueCueWHu+afpeeciyBcXFxcXFxcIiArIHR5dGl0ICsgXFxcXFxcXCIg5YiG57G7IFxcXFxcXFwiICsga2V5ICsgXFxcXFxcXCIg55qE6IGa5pCc57uT5p6cXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkkJCQnICsga2V5ICsgJyQkJGZ5cGFnZSQkJCcpLnJ1bGUoKGxpc3QsIHR5dGl0KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgdmFyIHJlcyA9IHt9O1xcXFxuICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIHZhciBub3dEYXRlID0gbmV3IERhdGUoKTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgbW9udGggPSBub3dEYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyBcXFxcXFxcIjBcXFxcXFxcIiArIChub3dEYXRlLmdldE1vbnRoKCkgKyAxKSA6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDE7XFxcXG4gICAgICAgICAgICAgICAgdmFyIGRheSA9IG5vd0RhdGUuZ2V0RGF0ZSgpIDwgMTAgPyBcXFxcXFxcIjBcXFxcXFxcIiArIG5vd0RhdGUuZ2V0RGF0ZSgpIDogbm93RGF0ZS5nZXREYXRlKCk7XFxcXG4gICAgICAgICAgICAgICAgdmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcXFxuICAgICAgICAgICAgICAgIC8v5Y+W5pCc57Si57q/56iL6K6+572uXFxcXG4gICAgICAgICAgICAgICAgdmFyIHNzeGMgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLnNzY291bnQ7XFxcXG4gICAgICAgICAgICAgICAgLy/orr7nva7otoXml7bml7bpl7TvvIzotorlsI/otorlv6vvvIzljZXkvY3mr6vnp5JcXFxcbiAgICAgICAgICAgICAgICB2YXIgdGltZW91ID0gZ2V0SXRlbSgnYXBwdGltb3V0JywgJzMwMDAnKTtcXFxcbiAgICAgICAgICAgICAgICB2YXIga2V5ID0gTVlfVVJMLnNwbGl0KCckJCQnKVsxXTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgbnVtID0gTVlfVVJMLnNwbGl0KCckJCQnKVsyXTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgbGUgPSBwYXJzZUludChudW0gKiBzc3hjKTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgRGF0YSA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIHZhciBUaXQgPSBbXTtcXFxcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gbGUgLSBzc3hjOyBqIDwgbGU7IGorKykge1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoaiA8IGxpc3QubGVuZ3RoKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGluayA9IGxpc3Rbal0udXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpdGl0ID0gbGlzdFtqXS5tdXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9UVi9pLnRlc3QobGl0aXQpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC8xOWp4fDI5M3lzfHpoYWlrYW55c3xqaVxcXFxcXFxcLWRpbmdcXFxcXFxcXC1oZXxwaG9lYmV8eXVuYm9cXFxcXFxcXC5ieGlufGxhbnJlbnRrfGhldGFveXN8cHh1bnwxMzlcXFxcXFxcXC4xNTV8ZmtrZHl8MDU2MTU4fGFpeGl4aXxydW94aW5ld3xmZWlmYW4xMjN8c2lxaXR2Ly50ZXN0KGxpbmspKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobXVybCA9IGxpbmsgKyAnP2FjPWxpc3Qmem09JyArIGtleSArICcmcGFnZT0xJztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJz9hYz1saXN0JndkPScgKyBrZXkgKyAnJnBhZ2U9MSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2RpamlheGlhLy50ZXN0KGxpbmspKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSAnaHR0cDovL3d3dy5kaWppYXhpYS5jb20vYXBpLnBocC9hcHAvJ1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmsuaW5kZXhPZignYXBpLnBocC9hcHAvJykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhtdXJsID0gbGluayArICdzZWFyY2g/cGc9MSZ0ZXh0PScgKyBrZXkgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsaW5rLmluZGV4T2YoJ3hnYXBwLnBocC92MS8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJ3NlYXJjaD9wZz0xJnRleHQ9JyArIGtleTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KGxpbmspKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJy9saXN0P3BhZ2U9ZnlwYWdlJmxpbWl0PTEwJndkPScgKyBrZXk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJz9wYWdlPTEmbGltaXQ9MTAmd2Q9JyArIGtleTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vRGF0YS5wdXNoKHt1cmw6IGhtdXJsLG9wdGlvbnM6IHtoZWFkZXJzOiB7XFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFxcXFxcXFwiRGFydC8yLjE0IChkYXJ0OmlvKVxcXFxcXFwifSx0aW1lb3V0OiB0aW1lb3V9fSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRhLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogaG11cmwsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogbGluay5pbmRleE9mKFxcXFxcXFwibW9nYWlfYXBpXFxcXFxcXCIpICE9IC0xID8gXFxcXFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcXFxcXCIgOiBcXFxcXFxcIm9raHR0cC80LjEuMFxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IHRpbWVvdVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgVGl0LnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdDogbGlzdFtqXS50aXRsZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBsaW5rLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cG5tOiBsaXRpdFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gLy9pZlxcXFxuICAgICAgICAgICAgICAgIH0gLy9mb3IgalxcXFxuXFxcXG4gICAgICAgICAgICAgICAgLy8tLS3ku6PnoIHliIbnlYznur8tLS0tIFxcXFxuICAgICAgICAgICAgICAgIGlmIChEYXRhICE9ICcnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBiaHRtbCA9IGJhdGNoRmV0Y2goRGF0YSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vd3JpdGVGaWxlKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwRXJyb3IuanNvblxcXFxcXFwiLEpTT04uc3RyaW5naWZ5KGJodG1sKSk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBiaHRtbC5sZW5ndGg7IGsrKykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBiaHRtbFtrXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKGh0bWwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sID0gaHRtbC5zdWJzdHJpbmcoMCwgMikgPT0gJ1xcXFxcXFxcclxcXFxcXFxcbicgPyBodG1sLnJlcGxhY2UoJ1xcXFxcXFxcclxcXFxcXFxcbicsICcnKSA6IGh0bWw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9idHdhZi8udGVzdChodG1sKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgPSBmZXRjaChEYXRhW2tdLnVybCArICcmYnR3YWYnICsgaHRtbC5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXSwge30pO1xcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbCA9PSBcXFxcXFxcIlxcXFxcXFwiIHx8IGh0bWwgPT0gbnVsbCB8fCBodG1sLnN1YnN0cmluZygwLCA1KSA9PSAnZXJyb3InIHx8ICFodG1sLnN0YXJ0c1dpdGgoJ3snKSkge1xcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBUaXRba10udGl0ICsgJyAnICsgJ+acquaQnOe0ouWIsO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogRGF0YVtrXS51cmwgKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5sZW5ndGggPCA4MCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogVGl0W2tdLnRpdCArICcgJyArICfov5Tlm57mlbDmja7kuI3lrozmlbTvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IERhdGFba10udXJsICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coaHRtbCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHR5cGV0ID0gVGl0W2tdLnR5cG5tO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZG9taW4gPSBUaXRba10ubGluaztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbC5saXN0KSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gaHRtbC5saXN0O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLmxpc3QpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IGh0bWwuZGF0YTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IFtdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC5sZW5ndGggPCAxKSB7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogVGl0W2tdLnRpdCArICcgJyArICfliJfooajlsI/kuo4x77yM5peg5rOV5bGV56S677yM54K55Ye76K6/6Zeu5Y6f572R6aG1JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogRGF0YVtrXS51cmwgKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9UVi9pLnRlc3QodHlwZXQpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gbGlzdFtpXS50aXRsZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS5waWM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IGxpc3RbaV0ubmV4dGxpbms7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbSA9IGxpc3RbaV0uc3RhdGU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRkb21pbi5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS52b2RfcGljO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2ZhbnR1YW4vLnRlc3QodGRvbWluKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICd2aWRlb19kZXRhaWw/aWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS50eXBlLnR5cGVfZGVzO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGRvbWluLmluZGV4T2YoJ3hnYXBwLnBocC92MS8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS52b2RfcGljO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQ7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS50eXBlLnR5cGVfZGVzO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnZvZF9waWM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QodGRvbWluKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICcvZGV0YWlsSUQ/dm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAnL2RldGFpbD9rZXk9JyArIGRhdGVTdHIgKyAnJnZvZF9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbSA9IGxpc3RbaV0udm9kX3JlbWFya3M7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS5zdGF0ZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKHZpZCk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBNWV9UWVBFID09IFxcXFxcXFwiaG9tZVxcXFxcXFwiID8gdGl0bGUucmVwbGFjZShrZXksICfigJzigJwnICsga2V5ICsgJ+KAneKAnScpICsgJ1xcXFxcXFxcbicgKyByZW0gOiB0aXRsZSArIHJlbSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBwaWMgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQodGRvbWluLmluZGV4T2YoXFxcXFxcXCJtb2dhaV9hcGlcXFxcXFxcIikgIT0gLTEgPyB2aWQgKyAnO2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfScgOiB2aWQgKyAnO2dldDt1dGYtODt7VXNlci1BZ2VudEBva2h0dHAvNC4xLjB9JykucnVsZSgodHlwZXQpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcyA9IHt9O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSBbXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGdldFJlc0NvZGUoKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogJzI1NSYmZmxvYXQnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAnJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXl1cmwgPSBNWV9VUkwubWF0Y2goLyhbXFxcXFxcXFxTXSo/OlxcXFxcXFxcL1xcXFxcXFxcL1tcXFxcXFxcXFNdKj8pXFxcXFxcXFwvLylbMV07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvVFYvaS50ZXN0KHR5cGV0KSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvdHZtb3ZsaXN0Jywge30pKS5ydWxlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcG1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SG9tZVJlc3VsdChyZXMpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHR5cGV0KSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnRlbnQ6IHJlbSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiB0eXRpdCArICcgPT4gJyArIFRpdFtrXS50aXQsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IC8vZm9yIGlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IC8vaWYgbGlzdC5sZW5ndGhcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfSAvL2ZvciBrIGJodG1sLmxlbmd0aFxcXFxuICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgIHJlcy5kYXRhID0gaXRlbXM7XFxcXG4gICAgICAgICAgICAgICAgc2V0SG9tZVJlc3VsdChyZXMpO1xcXFxuICAgICAgICAgICAgfSwgbGlzdCwgdHl0aXQpLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgICAgIH0pO1xcXFxuXFxcXG4gICAgfSAvL2ZvciBpXFxcXG59OyAvL2VuZCBtb2RlIDFcXFxcblxcXFxuaWYgKHNzbW9kZSA9PSAnMCcgfHwgTVlfVFlQRSA9PSAnaG9tZScpIHtcXFxcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRsaXN0Lmxlbmd0aDsgaSsrKSB7XFxcXG4gICAgICAgIHZhciBsaXN0ID0gZGxpc3RbaV0ubGlzdDtcXFxcbiAgICAgICAgdmFyIHR5dGl0ID0gZGxpc3RbaV0udGl0bGU7XFxcXG4gICAgICAgIGlmIChyYW5kb20pIHtcXFxcbiAgICAgICAgICAgIGxldCBrID0gZ2V0VmFyKE1ZX1JVTEUudGl0bGUgKyBcXFxcXFxcIi1cXFxcXFxcIiArIHR5dGl0LCBcXFxcXFxcIlxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgIGlmIChrID09IFxcXFxcXFwiXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICBsaXN0ID0gcmFuZG9tU29ydDMobGlzdClcXFxcbiAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS50aXRsZSArIFxcXFxcXFwiLVxcXFxcXFwiICsgdHl0aXQsIEpTT04uc3RyaW5naWZ5KGxpc3QpKVxcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICBsaXN0ID0gSlNPTi5wYXJzZShrKVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogTVlfVFlQRSA9PSBcXFxcXFxcImhvbWVcXFxcXFxcIiA/IFxcXFxcXFwiIOmAieaLqeS4gOS4qiBcXFxcXFxcIiArIGRsaXN0W2ldLnRpdGxlICsgXFxcXFxcXCIg6aG555uu5p+l55yLIOKAnOKAnFxcXFxcXFwiICsga2V5ICsgXFxcXFxcXCLigJ3igJ0g55qE5pCc57Si57uT5p6cXFxcXFxcXCIgOiBcXFxcXFxcIiDpgInmi6nkuIDkuKogXFxcXFxcXCIgKyBkbGlzdFtpXS50aXRsZSArIFxcXFxcXFwiIOmhueebruafpeeciyBcXFxcXFxcIiArIGtleSArIFxcXFxcXFwiIOeahOaQnOe0oue7k+aenFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgICAgIH0pO1xcXFxuXFxcXG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xcXFxuICAgICAgICAgICAgdmFyIGxpbmsgPSBsaXN0W2pdLnVybDtcXFxcbiAgICAgICAgICAgIHZhciBsaXRpdCA9IGxpc3Rbal0ubXVybDtcXFxcbiAgICAgICAgICAgIGlmICgvVFYvaS50ZXN0KGxpdGl0KSkge1xcXFxuICAgICAgICAgICAgICAgIGlmICgvMTlqeHwyOTN5c3x6aGFpa2FueXN8amlcXFxcXFxcXC1kaW5nXFxcXFxcXFwtaGV8cGhvZWJlfHl1bmJvXFxcXFxcXFwuYnhpbnxsYW5yZW50a3xoZXRhb3lzfHB4dW58MTM5XFxcXFxcXFwuMTU1fGZra2R5fDA1NjE1OHxhaXhpeGl8cnVveGluZXd8ZmVpZmFuMTIzfHNpcWl0di8udGVzdChsaW5rKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJz9hYz1saXN0JnptPScgKyBrZXkgKyAnJnBhZ2U9ZnlwYWdlJztcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJz9hYz1saXN0JndkPScgKyBrZXkgKyAnJnBhZ2U9ZnlwYWdlJztcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIGlmICgvZGlqaWF4aWEvLnRlc3QobGluaykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC8nXFxcXG4gICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICBpZiAobGluay5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJ3NlYXJjaD9wZz1meXBhZ2UmdGV4dD0nICsga2V5ICsgJyZ0b2tlbj0nO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGluay5pbmRleE9mKCd4Z2FwcC5waHAvdjEvJykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIGhtdXJsID0gbGluayArICdzZWFyY2g/cGc9ZnlwYWdlJnRleHQ9JyArIGtleTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KGxpbmspKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJy9saXN0P3BhZ2U9ZnlwYWdlJmxpbWl0PTEwJndkPScgKyBrZXk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaG11cmwgPSBsaW5rICsgJz9wYWdlPWZ5cGFnZSZsaW1pdD0xMCZ3ZD0nICsga2V5O1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGxpc3Rbal0udGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgaW1nOiBsaXN0W2pdLmltZyxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjeCMnICsgaG11cmwgKyAnI3gjJyArIGxpbmsgKyAnI3gjJyArIGxpdGl0ICsgJyN4IycgKyBrZXkgKyAnI3gjJykucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL3NlYXJlcmonKTtcXFxcbiAgICAgICAgICAgICAgICB9KSxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ljb25fcm91bmRfc21hbGxfNCdcXFxcbiAgICAgICAgICAgICAgICAvL2NvbF90eXBlOiAndGV4dF8zJ1xcXFxuICAgICAgICAgICAgICAgIC8vbGluazpsaW5rLFxcXFxuICAgICAgICAgICAgICAgIC8vdHlwZTogaVxcXFxuICAgICAgICAgICAgfSk7XFxcXG5cXFxcbiAgICAgICAgfSAvL2ZvciBqXFxcXG5cXFxcblxcXFxuICAgIH0gLy9mb3IgaVxcXFxuXFxcXG59IC8vZW5kIG1vZGUgMFxcXFxuXFxcXG5cXFxcbnJlcy5kYXRhID0gaXRlbXM7XFxcXG5zZXRIb21lUmVzdWx0KHJlcyk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwiQVBQ5YiG57G75YiX6KGoXFxcIixcXFwicGF0aFxcXCI6XFxcImFwcGxpc3RkYXRhXFxcIixcXFwicnVsZVxcXCI6XFxcImlmIChodG1sLmxpc3QpIHtcXFxcbiAgICB2YXIgbGlzdCA9IGh0bWwubGlzdDtcXFxcbn0gZWxzZSBpZiAoaHRtbC5kYXRhICYmIGh0bWwuZGF0YS5saXN0KSB7XFxcXG4gICAgdmFyIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXFxcbn0gZWxzZSB7XFxcXG4gICAgdmFyIGxpc3QgPSBodG1sLmRhdGE7XFxcXG59XFxcXG4vL2xvZyhsaXN0KTtcXFxcbmZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcXFxuICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxcXG4gICAgdmFyIGltZyA9IGxpc3RbaV0udm9kX3BpYztcXFxcbiAgICB2YXIgdXJsID0gbGlzdFtpXS52b2RfaWQ7XFxcXG4gICAgdmFyIGRlc2MgPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcXFxuICAgIHZhciBub3dEYXRlID0gbmV3IERhdGUoKTtcXFxcbiAgICB2YXIgbW9udGggPSBub3dEYXRlLmdldE1vbnRoKCkgKyAxIDwgMTAgPyBcXFxcXFxcIjBcXFxcXFxcIiArIChub3dEYXRlLmdldE1vbnRoKCkgKyAxKSA6IG5vd0RhdGUuZ2V0TW9udGgoKSArIDE7XFxcXG4gICAgdmFyIGRheSA9IG5vd0RhdGUuZ2V0RGF0ZSgpIDwgMTAgPyBcXFxcXFxcIjBcXFxcXFxcIiArIG5vd0RhdGUuZ2V0RGF0ZSgpIDogbm93RGF0ZS5nZXREYXRlKCk7XFxcXG4gICAgdmFyIGRhdGVTdHIgPSBtb250aCArICcnICsgZGF5O1xcXFxuICAgIGlmIChodG1sLmxpc3QpIHtcXFxcbiAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXFxcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcXFxuICAgICAgICBpZiAobXVybC5zZWFyY2goL21vZ2FpX2FwaS8pICE9IC0xKSB7XFxcXG4gICAgICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbD9rZXk9JyArIGRhdGVTdHIgKyAnJnZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICcvZGV0YWlsP2tleT0nICsgZGF0ZVN0ciArICcmdm9kX2lkPScgKyB1cmwgKyAnJnJlbF9saW1pdD0xMDtnZXQ7dXRmLTg7e1VzZXItQWdlbnRAb2todHRwLzQuMS4wfSc7XFxcXG4gICAgICAgIH1cXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICB2YXIgbGluayA9IG11cmwgKyAndmlkZW9fZGV0YWlsP2lkPScgKyB1cmwgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcXFxuICAgIH07XFxcXG4gICAgaWYgKC9mYW50dWFuLy50ZXN0KG11cmwpKSB7XFxcXG4gICAgICAgIHZhciBsaW5rID0gJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXFxcbiAgICB9IGVsc2UgaWYgKC9pb3Blbnl1bi8udGVzdChtdXJsKSkge1xcXFxuICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXFxcbiAgICB9IGVsc2UgaWYgKC9kaWppYXhpYS8udGVzdChtdXJsKSkge1xcXFxuICAgICAgICB2YXIgbGluayA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHVybDtcXFxcbiAgICB9XFxcXG4gICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcXFxcbiAgICAgICAgcGljX3VybDogaW1nICsgJ0BSZWZlcmVyPScsXFxcXG4gICAgICAgIHVybDogJChsaW5rKS5ydWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgIHZhciByZXMgPSB7fTtcXFxcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcXFxuICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcXFxuICAgICAgICAgICAgICAgIGRlc2M6ICcyNTUmJmZsb2F0JyxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICcnLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hYNVdlYlZpZXcoJycpO1xcXFxuICAgICAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGdldFJlc0NvZGUoKSk7XFxcXG4gICAgICAgICAgICB2YXIgbXl1cmwgPSBNWV9VUkwubWF0Y2goLyhbXFxcXFxcXFxTXSo/OlxcXFxcXFxcL1xcXFxcXFxcL1tcXFxcXFxcXFNdKj8pXFxcXFxcXFwvLylbMV07XFxcXG4gICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcG1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cXFxcbiAgICAgICAgICAgIHJlcy5kYXRhID0gaXRlbXM7XFxcXG4gICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxcXG4gICAgICAgIH0pLFxcXFxuICAgICAgICBkZXNjOiBkZXNjLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZSdcXFxcbiAgICB9KTtcXFxcbn1cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCJUVuWIl+ihqOino+aekFxcXCIsXFxcInBhdGhcXFwiOlxcXCJ0dmxpc3RkYXRhXFxcIixcXFwicnVsZVxcXCI6XFxcInZhciBsaXN0ID0gaHRtbC5kYXRhO1xcXFxuZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxcXG4gICAgdmFyIHRpdGxlID0gbGlzdFtpXS50aXRsZTtcXFxcbiAgICB2YXIgaW1nID0gbGlzdFtpXS5waWM7XFxcXG4gICAgdmFyIHVybCA9IGxpc3RbaV0ubmV4dGxpbms7XFxcXG4gICAgdmFyIGRlc2MgPSBsaXN0W2ldLnN0YXRlO1xcXFxuICAgIHVybCA9IHVybC5zdGFydHNXaXRoKCdodHRwJykgPyB1cmwgOiBtdXJsICsgJz9hYz1kZXRhaWwmaWRzPScgKyB1cmw7XFxcXG4gICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcXFxcbiAgICAgICAgcGljX3VybDogaW1nICsgJ0BSZWZlcmVyPScsXFxcXG4gICAgICAgIHVybDogJCh1cmwpLnJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgdmFyIHJlcyA9IHt9O1xcXFxuICAgICAgICAgICAgdmFyIGl0ZW1zID0gW107XFxcXG4gICAgICAgICAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXFxcbiAgICAgICAgICAgIHZhciBteXVybCA9IE1ZX1VSTC5tYXRjaCgvKFtcXFxcXFxcXFNdKj86XFxcXFxcXFwvXFxcXFxcXFwvW1xcXFxcXFxcU10qPylcXFxcXFxcXC8vKVsxXTtcXFxcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcXFxcbiAgICAgICAgICAgICAgICBkZXNjOiAnMjU1JiZmbG9hdCcsXFxcXG4gICAgICAgICAgICAgICAgdXJsOiAnJyxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3g1X3dlYnZpZXdfc2luZ2xlJ1xcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICByZWZyZXNoWDVXZWJWaWV3KCcnKTtcXFxcbiAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cXFxcbiAgICAgICAgICAgIHJlcy5kYXRhID0gaXRlbXM7XFxcXG4gICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxcXG4gICAgICAgIH0pLFxcXFxuICAgICAgICBkZXNjOiBkZXNjLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZSdcXFxcbiAgICB9KTtcXFxcbn1cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCJBUFDnroDku4vkuI7pgInpm4ZcXFwiLFxcXCJwYXRoXFxcIjpcXFwiYXBwbW92bGlzdFxcXCIsXFxcInJ1bGVcXFwiOlxcXCJpZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXFxcbiAgICB2YXIgY29udHMgPSBodG1sLmRhdGEudm9kX3VybF93aXRoX3BsYXllcjtcXFxcbiAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcXFxuICAgICAgICB2YXIgdGFicyA9IGh0bWwuZGF0YS52b2RfcGxheV9mcm9tLnNwbGl0KCckJCQnKTtcXFxcbiAgICB9XFxcXG59IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgIHZhciBjb250cyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyO1xcXFxuICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxcXG4gICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxcXG4gICAgICAgIHZhciB0YWJzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9wbGF5X2Zyb20uc3BsaXQoJyQkJCcpO1xcXFxuICAgIH1cXFxcbn0gZWxzZSB7XFxcXG4gICAgdmFyIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9wbGF5X2xpc3Q7XFxcXG4gICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXFxcbiAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgdmFyIHRhYnMgPSBodG1sLmRhdGEudm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxcXG4gICAgfVxcXFxufVxcXFxuXFxcXG4vL2xvZyhodG1sKTtcXFxcblxcXFxudmFyIHRodW1iID0gaHRtbC5kYXRhLnZvZF9pbmZvID8gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9waWMgOiBodG1sLmRhdGEudm9kX3BpYztcXFxcbnZhciBkZXMgPSBodG1sLmRhdGEudm9kX2luZm8gPyBodG1sLmRhdGEudm9kX2luZm8udm9kX2NvbnRlbnQgOiBodG1sLmRhdGEudm9kX2NvbnRlbnQ7XFxcXG5pdGVtcy5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+WJp+aDheeugOS7i++8micsXFxcXG4gICAgZGVzYzogZGVzLFxcXFxuICAgIHBpY191cmw6IHRodW1iLFxcXFxuICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSNub1JlY29yZEhpc3RvcnkjJykucnVsZSgoZGVzKSA9PiB7XFxcXG4gICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgdGl0bGU6IGRlcyxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0J1xcXFxuICAgICAgICB9XSk7XFxcXG4gICAgfSwgZGVzKSxcXFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljJ1xcXFxufSk7XFxcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9kbnBsdWdpbicsIHt9KSkucnVsZSk7XFxcXG5cXFxcbml0ZW1zLnB1c2goe1xcXFxuICAgIHRpdGxlOiAn4oCc4oCc5o6S5bqP4oCd4oCdJyxcXFxcbiAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0TXlWYXIoJ2FwcG1hcHBzb3J0JywnMScpPT0nMSc/JzAnOicxJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdcXFxcXFxcIixcXFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG59KTtcXFxcbnZhciB0aXRsZSA9IE1ZX1VSTDtcXFxcbmZvciAodmFyIGsgPSAwOyBrIDwgY29udHMubGVuZ3RoOyBrKyspIHtcXFxcbiAgICAvL3NldEVycm9yKGxpc3QubGVuZ3RoKTtcXFxcbiAgICBpZiAoaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXFxcbiAgICAgICAgdmFyIHB0YWIgPSBjb250c1trXS5jb2RlID8gY29udHNba10uY29kZSA6IHRhYnNba107XFxcXG4gICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXFxcbiAgICAgICAgdmFyIHB0YWIgPSBjb250c1trXS5jb2RlID8gY29udHNba10uY29kZSA6IHRhYnNba107XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgdmFyIHB0YWIgPSBjb250c1trXS5mcm9tID8gY29udHNba10uZnJvbSA6IHRhYnNba107XFxcXG4gICAgfVxcXFxuICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogKGdldE15VmFyKHRpdGxlLCAnMCcpID09IGsgPyAn8J+RifCfj7snIDogJycpICsgcHRhYixcXFxcbiAgICAgICAgdXJsOiBgaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ2AgKyB0aXRsZSArIFxcXFxcXFwiJywgJ1xcXFxcXFwiICsgayArIGAnKTtyZWZyZXNoUGFnZSgpOyd0b2FzdDovL+WIh+aNouaIkOWKn++8gSdgLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG4gICAgfSk7XFxcXG5cXFxcbn1cXFxcblxcXFxuXFxcXG5cXFxcbnZhciBqaWVrID0gJyc7XFxcXG4vL2ZvciAodmFyIGkgPSAwOyBpIDwgY29udHMubGVuZ3RoOyBpKyspIHtcXFxcbmlmIChnZXRNeVZhcignYXBwbWFwcHNvcnQnLCAnMScpID09ICcxJykge1xcXFxuICAgIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0udXJscykge1xcXFxuICAgICAgICB2YXIgbGlzdCA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmxzO1xcXFxuICAgIH0gZWxzZSBpZiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybCkge1xcXFxuICAgICAgICB2YXIgbGlzdCA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS51cmwuc3BsaXQoXFxcXFxcXCIjXFxcXFxcXCIpO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnNwbGl0KFxcXFxcXFwiI1xcXFxcXFwiKTtcXFxcbiAgICB9O1xcXFxufSBlbHNlIHtcXFxcbiAgICBpZiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybHMpIHtcXFxcbiAgICAgICAgdmFyIGxpc3QgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0udXJscy5yZXZlcnNlKCk7XFxcXG4gICAgfSBlbHNlIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0udXJsKSB7XFxcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybC5zcGxpdChcXFxcXFxcIiNcXFxcXFxcIikucmV2ZXJzZSgpO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHZhciBsaXN0ID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnNwbGl0KFxcXFxcXFwiI1xcXFxcXFwiKS5yZXZlcnNlKCk7XFxcXG4gICAgfVxcXFxufTtcXFxcbi8vc2V0RXJyb3IobGlzdC5sZW5ndGgpO1xcXFxuaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgdmFyIHB0YWIgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uY29kZSA/IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5jb2RlIDogdGFic1tnZXRNeVZhcih0aXRsZSwgJzAnKV07XFxcXG59IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgIHZhciBwdGFiID0gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLmNvZGUgPyBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0uY29kZSA6IHRhYnNbZ2V0TXlWYXIodGl0bGUsICcwJyldO1xcXFxufSBlbHNlIHtcXFxcbiAgICB2YXIgcHRhYiA9IGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5mcm9tID8gY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLmZyb20gOiB0YWJzW2dldE15VmFyKHRpdGxlLCAnMCcpXTtcXFxcbn1cXFxcbi8qXFxcXG4gICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBwdGFiICsgJyDwn5SXJyArIFtpICsgMV0gKyAnLycgKyBbY29udHMubGVuZ3RoXSArIFxcXFxcXFwi4oCc4oCc4oaT4oaR4oCd4oCdXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0VmFyKCdhcHBtYXBwc29ydCcsJzEnKT09JzEnPycwJzonMScpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnXFxcXFxcXCIsXFxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXFxcbiAgICB9KTsqL1xcXFxuXFxcXG5mb3IgKHZhciBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXFxcbiAgICBpZiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnVybHMpIHtcXFxcbiAgICAgICAgdmFyIHZsaW5rID0gbGlzdFtqXS51cmwucmVwbGFjZSgvIzQ1NiMvZywgJ2h0dHAnKS5yZXBsYWNlKC8jMTIzIy9nLCAnLicpLnJlcGxhY2UoLyM3ODkjL2csICc6Jyk7XFxcXG4gICAgICAgIHZhciB0aXRsZSA9IGxpc3Rbal0ubmFtZTtcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICB2YXIgdmxpbmsgPSBsaXN0W2pdLnNwbGl0KFxcXFxcXFwiJFxcXFxcXFwiKVsxXTtcXFxcbiAgICAgICAgdmFyIHRpdGxlID0gbGlzdFtqXS5zcGxpdChcXFxcXFxcIiRcXFxcXFxcIilbMF07XFxcXG4gICAgfVxcXFxuICAgIHRyeSB7XFxcXG4gICAgICAgIGlmIChodG1sLmRhdGEudm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgICAgICAgICAgdmFyIGppZWsgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGFyc2VfYXBpO1xcXFxuICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgICAgICAgICAgdmFyIGppZWsgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGFyc2VfYXBpO1xcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgaWYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZTIgJiYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZTIpLmluZGV4T2YoXFxcXFxcXCI9XFxcXFxcXCIpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgdmFyIGppZWsgPSAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMikubWF0Y2goLy4qP3VybD18Lio/dj18Lio/dmlkPS8pWzBdLnJlcGxhY2UoXFxcXFxcXCIuLlxcXFxcXFwiLCBcXFxcXFxcIi5cXFxcXFxcIikucmVwbGFjZSgnanNvbmJzJywgJycpO1xcXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UgJiYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSkuaW5kZXhPZihcXFxcXFxcIj1cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICB2YXIgamllayA9IChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UpLm1hdGNoKC8uKj91cmw9fC4qP3Y9fC4qP3ZpZD0vKVswXS5yZXBsYWNlKFxcXFxcXFwiLi5cXFxcXFxcIiwgXFxcXFxcXCIuXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICB2YXIgamllayA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAvL3NldEVycm9yKGppZWspOyAgICAgICAgICAgICAgICBcXFxcbiAgICAgICAgfVxcXFxuICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgLy9qaWVr5ou85o6lXFxcXG4gICAgaWYgKGppZWsgIT0gJycgJiYgamllayAhPSBudWxsKSB7XFxcXG4gICAgICAgIGlmIChqaWVrLnN1YnN0cmluZygwLCA0KSA9PSAnaHR0cCcpIHtcXFxcbiAgICAgICAgICAgIGppZWsgPSBqaWVrO1xcXFxuICAgICAgICB9IGVsc2UgaWYgKGppZWsuc3Vic3RyaW5nKDAsIDIpID09ICdcXFxcXFxcXC9cXFxcXFxcXC8nKSB7XFxcXG4gICAgICAgICAgICBqaWVrID0gJ2h0dHBzOicgKyBqaWVrO1xcXFxuICAgICAgICB9XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgamllayA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgfVxcXFxuICAgIC8v5a+55aSx5pWI5o6l5Y+j6L+b6KGM5pu/5o2iXFxcXG4gICAgaWYgKC9jb2tlbXYvLnRlc3QobXl1cmwpICYmIC9jb2tlcWllfHhpbnw5MG1tLy50ZXN0KHB0YWIpKSB7XFxcXG4gICAgICAgIGppZWsgPSAnaHR0cHM6Ly9wbGF5ZXIuOTBtbS5tZS9wbGF5LnBocD91cmw9JztcXFxcbiAgICB9IGVsc2UgaWYgKC9qc29uXFxcXFxcXFwubTN1OFxcXFxcXFxcLnR2fHd3d1xcXFxcXFxcLngtblxcXFxcXFxcLmNjLy50ZXN0KGppZWspKSB7XFxcXG4gICAgICAgIGppZWsgPSAnaHR0cHM6Ly9qeC5tM3U4LnR2L2ppZXhpLz91cmw9JztcXFxcbiAgICB9IGVsc2UgaWYgKC9janQ1MjEvLnRlc3QobXl1cmwpKSB7XFxcXG4gICAgICAgIGppZWsgPSBjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2U7XFxcXG4gICAgfSBlbHNlIGlmIChqaWVrLmluZGV4T2YoJ2pwZy5ob3UubHUvam0vemEvaW5kZXgucGhwJykgIT0gLTEpIHtcXFxcbiAgICAgICAgamllayA9ICdodHRwOi8vdmlwLm1lbmd4LnZpcC9ob21lL2FwaT90eXBlPXlzJnVpZD0zMjQ5Njk2JmtleT1hZWZxcnR1d3h5RUZIS05PUVkmdXJsPSc7XFxcXG4gICAgfSBlbHNlIGlmIChwdGFiID09ICdyZW5yZW5taScgJiYgamllay5zZWFyY2goL2poZHl3LykgIT0gLTEpIHtcXFxcbiAgICAgICAgamllayA9ICdodHRwOi8vd3d3LjEwODBrYW4uY2MvamlleGkvcnJtaS5waHA/dXJsPSc7XFxcXG4gICAgfSBlbHNlIGlmIChwdGFiID09ICdmcWZpbG0nICYmIGppZWsuc2VhcmNoKC9qaGR5dy8pICE9IC0xKSB7XFxcXG4gICAgICAgIGppZWsgPSAnaHR0cDovL3d3dy4xMDgwa2FuLmNjL2ppZXhpL2ZxLnBocD91cmw9JztcXFxcbiAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ3Jyc3AnICYmIGppZWsuc2VhcmNoKC9qaGR5dy8pICE9IC0xKSB7XFxcXG4gICAgICAgIGppZWsgPSAnaHR0cDovL3d3dy4xMDgwa2FuLmNjL2ppZXhpL3JyLnBocD91cmw9JztcXFxcbiAgICB9IGVsc2UgaWYgKC9taWFvcGFydHkvLnRlc3QocHRhYikgJiYgbXl1cmwuc2VhcmNoKC9mdW40ay8pICE9IC0xKSB7XFxcXG4gICAgICAgIGppZWsgPSAnaHR0cHM6Ly93d3cuZnVuNGsuY29tL2FwbGF5ZXIvP3VybD0nO1xcXFxuICAgIH0gZWxzZSBpZiAoL2poeXVuXFxcXFxcXFwucGhwLy50ZXN0KGppZWspKSB7XFxcXG4gICAgICAgIGppZWsgPSBqaWVrLnJlcGxhY2UoJ2h0dHA6Ly9zdmlwLmpoeXVuLmp4LmNuOjEyMzQvamh5dW4ucGhwP3VybD0nLCAnaHR0cHM6Ly9hcGkuamhkeXcudmlwLz91cmw9Jyk7XFxcXG4gICAgfTtcXFxcbiAgICAvL+aJk+WNsOaOpeWPo1xcXFxuICAgIHRyeSB7XFxcXG4gICAgICAgIGlmIChqID09ICcwJykge1xcXFxuICAgICAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgICAgICAgICAgbG9nKCdcXFxcXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcXFxcXG7op4bpopHvvJonICsgdmxpbmsgKyAnXFxcXFxcXFxuJyArICfop6PmnpDmjqXlj6PvvJpcXFxcXFxcXG4nICsgamllayk7XFxcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgICAgICAgICAgICAgIGxvZygnXFxcXFxcXFxu57q/6Lev77yaJyArIHB0YWIgKyAnXFxcXFxcXFxu6KeG6aKR77yaJyArIHZsaW5rICsgJ1xcXFxcXFxcbicgKyAn6Kej5p6Q5o6l5Y+j77yaXFxcXFxcXFxuJyArIGppZWspO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICBpZiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMiAmJiAoY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMikuaW5kZXhPZihcXFxcXFxcIj1cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbG9nKCdcXFxcXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcXFxcXG7op4bpopHvvJonICsgdmxpbmsgKyAnXFxcXFxcXFxuJyArICfop6PmnpDmjqXlj6PvvJpcXFxcXFxcXG4nICsgY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlMi5yZXBsYWNlKC9cXFxcXFxcXC5cXFxcXFxcXC4vZywgXFxcXFxcXCIuXFxcXFxcXCIpLnJlcGxhY2UoL1xcXFxcXFxcLC9nLCBcXFxcXFxcIlxcXFxcXFxcblxcXFxcXFxcblxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb250c1tnZXRNeVZhcih0aXRsZSwgJzAnKV0ucGxheWVyX2luZm8ucGFyc2UgJiYgKGNvbnRzW2dldE15VmFyKHRpdGxlLCAnMCcpXS5wbGF5ZXJfaW5mby5wYXJzZSkuaW5kZXhPZihcXFxcXFxcIj1cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbG9nKCdcXFxcXFxcXG7nur/ot6/vvJonICsgcHRhYiArICdcXFxcXFxcXG7op4bpopHvvJonICsgdmxpbmsgKyAnXFxcXFxcXFxuJyArICfop6PmnpDmjqXlj6PvvJpcXFxcXFxcXG4nICsgY29udHNbZ2V0TXlWYXIodGl0bGUsICcwJyldLnBsYXllcl9pbmZvLnBhcnNlLnJlcGxhY2UoL1xcXFxcXFxcLlxcXFxcXFxcLi9nLCBcXFxcXFxcIi5cXFxcXFxcIikucmVwbGFjZSgvXFxcXFxcXFwsL2csIFxcXFxcXFwiXFxcXFxcXFxuXFxcXFxcXFxuXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICBsb2coJ1xcXFxcXFxcbue6v+i3r++8micgKyBwdGFiICsgJ1xcXFxcXFxcbuinhumike+8micgKyB2bGluayArICdcXFxcXFxcXG4nICsgJ+ino+aekOaOpeWPo++8mlxcXFxcXFxcbicgKyBqaWVrKTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgLy9zZXRFcnJvcihqaWVrKTsgICAgICAgICAgICAgICAgXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH1cXFxcbiAgICB9IGNhdGNoIChlKSB7fVxcXFxuICAgIC8v5aOw5piO6ZO+5o6lXFxcXG4gICAgdmFyIGxpbmsgPSBqaWVrICsgdmxpbms7XFxcXG4gICAgLypcXFxcbiAgICBpZiAoL1xcXFxcXFxcLm0zdTh8XFxcXFxcXFwubXA0fG9ialxcXFxcXFxcL3Rvcy8udGVzdCh2bGluaykgJiYgL2h0dHAvLnRlc3QodmxpbmspKSB7XFxcXG4gICAgICAgIGxpbmsgPSB2bGluaztcXFxcbiAgICB9XFxcXG4gICAgKi9cXFxcbiAgICAvL2xvZyhsaW5rKTtcXFxcbiAgICB0aXRsZSA9IHRpdGxlLm1hdGNoKC8o56ysfFxcXFxcXFxcZHwtKSoo6ZuGfOivnXzmnJ8pL2cpID8gdGl0bGUucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKSA6IHRpdGxlO1xcXFxuICAgIGlmIChsaXN0Lmxlbmd0aCA8PSA0KSB7XFxcXG4gICAgICAgIHZhciBjbHQgPSAndGV4dF8yJztcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICB2YXIgY2x0ID0gaXNOYU4odGl0bGUpID8gJ2ZsZXhfYnV0dG9uJyA6ICd0ZXh0XzUnXFxcXG4gICAgfTtcXFxcbiAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcXFxuICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHknKS5sYXp5UnVsZSgocHRhYiwgbGluaywgbXl1cmwsIHZsaW5rKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gb3BlbnVybChyZXN1cmwpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VybC5tYXRjaCgveW91a3V8bWd0dnxpeGlndWF8cXEuY29tfHFpeWl8bWlndXxiaWxpYmlsaXxzb2h1fHBwdHZ8bGV8MTkwNS5jb20vKSAmJiByZXN1cmwuc2VhcmNoKC9odG1sfGJpbGliaWxpfGl4aWd1YS8pICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2h0bWznvZHpobXosIPnlKjmlq3mj5Lop6PmnpBcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlbkRuID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uJywge30pKS5lbkRuO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuRG4gPT0gJzEnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCfosIPnlKjmlq3mj5Lop6PmnpBodG1sJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChcXFxcXFxcInZhciBjb25maWcgPVxcXFxcXFwiICsgZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvblxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChmZXRjaChjb25maWcuY2opKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKHJlc3VybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1cmxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFxcXFxcLm0zdTh8XFxcXFxcXFwubXA0fG9ialxcXFxcXFxcL3Rvc3xuZXRlYXNlXFxcXFxcXFwuY29tLy50ZXN0KHJlc3VybCkgJiYgL2h0dHAvLnRlc3QocmVzdXJsKSAmJiAhL1xcXFxcXFxcLmh0bWwvLnRlc3QocmVzdXJsKSAmJiAhL1xcXFxcXFxcPWh0dHAvLnRlc3QocmVzdXJsKSAmJiBwdGFiICE9ICdkdW9kdW96eScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvd2tmaWxlLy50ZXN0KHJlc3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdXJsICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99J1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gL1xcXFxcXFxcPS8udGVzdChyZXN1cmwpID8gcmVzdXJsLnNwbGl0KCc9JylbMV0gOiByZXN1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/osIPnlKjmlq3mj5LpgJrnlKjlh73mlbDop6PmnpBcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlbkRuID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uJywge30pKS5lbkRuO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuRG4gPT0gJzEnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCfosIPnlKjmlq3mj5LpgJrnlKjlh73mlbDop6PmnpBcXFxcXFxcXG4nICsgcHRhYiArICco6YCa55So5Ye95pWwKScpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoXFxcXFxcXCJ2YXIgY29uZmlnID1cXFxcXFxcIiArIGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9jYWNoZS9NeVBhcnNlU2V0Lmpzb25cXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoZmV0Y2goY29uZmlnLmNqKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5hbWUgPSBwdGFiICsgJyjpgJrnlKjlh73mlbApJztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGFyc2VTW25hbWVdKHJlc3VybCwgbXl1cmwpO1xcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2R1b2R1b3p5Jykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoZ2V0Q3J5cHRvSlMoKSk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBEZSh3b3JkKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UobWQ1KCdyWGpXdlhsNicpKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdCA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKCdOWGJIb1dKYnBzRU9pbjhiJylcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENyeXB0b0pTLkFFUy5kZWNyeXB0KHdvcmQsIGEsIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2OiB0LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuUGtjczdcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3ZhciBkZHp5ID0gJ2FkSHVSbzBkY3VIb00xNjNMMXk0JyArIGJhc2U2NEVuY29kZShzcmN1cmwpLnNsaWNlKDEwKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2h0dHBzOi8vYm8uZGQ1MjAuY2MveHBsYXkvYXBpLnBocCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGR3eSA9IGZldGNoKCdodHRwczovL2pocGMubWFuZHVodS5jb20vZHVvZHVvL2FwaS5waHAnLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBNT0JJTEVfVUFcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogJ3VybD0nICsgcmVzdXJsLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJ1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKGRkd3kpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBEZShKU09OLnBhcnNlKGRkd3kpLnVybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9taWFvcGFydHkvLnRlc3QocHRhYikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L21hc3Rlci94NXJ1bGUuanMnLCAyNCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHg1cnVsZSgnaHR0cHM6Ly93d3cuZnVuNGsuY29tL2FwbGF5ZXIvP3VybD0nICsgcmVzdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgdmFyIHNyY3VybCA9IGxpbms7XFxcXG4gICAgICAgICAgICAgICAgLy9sb2coc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggeW8gOWni1xcXFxuICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8v5aSE55CG5oyH5a6a6KeG6aKR5LiO57q/6LevXFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8b2JqXFxcXFxcXFwvdG9zfG5ldGVhc2VcXFxcXFxcXC5jb20vLnRlc3Qoc3JjdXJsKSAmJiAvaHR0cC8udGVzdChzcmN1cmwpICYmICEvXFxcXFxcXFwuaHRtbC8udGVzdChzcmN1cmwpICYmICEvXFxcXFxcXFw9aHR0cC8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL3drZmlsZS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNyY3VybCArICc7e1JlZmVyZXJAaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vfSdcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC9cXFxcXFxcXD0vLnRlc3Qoc3JjdXJsKSA/IHNyY3VybC5zcGxpdCgnPScpWzFdIDogc3JjdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzcmN1cmwuaW5kZXhPZihcXFxcXFxcIi9zaGFyZS9cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBzcmN1cmwuc3BsaXQoXFxcXFxcXCIvc2hhcmVcXFxcXFxcIilbMF07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZjID0gZmV0Y2goc3JjdXJsLCB7fSkucmVwbGFjZShcXFxcXFxcInZhciBwdXJsXFxcXFxcXCIsIFxcXFxcXFwidmFyIG1haW5cXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZjLmluZGV4T2YoXFxcXFxcXCJtYWluXFxcXFxcXCIpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXQgPSBmYy5tYXRjaCgvdmFyIG1haW4uKj87LylbMF07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwobWF0KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXkgPSAobWFpbi5pbmRleE9mKFxcXFxcXFwiaHR0cFxcXFxcXFwiKSAhPSAtMSA/IG1haW4gOiBsaW5rICsgbWFpbik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1haW4gPSBmYy5tYXRjaCgvdXJsOi4qP1tcXFxcXFxcXCdcXFxcXFxcXFxcXFxcXFwiXSguKj8pW1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdLylbMV07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ID0gKG1haW4uaW5kZXhPZihcXFxcXFxcImh0dHBcXFxcXFxcIikgIT0gLTEgPyBtYWluIDogbGluayArIG1haW4pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGxheTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3g1V2ViVmlldzovLycgKyAoc3JjdXJsKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoLzk4M3ZpcC8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwsIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBNT0JJTEVfVUFcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoSGVhZGVyczogdHJ1ZVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpLmhlYWRlcnMubG9jYXRpb25bMF07XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3hcXFxcXFxcXC1uXFxcXFxcXFwuY2N8bmhkejY2Ni8udGVzdChzcmN1cmwpICYmIC9cXFxcXFxcXC5odG1sfGJpbGliaWxpLy50ZXN0KHNyY3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHZsaW5rKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAvL+WkhOeQhuaMh+WumuinhumikeWSjOe6v+i3r+e7k+adn1xcXFxuICAgICAgICAgICAgICAgICAgICAvLy0tLS3liIblibLnur8tLS0tLy9cXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNjb2RlID0gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwsIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogXFxcXFxcXCJEYXJ0LzIuMTQgKGRhcnQ6aW8pXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoU3RhdHVzQ29kZTogdHJ1ZVxcXFxuICAgICAgICAgICAgICAgICAgICB9KSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vbG9nKHNjb2RlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjb2RlLnN0YXR1c0NvZGUgPT0gJzMwMicgfHwgc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAxJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/miZPlvIDop6PmnpDmnIkzMDLph43lrprlkJHnmoTpk77mjqVcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZWR1cmwgPSBzY29kZS5oZWFkZXJzLmxvY2F0aW9uWzBdLnJlcGxhY2UoL1xcXFxcXFxcXFxcXFxcXFwvZywgJycpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcXFxcXD1odHRwLy50ZXN0KHJlZHVybCkgJiYgL2h0bWx8YmlsaWJpbGl8a2V5XFxcXFxcXFw9Ly50ZXN0KHJlZHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShmZXRjaChyZWR1cmwsIHt9KSkudXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXFxcXFw9aHR0cC8udGVzdChyZWR1cmwpICYmIC9cXFxcXFxcXC5tM3U4fFxcXFxcXFxcLm1wNHxcXFxcXFxcXC5mbHYvLnRlc3QocmVkdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1cmwuc3Vic3RyaW5nKHJlZHVybC5pbmRleE9mKCc9aHR0cCcpICsgMSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9odHRwLy50ZXN0KHJlZHVybCkgJiYgL2tleVxcXFxcXFxcPXx1aWRcXFxcXFxcXD0vLnRlc3QocmVkdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZldGNoKHJlZHVybCwge30pKS51cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1cmxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vdmFyIGh0bWwgPSByZXF1ZXN0KHNyY3VybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IHNjb2RlLmJvZHk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoLzQwNCBOb3QgRm91bmR85aSH5qGI5ZCO5Y+v57un57ut6K6/6ZeuLy50ZXN0KGh0bWwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwodmxpbmspO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXFxcXFw8Ym9keS8udGVzdChodG1sKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn5bCd6K+V6Z2eSlNPTuaOpeWPo+e9kemhteino+aekCcpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9jb2RlLmFsaXl1bi5jb20vbHprMjM1NTkvUHVibGljUnVsZS9yYXcvbWFzdGVyL3g1cnVsZS5qcycsIDI0KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geDVydWxlKHNyY3VybCwgc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3JldHVybiBvcGVudXJsKHNyY3VybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vanNvbuino+aekOeahOWPlumTvuaOpVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gaHRtbC5tYXRjaCgvW1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJddXJsW1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdOi4qP1tcXFxcXFxcXCdcXFxcXFxcXFxcXFxcXFwiXSguKj8pW1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdLylbMV0ucmVwbGFjZSgvXFxcXFxcXFxcXFxcXFxcXC9nLCAnJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2cocHVybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9odHRwLy50ZXN0KHB1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwdGFiID09ICdiaWxpYmlsaScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5iaWxpYmlsaS5jb20vJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnbWd0dicpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJyArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29qYmsvLnRlc3QocHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJzt7UmVmZXJlckBodHRwczovL2Jhay5vamJranguY29tL30nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+mdnmh0dHDlvIDlpLTnmoTmiZPlvIDljp/pk77mjqUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHZsaW5rKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgLy/miqXplJnliKTmlq3lpITnkIZcXFxcbiAgICAgICAgICAgICAgICAgICAgbG9nKCfmiafooYzmiqXplJnot7PovazlpITnkIYnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgLyppZiAoc3JjdXJsLnN1YnN0cmluZygwLCAyKSA9PSAnXFxcXFxcXFwvXFxcXFxcXFwvJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoJ2h0dHBzOicgKyBzcmN1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcXFxcXD1odHRwLy50ZXN0KHNyY3VybCkgJiYgL1xcXFxcXFxcLmh0bWx8YmlsaWJpbGkvLnRlc3Qoc3JjdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy9yZXR1cm4gc3JjdXJsLnNwbGl0KCc9JylbMV07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyovXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHZsaW5rKVxcXFxuICAgICAgICAgICAgICAgICAgICAvL3JldHVybiAneDVXZWJWaWV3Oi8vJytzcmN1cmxcXFxcbiAgICAgICAgICAgICAgICAgICAgLy99XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIC8v5Yqo5oCB6Kej5p6Q5Luj56CB57uT5p2fXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgcHRhYixcXFxcbiAgICAgICAgICAgIGxpbmssXFxcXG4gICAgICAgICAgICBteXVybCxcXFxcbiAgICAgICAgICAgIHZsaW5rKSxcXFxcbiAgICAgICAgY29sX3R5cGU6IGNsdFxcXFxuICAgIH0pO1xcXFxufVxcXFxuLy99XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwiVFbnroDku4vkuI7pgInpm4ZcXFwiLFxcXCJwYXRoXFxcIjpcXFwidHZtb3ZsaXN0XFxcIixcXFwicnVsZVxcXCI6XFxcInZhciB0YWJzID0gT2JqZWN0LmtleXMoaHRtbC52aWRlb2xpc3QpO1xcXFxudmFyIHRodW1iID0gaHRtbC5pbWdfdXJsO1xcXFxuaXRlbXMucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfliafmg4XnroDku4vvvJonLFxcXFxuICAgIGRlc2M6IGh0bWwuaW50cm8sXFxcXG4gICAgcGljX3VybDogdGh1bWIsXFxcXG4gICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSMnKS5ydWxlKChkZXMpID0+IHtcXFxcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICB0aXRsZTogZGVzLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdsb25nX3RleHQnXFxcXG4gICAgICAgIH1dKTtcXFxcbiAgICB9LCBodG1sLmludHJvKSxcXFxcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljJ1xcXFxufSk7XFxcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9kbnBsdWdpbicsIHt9KSkucnVsZSk7XFxcXG5cXFxcbml0ZW1zLnB1c2goe1xcXFxuICAgIHRpdGxlOiAn4oCc4oCc5o6S5bqP4oCd4oCdJyxcXFxcbiAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0TXlWYXIoJ2FwcG10dnNvcnQnLCBnZXRNeVZhcignYXBwbXR2c29ydCcsJzEnKT09JzEnPycwJzonMScpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnXFxcXFxcXCIsXFxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxufSk7XFxcXG52YXIgZ3ZhID0gTVlfVVJMO1xcXFxuZm9yICh2YXIgayA9IDA7IGsgPCB0YWJzLmxlbmd0aDsgaysrKSB7XFxcXG4gICAgdmFyIHB0YWIgPSB0YWJzW2tdO1xcXFxuICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogKGdldE15VmFyKGd2YSwgJzAnKSA9PSBrID8gJ/CfkYnwn4+7JyA6ICcnKSArIHB0YWIsXFxcXG4gICAgICAgIHVybDogYGhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnB1dE15VmFyKCdgICsgZ3ZhICsgXFxcXFxcXCInLCAnXFxcXFxcXCIgKyBrICsgYCcpO3JlZnJlc2hQYWdlKCk7J3RvYXN0Oi8v5YiH5o2i5oiQ5Yqf77yBJ2AsXFxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXFxcbiAgICB9KTtcXFxcblxcXFxufVxcXFxuXFxcXG4vL2ZvciAodmFyIGkgPSAwOyBpIDwgdGFicy5sZW5ndGg7IGkrKykge1xcXFxuaWYgKGdldE15VmFyKCdhcHBtdHZzb3J0JywgJzEnKSA9PSAnMScpIHtcXFxcbiAgICB2YXIgbGlzdCA9IGh0bWwudmlkZW9saXN0W3RhYnNbZ2V0TXlWYXIoZ3ZhLCAnMCcpXV07XFxcXG59IGVsc2Uge1xcXFxuICAgIHZhciBsaXN0ID0gaHRtbC52aWRlb2xpc3RbdGFic1tnZXRNeVZhcihndmEsICcwJyldXS5yZXZlcnNlKCk7XFxcXG59O1xcXFxuXFxcXG5mb3IgKHZhciBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXFxcbiAgICB2YXIgc3JjdXJsID0gbGlzdFtqXS51cmw7XFxcXG4gICAgaWYgKC8yOTNqeDEvLnRlc3Qoc3JjdXJsKSkge1xcXFxuICAgICAgICBzcmN1cmwgPSBzcmN1cmwucmVwbGFjZSgnMjkzangxJywgJ2p4Jyk7XFxcXG4gICAgfSBlbHNlIGlmICgvOGQ4cXxkaWxpa3R2fGhhb2thbmp1MXxjenR2fGZpdFxcXFxcXFxcOjh8cHB6aHUvLnRlc3QobXl1cmwpKSB7XFxcXG4gICAgICAgIHNyY3VybCA9IHNyY3VybCArICcmYXBwPTEwMDAwJmFjY291bnQ9MjcyNzc1MDI4JnBhc3N3b3JkPXFxMjcyNzc1MDI4JztcXFxcbiAgICB9XFxcXG4gICAgdmFyIHRpdGxlID0gbGlzdFtqXS50aXRsZTtcXFxcbiAgICB0aXRsZSA9IHRpdGxlLm1hdGNoKC8o56ysfFxcXFxcXFxcZHwtKSoo6ZuGfOivnXzmnJ8pL2cpID8gdGl0bGUucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKSA6IHRpdGxlO1xcXFxuICAgIGlmIChsaXN0Lmxlbmd0aCA8PSA0KSB7XFxcXG4gICAgICAgIHZhciBjbHQgPSAndGV4dF8yJztcXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICB2YXIgY2x0ID0gaXNOYU4odGl0bGUpID8gJ2ZsZXhfYnV0dG9uJyA6ICd0ZXh0XzUnXFxcXG4gICAgfTtcXFxcbiAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxcXFxuICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHknKS5sYXp5UnVsZSgocHRhYiwgc3JjdXJsLCBteXVybCkgPT4ge1xcXFxuICAgICAgICAgICAgZnVuY3Rpb24gb3BlbnVybChyZXN1cmwpIHtcXFxcbiAgICAgICAgICAgICAgICBpZiAocmVzdXJsLm1hdGNoKC95b3VrdXxtZ3R2fGl4aWd1YXxxcS5jb218cWl5aXxtaWd1fGJpbGliaWxpfHNvaHV8cHB0dnxsZXwxOTA1LmNvbS8pICYmIHJlc3VybC5zZWFyY2goL2h0bWx8YmlsaWJpbGkvKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgZW5EbiA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvbicsIHt9KSkuZW5EbjtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVuRG4gPT0gJzEnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+iwg+eUqOaWreaPkuino+aekCcpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChcXFxcXFxcInZhciBjb25maWcgPVxcXFxcXFwiICsgZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvblxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF5dG1QYXJzZShyZXN1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcXFxuICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1cmxcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgLy9sb2coc3JjdXJsKTtcXFxcbiAgICAgICAgICAgIC8v5Yqo5oCB6Kej5p6Q5Luj56CB5byA5aeLXFxcXG4gICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgIGlmICgvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8b2JqXFxcXFxcXFwvdG9zLy50ZXN0KHNyY3VybCkgJiYgL2h0dHAvLnRlc3Qoc3JjdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gL1xcXFxcXFxcPS8udGVzdChzcmN1cmwpID8gc3JjdXJsLnNwbGl0KCc9JylbMV0gOiBzcmN1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3JjdXJsLmluZGV4T2YoXFxcXFxcXCIvc2hhcmUvXFxcXFxcXCIpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGluayA9IHNyY3VybC5zcGxpdChcXFxcXFxcIi9zaGFyZVxcXFxcXFwiKVswXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmYyA9IGZldGNoKHNyY3VybCwge30pLnJlcGxhY2UoXFxcXFxcXCJ2YXIgcHVybFxcXFxcXFwiLCBcXFxcXFxcInZhciBtYWluXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZjLmluZGV4T2YoXFxcXFxcXCJtYWluXFxcXFxcXCIpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1hdCA9IGZjLm1hdGNoKC92YXIgbWFpbi4qPzsvKVswXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKG1hdCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXkgPSAobWFpbi5pbmRleE9mKFxcXFxcXFwiaHR0cFxcXFxcXFwiKSAhPSAtMSA/IG1haW4gOiBsaW5rICsgbWFpbik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYWluID0gZmMubWF0Y2goL3VybDouKj9bXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl0oLio/KVtcXFxcXFxcXCdcXFxcXFxcXFxcXFxcXFwiXS8pWzFdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ID0gKG1haW4uaW5kZXhPZihcXFxcXFxcImh0dHBcXFxcXFxcIikgIT0gLTEgPyBtYWluIDogbGluayArIG1haW4pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBsYXk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneDVXZWJWaWV3Oi8vJyArIChzcmN1cmwpXFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2FsaXp5Jykge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgcHVybCA9IGZldGNoKCdodHRwczovL2ZvdWJpbi5jb20vamlleGkucGhwP3VybD0nICsgc3JjdXJsLCB7fSkubWF0Y2goL1xcXFxcXFxcXFxcXFxcXCJ1cmxcXFxcXFxcXFxcXFxcXFwiOlxcXFxcXFxcXFxcXFxcXCIoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmw7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvMTlqeFxcXFxcXFxcLnZpcHxuZnlpbmdzaGkvLnRlc3Qoc3JjdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgcHVybCA9IEpTT04ucGFyc2UoZmV0Y2goc3JjdXJsLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnaHR0cHM6Ly8nKSwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBNT0JJTEVfVUFcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoSGVhZGVyczogdHJ1ZVxcXFxuICAgICAgICAgICAgICAgICAgICB9KSkuaGVhZGVycy5sb2NhdGlvblswXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKC90aXRhbi5tZ3R2Ly50ZXN0KHB1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIycgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9vYmpcXFxcXFxcXC90b3MvLnRlc3QocHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsXFxcXG4gICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIC8qZWxzZSBpZiAoL3poYWlrYW55cy8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHVybCA9IEpTT04ucGFyc2UoZmV0Y2goc3JjdXJsICsgJyZhcHA9MTAwMDMmYWNjb3VudD0yNzI3NzUwMjgmcGFzc3dvcmQ9cXEyNzI3NzUwMjgnLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogTU9CSUxFX1VBXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEhlYWRlcnM6IHRydWVcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC90aXRhbi5tZ3R2Ly50ZXN0KHB1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29ialxcXFxcXFxcL3Rvcy8udGVzdChwdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0qL1xcXFxuXFxcXG4gICAgICAgICAgICAgICAgLy8tLS0t5YiG5Ymy57q/LS0tLS8vXFxcXG4gICAgICAgICAgICAgICAgdmFyIHNjb2RlID0gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwsIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IE1PQklMRV9VQVxcXFxuICAgICAgICAgICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxcXG4gICAgICAgICAgICAgICAgICAgIHdpdGhTdGF0dXNDb2RlOiB0cnVlXFxcXG4gICAgICAgICAgICAgICAgfSkpO1xcXFxuICAgICAgICAgICAgICAgIC8vbG9nKHNjb2RlKTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAyJyB8fCBzY29kZS5zdGF0dXNDb2RlID09ICczMDEnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBwdXJsID0gc2NvZGUuaGVhZGVycy5sb2NhdGlvblswXS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFxcL2csICcnKTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAvL3ZhciBodG1sID0gcmVxdWVzdChzcmN1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IHNjb2RlLmJvZHk7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vbG9nKGh0bWwpO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoLzQwNCBOb3QgRm91bmR85aSH5qGI5ZCO5Y+v57un57ut6K6/6ZeuLy50ZXN0KGh0bWwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcXFxcXFxcXFxcXFwidXJsXFxcXFxcXFxcXFxcXFxcIlxcXFxcXFxcOlxcXFxcXFxcXFxcXFxcXCJodHRwLy50ZXN0KGh0bWwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHVybCA9IGh0bWwubWF0Y2goL1xcXFxcXFxcXFxcXFxcXCJ1cmxcXFxcXFxcXFxcXFxcXFwiOlxcXFxcXFxcXFxcXFxcXCIoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFxcL2csICcnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLnN0YXJ0c1dpdGgoJ3snKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHB1cmwgPSBzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3ZhciBwdXJsID0gc3JjdXJsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L21hc3Rlci94NXJ1bGUuanMnLCAyNCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geDVydWxlKHNyY3VybCwgc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vcmV0dXJuICd4NVdlYlZpZXc6Ly8nKyhzcmN1cmwpIFxcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAvL2xvZyhwdXJsKTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoL3RpdGFuLm1ndHYvLnRlc3QocHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9vYmpcXFxcXFxcXC90b3MvLnRlc3QocHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsXFxcXG4gICAgICAgICAgICAgICAgfTtcXFxcblxcXFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgIGlmIChzcmN1cmwuc3Vic3RyaW5nKDAsIDIpID09ICdcXFxcXFxcXC9cXFxcXFxcXC8nKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKCdodHRwczonICsgc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcXFxcXD1odHRwLy50ZXN0KHNyY3VybCkgJiYgL1xcXFxcXFxcLmh0bWx8YmlsaWJpbGkvLnRlc3Qoc3JjdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAvL3JldHVybiBzcmN1cmwuc3BsaXQoJz0nKVsxXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuaW5kZXhPZignPWh0dHAnKSArIDEpKTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwpXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHnu5PmnZ9cXFxcbiAgICAgICAgfSwgcHRhYiwgc3JjdXJsLCBteXVybCksXFxcXG4gICAgICAgIGNvbF90eXBlOiBjbHRcXFxcbiAgICB9KTtcXFxcbn1cXFxcbi8vfVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuWIl+ihqOaooeW8j+aQnOe0ouS6jOe6p1xcXCIsXFxcInBhdGhcXFwiOlxcXCJzZWFyZXJqXFxcIixcXFwicnVsZVxcXCI6XFxcInZhciByZXMgPSB7fTtcXFxcbnZhciBpdGVtcyA9IFtdO1xcXFxudmFyIG5vd0RhdGUgPSBuZXcgRGF0ZSgpO1xcXFxudmFyIG1vbnRoID0gbm93RGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gXFxcXFxcXCIwXFxcXFxcXCIgKyAobm93RGF0ZS5nZXRNb250aCgpICsgMSkgOiBub3dEYXRlLmdldE1vbnRoKCkgKyAxO1xcXFxudmFyIGRheSA9IG5vd0RhdGUuZ2V0RGF0ZSgpIDwgMTAgPyBcXFxcXFxcIjBcXFxcXFxcIiArIG5vd0RhdGUuZ2V0RGF0ZSgpIDogbm93RGF0ZS5nZXREYXRlKCk7XFxcXG52YXIgZGF0ZVN0ciA9IG1vbnRoICsgJycgKyBkYXk7XFxcXG52YXIgc3BsID0gZ2V0UmVzQ29kZSgpLnNwbGl0KCcjeCMnKTtcXFxcbnZhciB0eXBldCA9IHNwbFszXTtcXFxcbnZhciB0ZG9taW4gPSBzcGxbMl07XFxcXG52YXIga2V5ID0gc3BsWzRdO1xcXFxuXFxcXG5pZiAoL3ZpcG12Ly50ZXN0KHRkb21pbikpIHtcXFxcbiAgICB2YXIgYmh0bWwgPSByZXF1ZXN0KHNwbFsxXSk7XFxcXG59IGVsc2Uge1xcXFxuICAgIHZhciBiaHRtbCA9IGZldGNoKHNwbFsxXSwge1xcXFxuICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogdGRvbWluLmluZGV4T2YoXFxcXFxcXCJtb2dhaV9hcGlcXFxcXFxcIikgIT0gLTEgPyBcXFxcXFxcIkRhcnQvMi4xNCAoZGFydDppbylcXFxcXFxcIiA6IFxcXFxcXFwib2todHRwLzQuMS4wXFxcXFxcXCJcXFxcbiAgICAgICAgfVxcXFxuICAgIH0pO1xcXFxufVxcXFxudHJ5IHtcXFxcbiAgICBiaHRtbCA9IGJodG1sLnN0YXJ0c1dpdGgoJ1xcXFxcXFxcclxcXFxcXFxcbicpID8gYmh0bWwucmVwbGFjZSgnXFxcXFxcXFxyXFxcXFxcXFxuJywgJycpIDogYmh0bWw7XFxcXG59IGNhdGNoIChlKSB7fVxcXFxuaWYgKC9idHdhZi8udGVzdChiaHRtbCkpIHtcXFxcbiAgICAvKlxcXFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTon5pyJ5a6d5aGU6aqM6K+B77yM54K55Ye76K6/6Zeu5Y6f572R6aG1JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBzcGxbMV0gKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgKi9cXFxcblxcXFxuICAgIGJodG1sID0gZmV0Y2goc3BsWzFdICsgJyZidHdhZicgKyBiaHRtbC5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXSwge30pO1xcXFxuXFxcXG59XFxcXG5cXFxcbmlmIChiaHRtbCA9PSBcXFxcXFxcIlxcXFxcXFwiIHx8IGJodG1sID09IG51bGwgfHwgYmh0bWwuc3Vic3RyaW5nKDAsIDUpID09ICdlcnJvcicgfHwgIWJodG1sLnN0YXJ0c1dpdGgoJ3snKSkge1xcXFxuICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogJ+acquaQnOe0ouWIsOebuOWFs+i1hOa6kO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxcXG4gICAgICAgIHVybDogc3BsWzFdICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxuICAgIH0pO1xcXFxufSBlbHNlIGlmIChiaHRtbC5sZW5ndGggPCA4MCkge1xcXFxuICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogJ+i/lOWbnuaVsOaNruS4jeWujOaVtO+8jOeCueWHu+iuv+mXruWOn+e9kemhtScsXFxcXG4gICAgICAgIHVybDogc3BsWzFdICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxcXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxuICAgIH0pO1xcXFxufSBlbHNlIHtcXFxcbiAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoYmh0bWwpO1xcXFxuICAgIC8vbG9nKHNwbFsxXSk7XFxcXG4gICAgaWYgKGh0bWwubGlzdCkge1xcXFxuICAgICAgICB2YXIgbGlzdCA9IGh0bWwubGlzdDtcXFxcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS5saXN0KSB7XFxcXG4gICAgICAgIHZhciBsaXN0ID0gaHRtbC5kYXRhLmxpc3Q7XFxcXG4gICAgfSBlbHNlIGlmIChodG1sLmRhdGEpIHtcXFxcbiAgICAgICAgdmFyIGxpc3QgPSBodG1sLmRhdGE7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgaWYgKGxpc3QubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiAn5pyq5pCc57Si5Yiw77yM54K55Ye76K6/6Zeu5Y6f572R6aG1JyxcXFxcbiAgICAgICAgICAgIHVybDogc3BsWzFdICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxcXG5cXFxcbiAgICAgICAgICAgIGlmICgvVFYvLnRlc3QodHlwZXQpKSB7XFxcXG4gICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gbGlzdFtpXS50aXRsZTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS5waWM7XFxcXG4gICAgICAgICAgICAgICAgLy92YXIgdmlkPXRkb21pbisnL2RldGFpbD92b2RfaWQ9JytsaXN0W2ldLm5leHRsaW5rKycmcmVsX2xpbWl0PTEwJztcXFxcbiAgICAgICAgICAgICAgICB2YXIgdmlkID0gbGlzdFtpXS5uZXh0bGluaztcXFxcbiAgICAgICAgICAgICAgICB2YXIgcmVtID0gbGlzdFtpXS5zdGF0ZTtcXFxcbiAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS5zdGF0ZTtcXFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKHRkb21pbi5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS52b2RfcGljO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoL2ZhbnR1YW4vLnRlc3QodGRvbWluKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICd2aWRlb19kZXRhaWw/aWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcXFxuICAgICAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS50eXBlLnR5cGVfZGVzO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGRvbWluLmluZGV4T2YoJ3hnYXBwLnBocC92MS8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgcGljID0gbGlzdFtpXS52b2RfcGljO1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgdmlkID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQ7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciByZW0gPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcXFxuICAgICAgICAgICAgICAgICAgICAvL3ZhciBjb249bGlzdFtpXS50eXBlLnR5cGVfZGVzO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBwaWMgPSBsaXN0W2ldLnZvZF9waWM7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QodGRvbWluKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZCA9IHRkb21pbiArICcvZGV0YWlsSUQ/dm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWQgPSB0ZG9taW4gKyAnL2RldGFpbD9rZXk9JyArIGRhdGVTdHIgKyAnJnZvZF9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlbSA9IGxpc3RbaV0udm9kX3JlbWFya3M7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vdmFyIGNvbj1saXN0W2ldLnR5cGUudHlwZV9kZXM7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUucmVwbGFjZShrZXksICfigJzigJwnICsga2V5ICsgJ+KAneKAnScpLFxcXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IHBpYyArICdAUmVmZXJlcj0nLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJCh0ZG9taW4uaW5kZXhPZihcXFxcXFxcIm1vZ2FpX2FwaVxcXFxcXFwiKSAhPSAtMSA/IHZpZCArICc7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JyA6IHZpZCArICc7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QG9raHR0cC80LjEuMH0nKS5ydWxlKCh0eXBldCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0ge307XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IEpTT04ucGFyc2UoZ2V0UmVzQ29kZSgpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJycsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiAnMjU1JiZmbG9hdCcsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd4NV93ZWJ2aWV3X3NpbmdsZSdcXFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hYNVdlYlZpZXcoJycpO1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgbXl1cmwgPSBNWV9VUkwubWF0Y2goLyhbXFxcXFxcXFxTXSo/OlxcXFxcXFxcL1xcXFxcXFxcL1tcXFxcXFxcXFNdKj8pXFxcXFxcXFwvLylbMV07XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvVFYvLnRlc3QodHlwZXQpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXFxcbiAgICAgICAgICAgICAgICAgICAgc2V0SG9tZVJlc3VsdChyZXMpO1xcXFxuICAgICAgICAgICAgICAgIH0sIHR5cGV0KSxcXFxcbiAgICAgICAgICAgICAgICAvL2NvbnRlbnQ6cmVtLFxcXFxuICAgICAgICAgICAgICAgIGRlc2M6IHJlbSxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljJ1xcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgIH0gLy9mb3IgaVxcXFxuICAgIH0gLy9lbHNlIGxpc3QubGVuZ3RoXFxcXG59XFxcXG5cXFxcbnJlcy5kYXRhID0gaXRlbXM7XFxcXG5zZXRIb21lUmVzdWx0KHJlcyk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwiQVBQ6aaW6aG15YiX6KGoXFxcIixcXFwicGF0aFxcXCI6XFxcImFwcGluZGV4ZGF0YVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJpZiAoaHRtbC5saXN0KSB7XFxcXG4gICAgdmFyIGxpc3QgPSBodG1sLmxpc3Q7XFxcXG59IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcXFxuICAgIHZhciBsaXN0ID0gaHRtbC5kYXRhLmxpc3Q7XFxcXG59IGVsc2Uge1xcXFxuICAgIHZhciBsaXN0ID0gaHRtbC5kYXRhO1xcXFxufVxcXFxuXFxcXG5mb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXFxcbiAgICBpZiAobGlzdFtpXS52b2RfbGlzdCkge1xcXFxuICAgICAgICB2YXIgbGlzdHMgPSBsaXN0W2ldLnZvZF9saXN0O1xcXFxuICAgICAgICB2YXIgdHlwZW5hbWUgPSBsaXN0W2ldLnZvZF90eXBlX25hbWU7XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgdmFyIGxpc3RzID0gbGlzdFtpXS52bGlzdDtcXFxcbiAgICAgICAgdmFyIHR5cGVuYW1lID0gbGlzdFtpXS50eXBlX25hbWVcXFxcbiAgICB9XFxcXG4gICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiB0eXBlbmFtZSxcXFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG5cXFxcbiAgICB9KTtcXFxcblxcXFxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGlzdHMubGVuZ3RoOyBqKyspIHtcXFxcbiAgICAgICAgdmFyIHRpdGxlID0gbGlzdHNbal0udm9kX25hbWU7XFxcXG4gICAgICAgIHZhciBpbWcgPSBsaXN0c1tqXS52b2RfcGljO1xcXFxuICAgICAgICB2YXIgdXJsID0gbGlzdHNbal0udm9kX2lkO1xcXFxuICAgICAgICB2YXIgZGVzYyA9IGxpc3RzW2pdLnZvZF9yZW1hcmtzO1xcXFxuICAgICAgICB2YXIgbm93RGF0ZSA9IG5ldyBEYXRlKCk7XFxcXG4gICAgICAgIHZhciBtb250aCA9IG5vd0RhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/IFxcXFxcXFwiMFxcXFxcXFwiICsgKG5vd0RhdGUuZ2V0TW9udGgoKSArIDEpIDogbm93RGF0ZS5nZXRNb250aCgpICsgMTtcXFxcbiAgICAgICAgdmFyIGRheSA9IG5vd0RhdGUuZ2V0RGF0ZSgpIDwgMTAgPyBcXFxcXFxcIjBcXFxcXFxcIiArIG5vd0RhdGUuZ2V0RGF0ZSgpIDogbm93RGF0ZS5nZXREYXRlKCk7XFxcXG4gICAgICAgIHZhciBkYXRlU3RyID0gbW9udGggKyAnJyArIGRheTtcXFxcbiAgICAgICAgaWYgKGh0bWwubGlzdCkge1xcXFxuICAgICAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgdXJsICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXFxcbiAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEgJiYgaHRtbC5kYXRhLmxpc3QpIHtcXFxcbiAgICAgICAgICAgIGlmIChtdXJsLnNlYXJjaCgvbW9nYWlfYXBpLykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICB2YXIgbGluayA9IG11cmwgKyAnL2RldGFpbD9rZXk9JyArIGRhdGVTdHIgKyAnJnZvZF9pZD0nICsgdXJsICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xNCAoZGFydDppbyl9JztcXFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJy9kZXRhaWw/a2V5PScgKyBkYXRlU3RyICsgJyZ2b2RfaWQ9JyArIHVybCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBva2h0dHAvNC4xLjB9JztcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIHZhciBsaW5rID0gbXVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHVybCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxcXG4gICAgICAgIH07XFxcXG4gICAgICAgIGlmICgvZmFudHVhbi8udGVzdChtdXJsKSkge1xcXFxuICAgICAgICAgICAgdmFyIGxpbmsgPSAnaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vYXBpLnBocC9hcHAvdmlkZW9fZGV0YWlsP2lkPScgKyB1cmwgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjE0IChkYXJ0OmlvKX0nO1xcXFxuICAgICAgICB9IGVsc2UgaWYgKC9pb3Blbnl1bi8udGVzdChtdXJsKSkge1xcXFxuICAgICAgICAgICAgdmFyIGxpbmsgPSBtdXJsICsgJy9kZXRhaWxJRD92b2RfaWQ9JyArIHVybCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTQgKGRhcnQ6aW8pfSc7XFxcXG4gICAgICAgIH0gZWxzZSBpZiAoL2RpamlheGlhLy50ZXN0KG11cmwpKSB7XFxcXG4gICAgICAgICAgICB2YXIgbGluayA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHVybDtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXFxcbiAgICAgICAgICAgIHBpY191cmw6IGltZyArICdAUmVmZXJlcj0nLFxcXFxuICAgICAgICAgICAgdXJsOiAkKGxpbmspLnJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIHZhciByZXMgPSB7fTtcXFxcbiAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSBbXTtcXFxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiAnMjU1JiZmbG9hdCcsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJycsXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFg1V2ViVmlldygnJyk7XFxcXG4gICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGdldFJlc0NvZGUoKSk7XFxcXG4gICAgICAgICAgICAgICAgdmFyIG15dXJsID0gTVlfVVJMLm1hdGNoKC8oW1xcXFxcXFxcU10qPzpcXFxcXFxcXC9cXFxcXFxcXC9bXFxcXFxcXFxTXSo/KVxcXFxcXFxcLy8pWzFdO1xcXFxuICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcG1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgICAgICAgICAgcmVzLmRhdGEgPSBpdGVtcztcXFxcbiAgICAgICAgICAgICAgICBzZXRIb21lUmVzdWx0KHJlcyk7XFxcXG4gICAgICAgICAgICB9KSxcXFxcbiAgICAgICAgICAgIGRlc2M6IGRlc2MsXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZSdcXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfVxcXFxufVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIummluasoeWvvOWFpeetieW+hVxcXCIsXFxcInBhdGhcXFwiOlxcXCJ3YWl0XFxcIixcXFwicnVsZVxcXCI6XFxcImZ1bmN0aW9uIGNhblVzZSgpIHtcXFxcbiAgICAvKlxcXFxuICAgIC8v5aaC5p6c5pu05paw5LqG6KeE5YiZ5Lmf6KaB6ZmQ5rWB77yM5Y+v5Lul5L+u5pS5a2V5XFxcXG4gICAgbGV0IGtleSA9IFxcXFxcXFwibG9jazRcXFxcXFxcIlxcXFxuICAgIC8v562J5b6F5YiG6ZKf5pWwXFxcXG4gICAgbGV0IHdhaXRNaW4gPSAxMFxcXFxuICAgIFxcXFxuICAgIGxldCBtaW4gPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAwICogNjAgKiB3YWl0TWluKVxcXFxuICAgIGxldCB1bmxvY2sgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIG1pbjtcXFxcbiAgICBsZXQgdGltZSA9IGdldEl0ZW0oa2V5LCBcXFxcXFxcIlxcXFxcXFwiKTtcXFxcbiAgICBpZiAodGltZSA9PSBcXFxcXFxcIlxcXFxcXFwiKSB7XFxcXG4gICAgICAgIHNldEl0ZW0oa2V5LCBcXFxcXFxcIlxcXFxcXFwiICsgdW5sb2NrKVxcXFxuICAgICAgICBsZXQgc3QgPSBuZXcgRGF0ZSh1bmxvY2spLnRvTG9jYWxlU3RyaW5nKCkucmVwbGFjZSgvOlxcXFxcXFxcZHsxLDJ9JC8sICcgJyk7XFxcXG4gICAgICAgIGxldCBtc2cgPSBcXFxcXFxcIui/meaYr+aCqOesrOS4gOasoeS9v+eUqOivpeeJiOacrOinhOWIme+8jOS4uumBv+WFjeesrOS4gOasoeWvvOWFpeS9v+eUqOS6uuaVsOa/gOWinu+8jOinhOWImeWwhuWcqFxcXFxcXFwiICsgc3QgKyBcXFxcXFxcIuino+mUgeS9v+eUqOOAgjxicj48YnI+5aW96KeE5YiZ5LiN5oCV5pma77yM6K+36ICQ5b+D562J5b6F77yB6K+l5o+Q56S65LuF5Zyo56ys5LiA5qyh5a+85YWl77yI5pu05paw77yJ5pe25Ye6546w77yM5ZCO57ut5L2/55So6L+H56iL5Lit5LiN5Lya5Ye6546w77yBXFxcXFxcXCJcXFxcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICB0aXRsZTogbXNnLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwicmljaF90ZXh0XFxcXFxcXCJcXFxcbiAgICAgICAgfV0pXFxcXG4gICAgICAgIHJldHVybiBmYWxzZVxcXFxuICAgIH0gZWxzZSBpZiAocGFyc2VJbnQodGltZSkgPCBuZXcgRGF0ZSgpLmdldFRpbWUoKSkge1xcXFxuICAgICAgICByZXR1cm4gdHJ1ZVxcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIGxldCBzdCA9IG5ldyBEYXRlKHBhcnNlSW50KHRpbWUpKS50b0xvY2FsZVN0cmluZygpLnJlcGxhY2UoLzpcXFxcXFxcXGR7MSwyfSQvLCAnICcpO1xcXFxuICAgICAgICBsZXQgbXNnID0gXFxcXFxcXCLkuLrpgb/lhY3kvb/nlKjkurrmlbDmv4Dlop7vvIzop4TliJnlsIblnKhcXFxcXFxcIiArIHN0ICsgXFxcXFxcXCLop6PplIHkvb/nlKjjgII8YnI+PGJyPuWlveinhOWImeS4jeaAleaZmu+8jOivt+iAkOW/g+etieW+he+8geivpeaPkOekuuS7heWcqOesrOS4gOasoeWvvOWFpe+8iOabtOaWsO+8ieaXtuWHuueOsO+8jOWQjue7reS9v+eUqOi/h+eoi+S4reS4jeS8muWHuueOsO+8gVxcXFxcXFwiXFxcXG4gICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgdGl0bGU6IG1zZyxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInJpY2hfdGV4dFxcXFxcXFwiXFxcXG4gICAgICAgIH1dKVxcXFxuICAgICAgICByZXR1cm4gZmFsc2VcXFxcbiAgICB9Ki9cXFxcbiAgICByZXR1cm4gdHJ1ZVxcXFxufVxcXFxuJC5leHBvcnRzID0gY2FuVXNlKCk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5pat5b+15o+S5Lu26LCD55SoXFxcIixcXFwicGF0aFxcXCI6XFxcImRucGx1Z2luXFxcIixcXFwicnVsZVxcXCI6XFxcInZhciBkbmVuID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uJywge30pKS5lbkRuO1xcXFxuaXRlbXMucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfmlq3mj5LvvJonICsgKGRuZW4gPT0gJzEnID8gJ+KAnOKAnOKcheKAneKAnScgOiAn4p2OJyksXFxcXG4gICAgdXJsOiAkKCcnKS5sYXp5UnVsZSgoZG5lbikgPT4ge1xcXFxuICAgICAgICBpZiAoZG5lbiA9PSAnMScpIHtcXFxcbiAgICAgICAgICAgIHZhciBmaWxlVXJsID0gZmV0Y2goXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFxcXFxcIiwge30pLnJlcGxhY2UoJ1xcXFxcXFxcXFxcXFxcXCJlbkRuXFxcXFxcXFxcXFxcXFxcIjpcXFxcXFxcXFxcXFxcXFwiMVxcXFxcXFxcXFxcXFxcXCInLCAnXFxcXFxcXFxcXFxcXFxcImVuRG5cXFxcXFxcXFxcXFxcXFwiOlxcXFxcXFxcXFxcXFxcXCIwXFxcXFxcXFxcXFxcXFxcIicpO1xcXFxuICAgICAgICAgICAgd3JpdGVGaWxlKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcXFxcXCIsIGZpbGVVcmwpO1xcXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suemgeeUqOaWreaPkuiwg+eUqO+8gSc7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICB2YXIgZmlsZVVybCA9IGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcXFxcXCIsIHt9KS5yZXBsYWNlKCdcXFxcXFxcXFxcXFxcXFwiZW5EblxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIjBcXFxcXFxcXFxcXFxcXFwiJywgJ1xcXFxcXFxcXFxcXFxcXCJlbkRuXFxcXFxcXFxcXFxcXFxcIjpcXFxcXFxcXFxcXFxcXFwiMVxcXFxcXFxcXFxcXFxcXCInKTtcXFxcbiAgICAgICAgICAgIC8vbG9nKGZpbGVVcmwpO1xcXFxuICAgICAgICAgICAgd3JpdGVGaWxlKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcXFxcXCIsIGZpbGVVcmwpO1xcXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suW8gOWQr+aWreaPkuiwg+eUqO+8gSdcXFxcbiAgICAgICAgfVxcXFxuICAgIH0sIGRuZW4pLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcXFxufSk7XFxcXG5pZiAoZG5lbiA9PSAnMScpIHtcXFxcbiAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6ICfnur/ot6/phY3nva4nLFxcXFxuICAgICAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSNub1JlY29yZEhpc3RvcnkjQHJ1bGU9anM6dGhpcy5kPVtdO3JlcXVpcmUoJ2h0dHBzOi8vZ2l0ZWEuY29tL0FJOTU3L0hpa2VyL3Jhdy9tL3YvUm91dGUuanMnKTtSb3V0ZS5zZXRQYXJzZSgpO3NldFJlc3VsdChkKTtcXFxcXFxcIixcXFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzMnXFxcXG4gICAgfSk7XFxcXG4gICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAn6Kej5p6Q566h55CGJyxcXFxcbiAgICAgICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5I0BydWxlPWpzOnRoaXMuZD1bXTtyZXF1aXJlKCdodHRwczovL2dpdGVhLmNvbS9BSTk1Ny9IaWtlci9yYXcvbS92L2p4SXRlbS5qcycpO2p4SXRlbS5qeExpc3QoKTtzZXRSZXN1bHQoZClcXFxcXFxcIixcXFxcbiAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzMnXFxcXG4gICAgfSk7XFxcXG59XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6K6+572u6aG15Luj56CBXFxcIixcXFwicGF0aFxcXCI6XFxcInNldHRpbmdcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIGQgPSBbXTtcXFxcbnZhciBzZXRqc29uID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uJywge30pKTtcXFxcbnZhciBzc21kID0gc2V0anNvbi5zc21vZGU7XFxcXG52YXIgc3N4YyA9IHNldGpzb24uc3Njb3VudDtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfmkJzntKLorr7nva4nLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXFxcbn0pO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+W9k+WJje+8micgKyAnKCcgKyAoc3NtZCA9PSAxID8gJ+iBmuWQiOe7k+aenCcgOiAn5byV5pOO5YiX6KGoJykgKyAnKScsXFxcXG4gICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5JykubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICB2YXIgbWQgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb24nLCB7fSkpLnNzbW9kZTtcXFxcblxcXFxuICAgICAgICBpZiAobWQgPT0gMSkge1xcXFxuICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvblxcXFxcXFwiLCB7fSkucmVwbGFjZSgnXFxcXFxcXFxcXFxcXFxcInNzbW9kZVxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIjFcXFxcXFxcXFxcXFxcXFwiJywgJ1xcXFxcXFxcXFxcXFxcXCJzc21vZGVcXFxcXFxcXFxcXFxcXFwiOlxcXFxcXFxcXFxcXFxcXCIwXFxcXFxcXFxcXFxcXFxcIicpO1xcXFxuICAgICAgICAgICAgd3JpdGVGaWxlKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcXFxcXCIsIGZpbGVVcmwpO1xcXFxuICAgICAgICAgICAgYmFjayh0cnVlKTtcXFxcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/liIfmjaLkuLrmkJzntKLlvJXmk47liJfooajljZXpgInmqKHlvI/miJDlip/vvIEnO1xcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgdmFyIGZpbGVVcmwgPSBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMveHlxL2FwcG1zZXQuanNvblxcXFxcXFwiLCB7fSkucmVwbGFjZSgnXFxcXFxcXFxcXFxcXFxcInNzbW9kZVxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIjBcXFxcXFxcXFxcXFxcXFwiJywgJ1xcXFxcXFxcXFxcXFxcXCJzc21vZGVcXFxcXFxcXFxcXFxcXFwiOlxcXFxcXFxcXFxcXFxcXCIxXFxcXFxcXFxcXFxcXFxcIicpO1xcXFxuICAgICAgICAgICAgLy9sb2coZmlsZVVybCk7XFxcXG4gICAgICAgICAgICB3cml0ZUZpbGUoXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFxcXFxcIiwgZmlsZVVybCk7XFxcXG4gICAgICAgICAgICBiYWNrKHRydWUpO1xcXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WIh+aNouS4uuiBmuWQiOaQnOe0ouaooeW8j+aIkOWKn++8gSdcXFxcbiAgICAgICAgfVxcXFxuICAgIH0pLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcXFxufSlcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfmkJzntKLotoXml7YoJyArICcnICsgZ2V0SXRlbSgnYXBwdGltb3V0JywgJycpKycpJyxcXFxcbiAgICB1cmw6IFxcXFxcXFwiaW5wdXQ6Ly9cXFxcXFxcIiArICczMDAwJyArIFxcXFxcXFwiLy8vL+ivt+iuvue9rui2heaXtuaXtumXtO+8jDEwMDDkuLrkuIDnp5LjgIIuanM6dmFyIG51bSA9IHBhcnNlSW50KGlucHV0KS50b1N0cmluZygpO2lmIChudW0gPT0gJ05hTid8fG51bTwxMDAwKSB7J3RvYXN0Oi8v6L6T5YWl55qE5YC85aW95YOP5LiN5q2j56Gu44CCJzt9IGVsc2Uge3NldEl0ZW0oJ2FwcHRpbW91dCcsIG51bSk7cmVmcmVzaFBhZ2UoKTsndG9hc3Q6Ly/orr7nva7miJDlip/jgIInfVxcXFxcXFwiLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcXFxufSk7XFxcXG5cXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfmkJzntKLnur/nqIsnICsgJygnICsgc3N4YyArICcpJyxcXFxcbiAgICB1cmw6IFxcXFxcXFwiaW5wdXQ6Ly9cXFxcXFxcIiArIEpTT04uc3RyaW5naWZ5KHtcXFxcbiAgICAgICAgdmFsdWU6IFxcXFxcXFwiNVxcXFxcXFwiLFxcXFxuICAgICAgICBoaW50OiBcXFxcXFxcIuivt+i+k+WFpeS4gOS4quaVtOaVsOaVsOWtl++8jOaOqOiNkOacgOWkp+S4jeimgei2hei/hzE144CCXFxcXFxcXCIsXFxcXG4gICAgICAgIGpzOiAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICAgICAgICAgIHZhciBudW0gPSBwYXJzZUludChpbnB1dCkudG9TdHJpbmcoKTtcXFxcbiAgICAgICAgICAgIGlmIChudW0gPT0gJ05hTicgfHwgbnVtIDwgMSkge1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ovpPlhaXnmoTlgLzlpb3lg4/kuI3mraPnoa7jgIInO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICB2YXIgZmlsZVVybCA9IGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy94eXEvYXBwbXNldC5qc29uXFxcXFxcXCIsIHt9KS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFwic3Njb3VudFxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIltcXFxcXFxcXGRdKlxcXFxcXFxcXFxcXFxcXCIvLCAnXFxcXFxcXFxcXFxcXFxcInNzY291bnRcXFxcXFxcXFxcXFxcXFwiOlxcXFxcXFxcXFxcXFxcXCInICsgbnVtICsgJ1xcXFxcXFxcXFxcXFxcXCInKTtcXFxcbiAgICAgICAgICAgICAgICB3cml0ZUZpbGUoXFxcXFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL3h5cS9hcHBtc2V0Lmpzb25cXFxcXFxcIiwgZmlsZVVybCk7XFxcXG4gICAgICAgICAgICAgICAgYmFjayh0cnVlKTtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L+d5a2Y6K6+572u5pCc57Si57q/56iL5a6M5oiQ77yBJ1xcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9KSxcXFxcbiAgICB9KSxcXFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMidcXFxcbn0pO1xcXFxuXFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiAn5pu05paw55u45YWzJyxcXFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxcXG59KTtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfmo4DmtYvmm7TmlrAnLFxcXFxuICAgIHVybDogJCgnJykubGF6eVJ1bGUoKGxvY3ZlcikgPT4ge1xcXFxuICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgdmFyIHJlbWYgPSBmZXRjaENhY2hlKCdodHRwczovL2NvZGViZXJnLm9yZy9semsyMzU1OS9jbG91ZHJ1bGUvcmF3L2JyYW5jaC9tYXN0ZXIvYXBwbW92aWUudHh0JywgMjQpO1xcXFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxcXG4gICAgICAgICAgICByZW1mID0gJyc7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgaWYgKC/vv6ViYXNlNjQvLnRlc3QocmVtZikpIHtcXFxcbiAgICAgICAgICAgIHZhciByZW12ID0gSlNPTi5wYXJzZShiYXNlNjREZWNvZGUocmVtZi5zcGxpdCgnQCcpWzJdKSkudmVyc2lvbjtcXFxcbiAgICAgICAgfSBlbHNlIGlmICgv77+laG9tZV9ydWxl77+lLy50ZXN0KHJlbWYpKSB7XFxcXG4gICAgICAgICAgICB2YXIgcmVtdiA9IEpTT04ucGFyc2UocmVtZi5zcGxpdCgn77+laG9tZV9ydWxl77+lJylbMV0pLnZlcnNpb247XFxcXG4gICAgICAgIH07XFxcXG4gICAgICAgIGlmICgv77+laG9tZV9ydWxlLy50ZXN0KHJlbWYpKSB7XFxcXG4gICAgICAgICAgICBsb2coJ+i/nOeoi+eJiOacrO+8micgKyByZW12KTtcXFxcbiAgICAgICAgICAgIGxvZygn5pys5Zyw54mI5pys77yaJyArIGxvY3Zlcik7XFxcXG4gICAgICAgICAgICBpZiAobG9jdmVyICE9IHJlbXYpIHtcXFxcbiAgICAgICAgICAgICAgICBwdXRWYXIoJ2FwcG52ZXInLCByZW1mKTtcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mnInmlrDniYjmnKzvvIzngrnlr7zlhaXmm7TmlrDlj6/mm7TmlrDop4TliJnjgIInO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5pqC5peg5paw54mI5pys77yMMjTlsI/ml7blhoXmo4DmtYvml6DmlYjjgIInXFxcXG4gICAgICAgICAgICB9O1xcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ajgOa1i+abtOaWsOWksei0pe+8jOWPr+iDveS6keerr+aKvemjjuS6huOAgidcXFxcbiAgICAgICAgfVxcXFxuICAgIH0sIGxvY3ZlciksXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzInXFxcXG59KTtcXFxcbmlmIChnZXRWYXIoJ2FwcG52ZXInKSkge1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAn5a+85YWl5pu05pawJyxcXFxcbiAgICAgICAgdXJsOiAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICByZXR1cm4gZ2V0VmFyKCdhcHBudmVyJyk7XFxcXG4gICAgICAgIH0pLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfMidcXFxcbiAgICB9KTtcXFxcbn1cXFxcbnNldFJlc3VsdChkKVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuacgOaWsOeroOiKglxcXCIsXFxcInBhdGhcXFwiOlxcXCJjaGFwdGVyXFxcIixcXFwicnVsZVxcXCI6XFxcInZhciBjaHAgPSBbXTtcXFxcbnRyeSB7XFxcXG4gICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKGdldFJlc0NvZGUoKSk7XFxcXG4gICAgaWYgKGh0bWwudmlkZW9saXN0KSB7XFxcXG4gICAgICAgIHZhciBjb250cyA9IE9iamVjdC5rZXlzKGh0bWwudmlkZW9saXN0KTtcXFxcbiAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgIHZhciBjb250cyA9IGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyO1xcXFxuICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgfVxcXFxuICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF9pbmZvICYmIGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgIHZhciBjb250cyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyO1xcXFxuICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgfVxcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHZhciBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV9saXN0O1xcXFxuICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgfVxcXFxuICAgIH1cXFxcblxcXFxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29udHMubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgaWYgKGh0bWwudmlkZW9saXN0KSB7XFxcXG4gICAgICAgICAgICB2YXIgbGlzdCA9IGh0bWwudmlkZW9saXN0W2NvbnRzW2ldXTtcXFxcbiAgICAgICAgfSBlbHNlIGlmIChjb250c1tpXS51cmxzKSB7XFxcXG4gICAgICAgICAgICB2YXIgbGlzdCA9IGNvbnRzW2ldLnVybHM7XFxcXG4gICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJsKSB7XFxcXG4gICAgICAgICAgICB2YXIgbGlzdCA9IGNvbnRzW2ldLnVybC5zcGxpdChcXFxcXFxcIiNcXFxcXFxcIik7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICB2YXIgbGlzdCA9IGNvbnRzW2ldLnNwbGl0KFxcXFxcXFwiI1xcXFxcXFwiKTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBjaHAucHVzaChsaXN0Lmxlbmd0aCk7XFxcXG4gICAgfVxcXFxufSBjYXRjaCAoZSkge31cXFxcbi8vbG9nKE1hdGgubWF4LmFwcGx5KE1hdGgsY2hwKSk7XFxcXG5zZXRSZXN1bHQoJ+abtOaWsOiHszonICsgKE1hdGgubWF4LmFwcGx5KE1hdGgsIGNocCkpKTtcXFwifV1cIn0iLCJwaWNVcmwiOiJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9DVuW9seinhi5wbmciLCJ0aXRsZSI6IkNW5b2x6KeGIn0=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement