Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥停止EMO,电音也可以很治愈@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIumhtemdolwiLFwicGF0aFwiOlwiQ29uZmlnLnZpZXdcIixcInJ1bGVcIjpcImNvbnN0IGVtcHR5ID0gJ2hpa2VyOi8vZW1wdHknXFxuXFxuY29uc3QgQ29sb3IgPSAodGVzdCkgPT4ge1xcbiAgICByZXR1cm4gJzxmb250IGNvbG9yPVxcXCIjRkE3Mjk4XFxcIj4nICsgdGVzdCArICc8L2Zyb250Pic7XFxufVxcblxcbmNvbnN0IFN0cm9uZyA9ICh0ZXN0KSA9PiB7XFxuICAgIHJldHVybiAnPHN0cm9uZz4nICsgdGVzdCArICc8L3N0cm9uZz4nO1xcbn1cXG5cXG5jb25zdCBTbWFsbCA9ICh0ZXN0KSA9PiB7XFxuICAgIHJldHVybiAnPHNtYWxsPicgKyB0ZXN0ICsgJzwvc21hbGw+JztcXG59XFxuXFxuY29uc3QgR3JheSA9ICh0ZXN0KSA9PiB7XFxuICAgIHJldHVybiBcXFwiPGZvbnQgY29sb3I9J2dyYXknPlxcXCIgKyB0ZXN0ICsgXFxcIjwvZm9udD5cXFwiO1xcbn1cXG5cXG5jb25zdCBCaWcgPSAodGVzdCkgPT4ge1xcbiAgICByZXR1cm4gJzxiPjxmb250IGNvbG9yPSMwMDA+JyArIHRlc3QgKyAnPC9mb250PjwvYj4nXFxufVxcblxcbmNvbnN0IFJpY2ggPSAodGVzdCkgPT4ge1xcbiAgICByZXR1cm4gXFxcIuKAmOKAmOKAmeKAmVxcXCIgKyB0ZXN0O1xcbn1cXG5cXG5jb25zdCBnZXRTZWFyY2hVcmwgPSAoa3csIGVtcHR5KSA9PiB7XFxuICAgIGxldCBtZW0gPSBzdG9yYWdlMC5nZXRJdGVtKFxcXCLljaHpn7PorrDlvZVcXFwiLCBbXSk7XFxuICAgIG1lbSA9IG1lbS5maWx0ZXIoaXQgPT4gaXQgIT0ga3cpO1xcbiAgICBpZiAobWVtLmxlbmd0aCA+PSAxMCkge1xcbiAgICAgICAgbWVtID0gbWVtLnNsaWNlKDEpO1xcbiAgICB9XFxuICAgIG1lbS5wdXNoKGt3KTtcXG4gICAgc3RvcmFnZTAuc2V0SXRlbShcXFwi5Y2h6Z+z6K6w5b2VXFxcIiwgbWVtKTtcXG4gICAgcmV0dXJuIGVtcHR5O1xcbn07XFxuXFxuY29uc3QgZ2V0Q29uZmlybSA9ICgpID0+IHtcXG4gICAgY29uZmlybSh7XFxuICAgICAgICB0aXRsZTogXFxcIua4hemZpOiusOW9lVxcXCIsXFxuICAgICAgICBjb250ZW50OiBcXFwi56Gu5a6a5aW95LqG5ZCX77yf6K6w5b2V5bCG5Lya5LiN5aSN5a2Y5ZyoflxcXCIsXFxuICAgICAgICBjb25maXJtOiAoKSA9PiB7XFxuICAgICAgICAgICAgY2xlYXJJdGVtKFxcXCLljaHpn7PorrDlvZVcXFwiKTtcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgIHRvYXN0KCfmuIXpmaTmiJDlip9+Jyk7XFxuICAgICAgICB9XFxuICAgIH0pXFxufVxcblxcbmNvbnN0IGdldENvbmZpZ1VybCA9IChib2R5KSA9PiB7XFxuICAgIGNvbnN0IHBhdGggPSAnaHR0cDovL211c2ljLmphbnoucGx1cy9hcGkvdjMyNzAucGhwPycgKyBib2R5XFxuICAgIHJldHVybiBKU09OLnBhcnNlKHJlcXVlc3QocGF0aCkpXFxufVxcblxcbmNvbnN0IGdldEJhc2VQYXJzZSA9ICgpID0+IHtcXG4gICAgdHJ5IHtcXG4gICAgICAgIGxldCBpVGFnID0gc3RvcmFnZTAuZ2V0TXlWYXIoXFxcIjppVGFnXFxcIiwgW10pO1xcbiAgICAgICAgaWYgKGlUYWcubGVuZ3RoID09IDApIHtcXG4gICAgICAgICAgICBwYXRoID0gJ2FjdD1sYWJlbCZ0eXBlPXFxJ1xcbiAgICAgICAgICAgIGlUYWcgPSBnZXRDb25maWdVcmwocGF0aClcXG4gICAgICAgICAgICBzdG9yYWdlMC5wdXRNeVZhcihcXFwiOmlUYWdcXFwiLCBpVGFnKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvbnN0IGQgPSBbXVxcbiAgICAgICAgY29uc3QgY29udGxpc3QgPSBbXTtcXG4gICAgICAgIGlUYWcuZm9yRWFjaCgodGFicywgaSkgPT4ge1xcbiAgICAgICAgICAgIG5hbWUgPSB0YWJzLnRpdGxlXFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGdldE15VmFyKCfliIbnsbsnLCAnMCcpID09IGkgPyBSaWNoKFN0cm9uZyhDb2xvcihuYW1lKSkpIDogbmFtZSxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChlbXB0eSwgaSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ+WIhuexuycsIGkpO1xcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5O1xcbiAgICAgICAgICAgICAgICB9LCBlbXB0eSwgaSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBjb250bGlzdFtpXSA9IFtdO1xcbiAgICAgICAgICAgIGNvbnRzID0gdGFicy5pdGVtO1xcbiAgICAgICAgICAgIGNvbnRzLmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICAgICAgICAgIGNvbnRsaXN0W2ldLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGl0ZW0ubmFtZSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogaXRlbS5pZFxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgICAgIGNvbnN0IGluZGV4ID0gZ2V0TXlWYXIoJ+WIhuexuycsICcwJylcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgY29sX3R5cGU6ICdibGFua19ibG9jaydcXG4gICAgICAgIH0pXFxuICAgICAgICBjb250bGlzdFtpbmRleF0uZm9yRWFjaCgoY29udHNsaXN0LCBpKSA9PiB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGdldE15VmFyKGluZGV4LCAnMCcpID09IGkgPyBSaWNoKFN0cm9uZyhDb2xvcihjb250c2xpc3QudGl0bGUpKSkgOiBjb250c2xpc3QudGl0bGUsXFxuICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaW5kZXgsIGVtcHR5LCBpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihpbmRleCwgaSk7XFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5O1xcbiAgICAgICAgICAgICAgICB9LCBpbmRleCwgZW1wdHksIGkpLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9KVxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogXFxcIuivt+i+k+WFpeatjOabsuWQjeensC/lhbPplK7or41cXFwiLFxcbiAgICAgICAgICAgIHVybDogJChlbXB0eSArICcjbm9IaXN0b3J5IyNub1JlY29yZEhpc3RvcnkjJykucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZSgn5Y2h6Z+zwrfmkJzntKInKVxcbiAgICAgICAgICAgICAgICByZXF1aXJlKCdoaWtlcjovL3BhZ2UvQ29uZmlnLnZpZXcnKVxcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gW107XFxuICAgICAgICAgICAgICAgIGdldFNlYXJjaFBhcnNlKGQpXFxuICAgICAgICAgICAgICAgIHNldFJlc3VsdChkKVxcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiaWNvbl8xX3NlYXJjaFxcXCJcXG4gICAgICAgIH0pXFxuICAgICAgICBpZCA9IGNvbnRsaXN0W2luZGV4XVtnZXRNeVZhcihpbmRleCwgJzAnKV0udXJsXFxuICAgICAgICBib2R5ID0gJ2FjdD1kZXRhaWwmdHlwZT1xcSZpZD0nICsgaWRcXG4gICAgICAgIGRhdGEgPSBnZXRDb25maWdVcmwoYm9keSlcXG4gICAgICAgIGxheW91dFBhcnNlKGQsIGRhdGEpXFxuICAgICAgICBzZXRSZXN1bHQoZClcXG4gICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IFJpY2goR3JheShTbWFsbCgnfn5+5b2T5YmN572R57uc5byC5bi477yM6K+35Yi35paw6YeN6K+Vfn5+JykpKSxcXG4gICAgICAgICAgICB1cmw6IGVtcHR5LFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfV0pXFxuICAgIH1cXG59XFxuXFxuY29uc3QgbGF5b3V0UGFyc2UgPSAoZCwgZGF0YSkgPT4ge1xcbiAgICBkYXRhLmZvckVhY2goaXRlbSA9PiB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBpdGVtLm5hbWUsXFxuICAgICAgICAgICAgcGljX3VybDogaXRlbS5waWMsXFxuICAgICAgICAgICAgdXJsOiAkKGVtcHR5KS5ydWxlKChpdGVtKSA9PiB7XFxuICAgICAgICAgICAgICAgIHJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9Db25maWcudmlldycpXFxuICAgICAgICAgICAgICAgIGJvZHkgPSAnYWN0PXBsYXlsaXN0JnR5cGU9JyArIGl0ZW0udHlwZSArICcmaWQ9JyArIGl0ZW0uaWQgKyAnJnNpbmc9JyArIG1kNShtZDUobWQ1KGl0ZW0uaWQpICsgaXRlbS50eXBlKSArIG1kNShcXFwiNDIyMzE0MDAySmFuTXVzaWNQcm9cXFwiKSlcXG4gICAgICAgICAgICAgICAgZGF0YSA9IGdldENvbmZpZ1VybChib2R5KVxcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gW11cXG4gICAgICAgICAgICAgICAgbGF5b3V0c1BhcnNlKGQsIGRhdGEpXFxuICAgICAgICAgICAgICAgIHNldFJlc3VsdChkKVxcbiAgICAgICAgICAgIH0sIGl0ZW0pLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnY2FyZF9waWNfMydcXG4gICAgICAgIH0pXFxuICAgIH0pXFxufVxcblxcbmNvbnN0IGxheW91dHNQYXJzZSA9IChkLCBkYXRhKSA9PiB7XFxuICAgIGRhdGEuZm9yRWFjaChpdGVtID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXFxuICAgICAgICAgICAgZGVzYzogaXRlbS5hdXRob3IgKyAnIC0gJyArIGl0ZW0uYWxidW0sXFxuICAgICAgICAgICAgcGljX3VybDogaXRlbS5waWMsXFxuICAgICAgICAgICAgdXJsOiAkKGVtcHR5KS5sYXp5UnVsZSgoaXRlbSkgPT4ge1xcbiAgICAgICAgICAgICAgICByZXF1aXJlKCdoaWtlcjovL3BhZ2UvQ29uZmlnLnZpZXcnKVxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBTKHgpIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh4ICE9ICcnICYmIHggIT0gJ2ZhbHNlJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB4ID0gaXRlbS5oclxcbiAgICAgICAgICAgICAgICBzID0gUyh4KSA/IDIwMDAgOiA5OTlcXG4gICAgICAgICAgICAgICAgeCA9IFMoeCkgPyB4IDogaXRlbS5zcVxcbiAgICAgICAgICAgICAgICBzID0gUyh4KSA/IHMgOiAzMjBcXG4gICAgICAgICAgICAgICAgeCA9IFMoeCkgPyB4IDogaXRlbS5oXFxuICAgICAgICAgICAgICAgIHMgPSBTKHgpID8gcyA6IDEyOFxcbiAgICAgICAgICAgICAgICB4ID0gUyh4KSA/IHggOiBpdGVtLmxcXG4gICAgICAgICAgICAgICAgYm9keSA9IFxcXCJhY3Q9dXJsJnR5cGU9XFxcIiArIGl0ZW0udHlwZSArIFxcXCImc29uZ2lkPVxcXCIgKyBpdGVtLnNvbmdpZCArIFxcXCImZmlsZT1cXFwiICsgcyArIFxcXCImc3RybWlkPVxcXCIgKyBpdGVtLnN0cm1pZCArIFxcXCImYnI9XFxcIiArIHggKyBcXFwiJnNpbmc9XFxcIiArIG1kNShtZDUobWQ1KG1kNShtZDUoaXRlbS5zb25naWQpICsgaXRlbS5zdHJtaWQpICsgeCkgKyBpdGVtLnR5cGUpICsgbWQ1KFxcXCI0MjIzMTQwMDJKYW5NdXNpY1Byb1xcXCIpKVxcbiAgICAgICAgICAgICAgICBkYXRhID0gZ2V0Q29uZmlnVXJsKGJvZHkpXFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICB1cmxzOiBbZGF0YS51cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgbHlyaWM6IGRhdGEubHlzaWNcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9LCBpdGVtKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2NhcmRfcGljXzMnXFxuICAgICAgICB9KVxcbiAgICB9KVxcbn1cXG5cXG5jb25zdCBnZXRTZWFyY2hQYXJzZSA9IChkKSA9PiB7XFxuICAgIGlmICghZ2V0TXlWYXIoJ+i/lOWbnicpKSB7XFxuICAgICAgICBjb25maXJtKHtcXG4gICAgICAgICAgICB0aXRsZTogXFxcIui/lOWbnuiusOW9lVxcXCIsXFxuICAgICAgICAgICAgY29udGVudDogXFxcIuS4i+asoei/m+WFpeaQnOe0oumhtemdolxcXFxu5bCG6L+U5Zue5Yiw5pCc57Si6K6w5b2VXFxcIixcXG4gICAgICAgICAgICBjb25maXJtOiAoKSA9PiB7XFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKCfov5Tlm54nLCB0cnVlKTtcXG4gICAgICAgICAgICAgICAgdG9hc3QoJ2VtbW1+Jyk7XFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICBjYW5jZWw6ICgpID0+IHtcXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ+i/lOWbnicsIGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgdG9hc3QoJ+S/uuS4jeimgeODvSjiiafQlOKJpinjg45+Jyk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIGphdmEubGFuZy5UaHJlYWQuc2xlZXAoMzAwMCk7XFxuICAgICAgICB0b2FzdCgn5LiL5qyh6YeN5ZCv77yM5bCG6YeN5paw5ouJ5ZCv5by556qXJylcXG4gICAgfVxcbiAgICBpZiAoZ2V0TXlWYXIoJ+i/lOWbnicpID09ICd0cnVlJykge1xcbiAgICAgICAgYWRkTGlzdGVuZXIoJ29uQ2xvc2UnLCAoKSA9PiB7XFxuICAgICAgICAgICAgY2xlYXJNeVZhcign5YWz6ZSu6K+NJylcXG4gICAgICAgIH0pXFxuICAgIH1cXG4gICAg5qCH562+ID0gW1xcXCLpgJrpgZPkuIAgPT4g5LqRXFxcIiwgXFxcIumAmumBk+S6jCA9PiDohb5cXFwiLCBcXFwi6YCa6YGT5LiJID0+IOicl1xcXCJdO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IFJpY2goQmlnKCfwn46yJyArIGdldE15VmFyKCfmoIfnrb4nLCDmoIfnrb5bMF0pKSksXFxuICAgICAgICB1cmw6ICQo5qCH562+LCAxLCAn8J+Pt+WIh+aNoicpLnNlbGVjdCgoZW1wdHkpID0+IHtcXG4gICAgICAgICAgICBwdXRNeVZhcign5qCH562+JywgaW5wdXQpO1xcbiAgICAgICAgICAgIHRvYXN0KCfliIfmjaLoh7MnICsgaW5wdXQpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcmV0dXJuIGVtcHR5XFxuICAgICAgICB9LCBlbXB0eSksXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcbiAgICAgICAgfVxcbiAgICB9KTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiAn8J+UjScsXFxuICAgICAgICBkZXNjOiBcXFwi5pCc5L2g5oOz6KaB55qELi4uLi4uXFxcIixcXG4gICAgICAgIHVybDogJC50b1N0cmluZygoZ2V0U2VhcmNoVXJsLCBlbXB0eSkgPT4ge1xcbiAgICAgICAgICAgIHB1dE15VmFyKCflhbPplK7or40nLCBpbnB1dCk7XFxuICAgICAgICAgICAgaWYgKGlucHV0ICE9ICcnKSBnZXRTZWFyY2hVcmwoaW5wdXQpO1xcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcmV0dXJuIGVtcHR5O1xcbiAgICAgICAgfSwgZ2V0U2VhcmNoVXJsLCBlbXB0eSksXFxuICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcXG4gICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcign5YWz6ZSu6K+NJylcXG4gICAgICAgIH1cXG4gICAgfSlcXG4gICAgaWYgKGdldE15VmFyKCflhbPplK7or40nKSA9PSAnJykge1xcbiAgICAgICAgbGV0IG1lbSA9IHN0b3JhZ2UwLmdldEl0ZW0oXFxcIuWNoemfs+iusOW9lVxcXCIsIFtdKTtcXG4gICAgICAgIGlmIChtZW0ubGVuZ3RoID4gMCkge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBSaWNoKEJpZygn8J+TnSDmkJzntKLljoblj7InKSksXFxuICAgICAgICAgICAgICAgIHVybDogJChcXFwiI25vTG9hZGluZyNcXFwiKS5sYXp5UnVsZSgoZW1wdHksIGdldENvbmZpcm0pID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGdldENvbmZpcm0oKVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5O1xcbiAgICAgICAgICAgICAgICB9LCBlbXB0eSwgZ2V0Q29uZmlybSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFJpY2goU21hbGwoR3JheSgn772e772e772e6L+Y5rKh5pCc57Si5ZGi772e772e772eJykpKSxcXG4gICAgICAgICAgICAgICAgdXJsOiBlbXB0eSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH1cXG4gICAgICAgIGZvciAobGV0IGkgPSBtZW0ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcXG4gICAgICAgICAgICBsZXQgaXQgPSBtZW1baV07XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGl0LFxcbiAgICAgICAgICAgICAgICB1cmw6ICQoXFxcIiNub0xvYWRpbmcjXFxcIikubGF6eVJ1bGUoKGdldFNlYXJjaFVybCwgaXQsIGVtcHR5KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcign5YWz6ZSu6K+NJywgaXQpO1xcbiAgICAgICAgICAgICAgICAgICAgZ2V0U2VhcmNoVXJsKGl0KTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHk7XFxuICAgICAgICAgICAgICAgIH0sIGdldFNlYXJjaFVybCwgaXQsIGVtcHR5KSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJmbGV4X2J1dHRvblxcXCJcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgc3dpdGNoIChnZXRNeVZhcign5qCH562+Jywg5qCH562+WzBdKSkge1xcbiAgICAgICAgICAgIGNhc2Ug5qCH562+WzBdOlxcbiAgICAgICAgICAgICAgICB0eXBlID0gJ25ldGVhc2UnO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlIOagh+etvlsxXTpcXG4gICAgICAgICAgICAgICAgdHlwZSA9ICdxcSc7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2Ug5qCH562+WzJdOlxcbiAgICAgICAgICAgICAgICB0eXBlID0gJ2t1d28nO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH07XFxuICAgICAgICBib2R5ID0gJ2FjdD1zZWFyY2gmdHlwZT0nICsgdHlwZSArICcmcXVlcnk9JyArIGdldE15VmFyKCflhbPplK7or40nKSArICcmc2luZz0nICsgbWQ1KG1kNShtZDUoZ2V0TXlWYXIoJ+WFs+mUruivjScpKSArIHR5cGUpICsgbWQ1KFxcXCI0MjIzMTQwMDJKYW5NdXNpY1Byb1xcXCIpKVxcbiAgICAgICAgZGF0YSA9IGdldENvbmZpZ1VybChib2R5KVxcbiAgICAgICAgbGF5b3V0c1BhcnNlKGQsIGRhdGEpXFxuICAgIH1cXG59XCJ9XSxcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi5Y2h6Z+zXCIsXCJ2ZXJzaW9uXCI6MCxcInVybFwiOlwiaGlrZXI6Ly9lbXB0eTtnZXQ7VVRGLTg7e1VzZXItQWdlbnRATW96aWxsYS81LjAgKExpbnV477yb77ybIEFuZHJvaWQgMTHvvJvvvJsgTWkgMTAgUHJvKSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODguMC40MzI0LjE1MiBNb2JpbGUgU2FmYXJpLzUzNy4zNn1cIixcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJmaW5kX3J1bGVcIjpcImpzOihcXG4oaXRlbSkgPT4ge1xcbiAgICByZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvQ29uZmlnLnZpZXdcXFwiKTtcXG4gICAgYm9keSA9IFxcXCJhY3Q9cGxheWxpc3QmdHlwZT1cXFwiICsgaXRlbS50eXBlICsgXFxcIiZpZD1cXFwiICsgaXRlbS5pZCArIFxcXCImc2luZz1cXFwiICsgbWQ1KG1kNShtZDUoaXRlbS5pZCkgKyBpdGVtLnR5cGUpICsgbWQ1KFxcXCI0MjIzMTQwMDJKYW5NdXNpY1Byb1xcXCIpKTtcXG4gICAgZGF0YSA9IGdldENvbmZpZ1VybChib2R5KTtcXG4gICAgY29uc3QgZCA9IFtdO1xcbiAgICBsYXlvdXRzUGFyc2UoZCwgZGF0YSk7XFxuICAgIHNldFJlc3VsdChkKTtcXG59XFxuKSh7XFxcInR5cGVcXFwiOlxcXCJxcVxcXCIsXFxcImlkXFxcIjpcXFwiODYyMjk4NzYwMVxcXCIsXFxcIm5hbWVcXFwiOlxcXCLlgZzmraJFTU8s55S16Z+z5Lmf5Y+v5Lul5b6I5rK75oSIXFxcIixcXFwicGljXFxcIjpcXFwiaHR0cDovL3FwaWMueS5xcS5jb20vbXVzaWNfY292ZXIvUkZFbW1pYkFIUVFOYXZ5dEF1QmpEaWNRY0JYaEhvYm9Uc01zc3NTajRTTmlhTjhWNWliVTI2bVBPQS8zMDA/bj0xXFxcIn0pXCIsXCJncm91cFwiOlwi4pGo6Z+z5LmQXCIsXCJ1YVwiOlwibW9iaWxlXCIsXCJwcmVSdWxlXCI6XCJcIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6aG16Z2iXFxcIixcXFwicGF0aFxcXCI6XFxcIkNvbmZpZy52aWV3XFxcIixcXFwicnVsZVxcXCI6XFxcImNvbnN0IGVtcHR5ID0gJ2hpa2VyOi8vZW1wdHknXFxcXG5cXFxcbmNvbnN0IENvbG9yID0gKHRlc3QpID0+IHtcXFxcbiAgICByZXR1cm4gJzxmb250IGNvbG9yPVxcXFxcXFwiI0ZBNzI5OFxcXFxcXFwiPicgKyB0ZXN0ICsgJzwvZnJvbnQ+JztcXFxcbn1cXFxcblxcXFxuY29uc3QgU3Ryb25nID0gKHRlc3QpID0+IHtcXFxcbiAgICByZXR1cm4gJzxzdHJvbmc+JyArIHRlc3QgKyAnPC9zdHJvbmc+JztcXFxcbn1cXFxcblxcXFxuY29uc3QgU21hbGwgPSAodGVzdCkgPT4ge1xcXFxuICAgIHJldHVybiAnPHNtYWxsPicgKyB0ZXN0ICsgJzwvc21hbGw+JztcXFxcbn1cXFxcblxcXFxuY29uc3QgR3JheSA9ICh0ZXN0KSA9PiB7XFxcXG4gICAgcmV0dXJuIFxcXFxcXFwiPGZvbnQgY29sb3I9J2dyYXknPlxcXFxcXFwiICsgdGVzdCArIFxcXFxcXFwiPC9mb250PlxcXFxcXFwiO1xcXFxufVxcXFxuXFxcXG5jb25zdCBCaWcgPSAodGVzdCkgPT4ge1xcXFxuICAgIHJldHVybiAnPGI+PGZvbnQgY29sb3I9IzAwMD4nICsgdGVzdCArICc8L2ZvbnQ+PC9iPidcXFxcbn1cXFxcblxcXFxuY29uc3QgUmljaCA9ICh0ZXN0KSA9PiB7XFxcXG4gICAgcmV0dXJuIFxcXFxcXFwi4oCY4oCY4oCZ4oCZXFxcXFxcXCIgKyB0ZXN0O1xcXFxufVxcXFxuXFxcXG5jb25zdCBnZXRTZWFyY2hVcmwgPSAoa3csIGVtcHR5KSA9PiB7XFxcXG4gICAgbGV0IG1lbSA9IHN0b3JhZ2UwLmdldEl0ZW0oXFxcXFxcXCLljaHpn7PorrDlvZVcXFxcXFxcIiwgW10pO1xcXFxuICAgIG1lbSA9IG1lbS5maWx0ZXIoaXQgPT4gaXQgIT0ga3cpO1xcXFxuICAgIGlmIChtZW0ubGVuZ3RoID49IDEwKSB7XFxcXG4gICAgICAgIG1lbSA9IG1lbS5zbGljZSgxKTtcXFxcbiAgICB9XFxcXG4gICAgbWVtLnB1c2goa3cpO1xcXFxuICAgIHN0b3JhZ2UwLnNldEl0ZW0oXFxcXFxcXCLljaHpn7PorrDlvZVcXFxcXFxcIiwgbWVtKTtcXFxcbiAgICByZXR1cm4gZW1wdHk7XFxcXG59O1xcXFxuXFxcXG5jb25zdCBnZXRDb25maXJtID0gKCkgPT4ge1xcXFxuICAgIGNvbmZpcm0oe1xcXFxuICAgICAgICB0aXRsZTogXFxcXFxcXCLmuIXpmaTorrDlvZVcXFxcXFxcIixcXFxcbiAgICAgICAgY29udGVudDogXFxcXFxcXCLnoa7lrprlpb3kuoblkJfvvJ/orrDlvZXlsIbkvJrkuI3lpI3lrZjlnKh+XFxcXFxcXCIsXFxcXG4gICAgICAgIGNvbmZpcm06ICgpID0+IHtcXFxcbiAgICAgICAgICAgIGNsZWFySXRlbShcXFxcXFxcIuWNoemfs+iusOW9lVxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICB0b2FzdCgn5riF6Zmk5oiQ5YqfficpO1xcXFxuICAgICAgICB9XFxcXG4gICAgfSlcXFxcbn1cXFxcblxcXFxuY29uc3QgZ2V0Q29uZmlnVXJsID0gKGJvZHkpID0+IHtcXFxcbiAgICBjb25zdCBwYXRoID0gJ2h0dHA6Ly9tdXNpYy5qYW56LnBsdXMvYXBpL3YzMjcwLnBocD8nICsgYm9keVxcXFxuICAgIHJldHVybiBKU09OLnBhcnNlKHJlcXVlc3QocGF0aCkpXFxcXG59XFxcXG5cXFxcbmNvbnN0IGdldEJhc2VQYXJzZSA9ICgpID0+IHtcXFxcbiAgICB0cnkge1xcXFxuICAgICAgICBsZXQgaVRhZyA9IHN0b3JhZ2UwLmdldE15VmFyKFxcXFxcXFwiOmlUYWdcXFxcXFxcIiwgW10pO1xcXFxuICAgICAgICBpZiAoaVRhZy5sZW5ndGggPT0gMCkge1xcXFxuICAgICAgICAgICAgcGF0aCA9ICdhY3Q9bGFiZWwmdHlwZT1xcSdcXFxcbiAgICAgICAgICAgIGlUYWcgPSBnZXRDb25maWdVcmwocGF0aClcXFxcbiAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKFxcXFxcXFwiOmlUYWdcXFxcXFxcIiwgaVRhZyk7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgY29uc3QgZCA9IFtdXFxcXG4gICAgICAgIGNvbnN0IGNvbnRsaXN0ID0gW107XFxcXG4gICAgICAgIGlUYWcuZm9yRWFjaCgodGFicywgaSkgPT4ge1xcXFxuICAgICAgICAgICAgbmFtZSA9IHRhYnMudGl0bGVcXFxcbiAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGdldE15VmFyKCfliIbnsbsnLCAnMCcpID09IGkgPyBSaWNoKFN0cm9uZyhDb2xvcihuYW1lKSkpIDogbmFtZSxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGVtcHR5LCBpKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCfliIbnsbsnLCBpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHk7XFxcXG4gICAgICAgICAgICAgICAgfSwgZW1wdHksIGkpLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgY29udGxpc3RbaV0gPSBbXTtcXFxcbiAgICAgICAgICAgIGNvbnRzID0gdGFicy5pdGVtO1xcXFxuICAgICAgICAgICAgY29udHMuZm9yRWFjaChpdGVtID0+IHtcXFxcbiAgICAgICAgICAgICAgICBjb250bGlzdFtpXS5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGl0ZW0ubmFtZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBpdGVtLmlkXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBjb25zdCBpbmRleCA9IGdldE15VmFyKCfliIbnsbsnLCAnMCcpXFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJ1xcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBjb250bGlzdFtpbmRleF0uZm9yRWFjaCgoY29udHNsaXN0LCBpKSA9PiB7XFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBnZXRNeVZhcihpbmRleCwgJzAnKSA9PSBpID8gUmljaChTdHJvbmcoQ29sb3IoY29udHNsaXN0LnRpdGxlKSkpIDogY29udHNsaXN0LnRpdGxlLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaW5kZXgsIGVtcHR5LCBpKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKGluZGV4LCBpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5O1xcXFxuICAgICAgICAgICAgICAgIH0sIGluZGV4LCBlbXB0eSwgaSksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogXFxcXFxcXCLor7fovpPlhaXmrYzmm7LlkI3np7Av5YWz6ZSu6K+NXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICB1cmw6ICQoZW1wdHkgKyAnI25vSGlzdG9yeSMjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZSgn5Y2h6Z+zwrfmkJzntKInKVxcXFxuICAgICAgICAgICAgICAgIHJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9Db25maWcudmlldycpXFxcXG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGdldFNlYXJjaFBhcnNlKGQpXFxcXG4gICAgICAgICAgICAgICAgc2V0UmVzdWx0KGQpXFxcXG4gICAgICAgICAgICB9KSxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImljb25fMV9zZWFyY2hcXFxcXFxcIlxcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBpZCA9IGNvbnRsaXN0W2luZGV4XVtnZXRNeVZhcihpbmRleCwgJzAnKV0udXJsXFxcXG4gICAgICAgIGJvZHkgPSAnYWN0PWRldGFpbCZ0eXBlPXFxJmlkPScgKyBpZFxcXFxuICAgICAgICBkYXRhID0gZ2V0Q29uZmlnVXJsKGJvZHkpXFxcXG4gICAgICAgIGxheW91dFBhcnNlKGQsIGRhdGEpXFxcXG4gICAgICAgIHNldFJlc3VsdChkKVxcXFxuICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICB0aXRsZTogUmljaChHcmF5KFNtYWxsKCd+fn7lvZPliY3nvZHnu5zlvILluLjvvIzor7fliLfmlrDph43or5V+fn4nKSkpLFxcXFxuICAgICAgICAgICAgdXJsOiBlbXB0eSxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxcXG4gICAgICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9XSlcXFxcbiAgICB9XFxcXG59XFxcXG5cXFxcbmNvbnN0IGxheW91dFBhcnNlID0gKGQsIGRhdGEpID0+IHtcXFxcbiAgICBkYXRhLmZvckVhY2goaXRlbSA9PiB7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogaXRlbS5uYW1lLFxcXFxuICAgICAgICAgICAgcGljX3VybDogaXRlbS5waWMsXFxcXG4gICAgICAgICAgICB1cmw6ICQoZW1wdHkpLnJ1bGUoKGl0ZW0pID0+IHtcXFxcbiAgICAgICAgICAgICAgICByZXF1aXJlKCdoaWtlcjovL3BhZ2UvQ29uZmlnLnZpZXcnKVxcXFxuICAgICAgICAgICAgICAgIGJvZHkgPSAnYWN0PXBsYXlsaXN0JnR5cGU9JyArIGl0ZW0udHlwZSArICcmaWQ9JyArIGl0ZW0uaWQgKyAnJnNpbmc9JyArIG1kNShtZDUobWQ1KGl0ZW0uaWQpICsgaXRlbS50eXBlKSArIG1kNShcXFxcXFxcIjQyMjMxNDAwMkphbk11c2ljUHJvXFxcXFxcXCIpKVxcXFxuICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRDb25maWdVcmwoYm9keSlcXFxcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gW11cXFxcbiAgICAgICAgICAgICAgICBsYXlvdXRzUGFyc2UoZCwgZGF0YSlcXFxcbiAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZClcXFxcbiAgICAgICAgICAgIH0sIGl0ZW0pLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdjYXJkX3BpY18zJ1xcXFxuICAgICAgICB9KVxcXFxuICAgIH0pXFxcXG59XFxcXG5cXFxcbmNvbnN0IGxheW91dHNQYXJzZSA9IChkLCBkYXRhKSA9PiB7XFxcXG4gICAgZGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xcXFxuICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXFxcXG4gICAgICAgICAgICBkZXNjOiBpdGVtLmF1dGhvciArICcgLSAnICsgaXRlbS5hbGJ1bSxcXFxcbiAgICAgICAgICAgIHBpY191cmw6IGl0ZW0ucGljLFxcXFxuICAgICAgICAgICAgdXJsOiAkKGVtcHR5KS5sYXp5UnVsZSgoaXRlbSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIHJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9Db25maWcudmlldycpXFxcXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gUyh4KSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICh4ICE9ICcnICYmIHggIT0gJ2ZhbHNlJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgeCA9IGl0ZW0uaHJcXFxcbiAgICAgICAgICAgICAgICBzID0gUyh4KSA/IDIwMDAgOiA5OTlcXFxcbiAgICAgICAgICAgICAgICB4ID0gUyh4KSA/IHggOiBpdGVtLnNxXFxcXG4gICAgICAgICAgICAgICAgcyA9IFMoeCkgPyBzIDogMzIwXFxcXG4gICAgICAgICAgICAgICAgeCA9IFMoeCkgPyB4IDogaXRlbS5oXFxcXG4gICAgICAgICAgICAgICAgcyA9IFMoeCkgPyBzIDogMTI4XFxcXG4gICAgICAgICAgICAgICAgeCA9IFMoeCkgPyB4IDogaXRlbS5sXFxcXG4gICAgICAgICAgICAgICAgYm9keSA9IFxcXFxcXFwiYWN0PXVybCZ0eXBlPVxcXFxcXFwiICsgaXRlbS50eXBlICsgXFxcXFxcXCImc29uZ2lkPVxcXFxcXFwiICsgaXRlbS5zb25naWQgKyBcXFxcXFxcIiZmaWxlPVxcXFxcXFwiICsgcyArIFxcXFxcXFwiJnN0cm1pZD1cXFxcXFxcIiArIGl0ZW0uc3RybWlkICsgXFxcXFxcXCImYnI9XFxcXFxcXCIgKyB4ICsgXFxcXFxcXCImc2luZz1cXFxcXFxcIiArIG1kNShtZDUobWQ1KG1kNShtZDUoaXRlbS5zb25naWQpICsgaXRlbS5zdHJtaWQpICsgeCkgKyBpdGVtLnR5cGUpICsgbWQ1KFxcXFxcXFwiNDIyMzE0MDAySmFuTXVzaWNQcm9cXFxcXFxcIikpXFxcXG4gICAgICAgICAgICAgICAgZGF0YSA9IGdldENvbmZpZ1VybChib2R5KVxcXFxuICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHVybHM6IFtkYXRhLnVybF0sXFxcXG4gICAgICAgICAgICAgICAgICAgIGx5cmljOiBkYXRhLmx5c2ljXFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH0sIGl0ZW0pLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdjYXJkX3BpY18zJ1xcXFxuICAgICAgICB9KVxcXFxuICAgIH0pXFxcXG59XFxcXG5cXFxcbmNvbnN0IGdldFNlYXJjaFBhcnNlID0gKGQpID0+IHtcXFxcbiAgICBpZiAoIWdldE15VmFyKCfov5Tlm54nKSkge1xcXFxuICAgICAgICBjb25maXJtKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIui/lOWbnuiusOW9lVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgY29udGVudDogXFxcXFxcXCLkuIvmrKHov5vlhaXmkJzntKLpobXpnaJcXFxcXFxcXG7lsIbov5Tlm57liLDmkJzntKLorrDlvZVcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIGNvbmZpcm06ICgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBwdXRNeVZhcign6L+U5ZueJywgdHJ1ZSk7XFxcXG4gICAgICAgICAgICAgICAgdG9hc3QoJ2VtbW1+Jyk7XFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgY2FuY2VsOiAoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ+i/lOWbnicsIGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICB0b2FzdCgn5L+65LiN6KaB44O9KOKJp9CU4ommKeODjn4nKTtcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSlcXFxcbiAgICAgICAgamF2YS5sYW5nLlRocmVhZC5zbGVlcCgzMDAwKTtcXFxcbiAgICAgICAgdG9hc3QoJ+S4i+asoemHjeWQr++8jOWwhumHjeaWsOaLieWQr+W8ueeqlycpXFxcXG4gICAgfVxcXFxuICAgIGlmIChnZXRNeVZhcign6L+U5ZueJykgPT0gJ3RydWUnKSB7XFxcXG4gICAgICAgIGFkZExpc3RlbmVyKCdvbkNsb3NlJywgKCkgPT4ge1xcXFxuICAgICAgICAgICAgY2xlYXJNeVZhcign5YWz6ZSu6K+NJylcXFxcbiAgICAgICAgfSlcXFxcbiAgICB9XFxcXG4gICAg5qCH562+ID0gW1xcXFxcXFwi6YCa6YGT5LiAID0+IOS6kVxcXFxcXFwiLCBcXFxcXFxcIumAmumBk+S6jCA9PiDohb5cXFxcXFxcIiwgXFxcXFxcXCLpgJrpgZPkuIkgPT4g6JyXXFxcXFxcXCJdO1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiBSaWNoKEJpZygn8J+OsicgKyBnZXRNeVZhcign5qCH562+Jywg5qCH562+WzBdKSkpLFxcXFxuICAgICAgICB1cmw6ICQo5qCH562+LCAxLCAn8J+Pt+WIh+aNoicpLnNlbGVjdCgoZW1wdHkpID0+IHtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKCfmoIfnrb4nLCBpbnB1dCk7XFxcXG4gICAgICAgICAgICB0b2FzdCgn5YiH5o2i6IezJyArIGlucHV0KTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICByZXR1cm4gZW1wdHlcXFxcbiAgICAgICAgfSwgZW1wdHkpLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxcXG4gICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXFxcbiAgICAgICAgfVxcXFxuICAgIH0pO1xcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIHRpdGxlOiAn8J+UjScsXFxcXG4gICAgICAgIGRlc2M6IFxcXFxcXFwi5pCc5L2g5oOz6KaB55qELi4uLi4uXFxcXFxcXCIsXFxcXG4gICAgICAgIHVybDogJC50b1N0cmluZygoZ2V0U2VhcmNoVXJsLCBlbXB0eSkgPT4ge1xcXFxuICAgICAgICAgICAgcHV0TXlWYXIoJ+WFs+mUruivjScsIGlucHV0KTtcXFxcbiAgICAgICAgICAgIGlmIChpbnB1dCAhPSAnJykgZ2V0U2VhcmNoVXJsKGlucHV0KTtcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICByZXR1cm4gZW1wdHk7XFxcXG4gICAgICAgIH0sIGdldFNlYXJjaFVybCwgZW1wdHkpLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcXFxcbiAgICAgICAgZXh0cmE6IHtcXFxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ+WFs+mUruivjScpXFxcXG4gICAgICAgIH1cXFxcbiAgICB9KVxcXFxuICAgIGlmIChnZXRNeVZhcign5YWz6ZSu6K+NJykgPT0gJycpIHtcXFxcbiAgICAgICAgbGV0IG1lbSA9IHN0b3JhZ2UwLmdldEl0ZW0oXFxcXFxcXCLljaHpn7PorrDlvZVcXFxcXFxcIiwgW10pO1xcXFxuICAgICAgICBpZiAobWVtLmxlbmd0aCA+IDApIHtcXFxcbiAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFJpY2goQmlnKCfwn5OdIOaQnOe0ouWOhuWPsicpKSxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICQoXFxcXFxcXCIjbm9Mb2FkaW5nI1xcXFxcXFwiKS5sYXp5UnVsZSgoZW1wdHksIGdldENvbmZpcm0pID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlybSgpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eTtcXFxcbiAgICAgICAgICAgICAgICB9LCBlbXB0eSwgZ2V0Q29uZmlybSksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBSaWNoKFNtYWxsKEdyYXkoJ++9nu+9nu+9nui/mOayoeaQnOe0ouWRou+9nu+9nu+9nicpKSksXFxcXG4gICAgICAgICAgICAgICAgdXJsOiBlbXB0eSxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcXFxuICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpbmVWaXNpYmxlOiBmYWxzZVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgZm9yIChsZXQgaSA9IG1lbS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xcXFxuICAgICAgICAgICAgbGV0IGl0ID0gbWVtW2ldO1xcXFxuICAgICAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogaXQsXFxcXG4gICAgICAgICAgICAgICAgdXJsOiAkKFxcXFxcXFwiI25vTG9hZGluZyNcXFxcXFxcIikubGF6eVJ1bGUoKGdldFNlYXJjaFVybCwgaXQsIGVtcHR5KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCflhbPplK7or40nLCBpdCk7XFxcXG4gICAgICAgICAgICAgICAgICAgIGdldFNlYXJjaFVybChpdCk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eTtcXFxcbiAgICAgICAgICAgICAgICB9LCBnZXRTZWFyY2hVcmwsIGl0LCBlbXB0eSksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiZmxleF9idXR0b25cXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgfVxcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHN3aXRjaCAoZ2V0TXlWYXIoJ+agh+etvicsIOagh+etvlswXSkpIHtcXFxcbiAgICAgICAgICAgIGNhc2Ug5qCH562+WzBdOlxcXFxuICAgICAgICAgICAgICAgIHR5cGUgPSAnbmV0ZWFzZSc7XFxcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxcXG4gICAgICAgICAgICBjYXNlIOagh+etvlsxXTpcXFxcbiAgICAgICAgICAgICAgICB0eXBlID0gJ3FxJztcXFxcbiAgICAgICAgICAgICAgICBicmVhaztcXFxcbiAgICAgICAgICAgIGNhc2Ug5qCH562+WzJdOlxcXFxuICAgICAgICAgICAgICAgIHR5cGUgPSAna3V3byc7XFxcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxcXG4gICAgICAgIH07XFxcXG4gICAgICAgIGJvZHkgPSAnYWN0PXNlYXJjaCZ0eXBlPScgKyB0eXBlICsgJyZxdWVyeT0nICsgZ2V0TXlWYXIoJ+WFs+mUruivjScpICsgJyZzaW5nPScgKyBtZDUobWQ1KG1kNShnZXRNeVZhcign5YWz6ZSu6K+NJykpICsgdHlwZSkgKyBtZDUoXFxcXFxcXCI0MjIzMTQwMDJKYW5NdXNpY1Byb1xcXFxcXFwiKSlcXFxcbiAgICAgICAgZGF0YSA9IGdldENvbmZpZ1VybChib2R5KVxcXFxuICAgICAgICBsYXlvdXRzUGFyc2UoZCwgZGF0YSlcXFxcbiAgICB9XFxcXG59XFxcIn1dXCJ9IiwicGljVXJsIjoiaHR0cDovL3FwaWMueS5xcS5jb20vbXVzaWNfY292ZXIvUkZFbW1pYkFIUVFOYXZ5dEF1QmpEaWNRY0JYaEhvYm9Uc01zc3NTajRTTmlhTjhWNWliVTI2bVBPQS8zMDA/bj0xIiwidGl0bGUiOiLlgZzmraJFTU8s55S16Z+z5Lmf5Y+v5Lul5b6I5rK75oSIIn0=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement