Advertisement
xiaomianao666

邀您一起看:请登录

Aug 24th, 2023
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥请登录@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaQnOe0olwiLFwicGF0aFwiOlwic2VhcmNoXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbmFkZExpc3RlbmVyKCdvbkNsb3NlJywgKCkgPT4ge1xcbiAgICAvL3JlZnJlc2hQYWdlKGZhbHNlKVxcbn0pXFxudmFyIHJ1bGUgPSBNWV9SVUxFLnRpdGxlO1xcbnNldFBhZ2VUaXRsZShNWV9SVUxFLnRpdGxlICsgJ8K35pCc57SiJylcXG5jbGVhclZhcigncnVybCcpO1xcbmNsZWFyTXlWYXIoJ2lzZG93bicpO1xcbnZhciBob21lID0gY29uZmlnLmhvbWU7XFxuXFxudmFyIGNvb2tpZSA9IGdldENvb2tpZShob21lKTtcXG52YXIgbG9naHRtbCA9IGZldGNoKGhvbWUpO1xcbnZhciBpc2xvZ2luID0gbG9naHRtbC5pbmNsdWRlcygn55m75b2VJyk7XFxuLy9sb2coY29va2llKVxcbi8vbG9nKGlzbG9naW4pIC8vdHJ1ZemcgOimgeeZu+W9lSxmYWxzZeW3sue7j+eZu+W9lVxcbmlmIChnZXRQYXJhbSgna2V5JykgIT0gdW5kZWZpbmVkKSB7XFxuICAgIHB1dE15VmFyKCdrZXl3b3JkJywgZ2V0UGFyYW0oJ2tleScpKVxcbn1cXG5cXG5cXG5cXG5pZiAoaXNsb2dpbikge1xcbiAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9sb2dpblxcXCIsIHt9KSkucnVsZSk7XFxufSBlbHNlIHtcXG4gICAgLy9sb2coTVlfVVJMKVxcbiAgICB2YXIgcGFnZSA9IE1ZX1BBR0U7XFxuICAgIC8vbG9nKHBhZ2UpXFxuICAgIHZhciBrZXkgPSBnZXRNeVZhcigna2V5d29yZCcsICcnKVxcbiAgICAvL2xvZyhrZXkpXFxuXFxuICAgIGlmIChwYWdlID09IDEpIHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLwn5SNXFxcIixcXG4gICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKHIpID0+IHtcXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2tleXdvcmQnLCBpbnB1dCk7XFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxuICAgICAgICAgICAgfSwgTVlfUlVMRS50aXRsZSksXFxuICAgICAgICAgICAgZGVzYzogJ+W/hemhu+eZu+W9leW5tuS4lDHliIbpkp/lj6rog73mkJzntKIz5qyhJyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcImlucHV0XFxcIixcXG4gICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKCdrZXl3b3JkJywgJycpIHx8IFxcXCJcXFwiLFxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pXFxuICAgIH1cXG5cXG4gICAgTVlfVVJMID0gaG9tZSArICcvc2VhcmNoLnBocD9rZXk9JyArIGtleSArICcmcGFnZT0nICsgcGFnZTtcXG4gICAgaWYgKGtleSAhPSAnJykge1xcbiAgICAgICAgaWYgKHBhZ2UgPT0gMSkge1xcbiAgICAgICAgICAgIHZhciBob21laHRtbCA9IGZldGNoKE1ZX1VSTCwge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAnQ29va2llJzogY29va2llLFxcbiAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiBob21lLFxcbiAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBNT0JJTEVfVUEsXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGlmIChob21laHRtbC5pbmNsdWRlcygn55m75b2VJykpIHtcXG4gICAgICAgICAgICAgICAgbG9nKCflsJrmnKrnmbvlvZUnKVxcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICB2YXIgaGFzaCA9IHBkZmgoaG9tZWh0bWwsIFxcXCJpbnB1dFtuYW1lPWZvcm1oYXNoXSYmdmFsdWVcXFwiKTtcXG4gICAgICAgICAgICAvL2xvZyhoYXNoKVxcblxcbiAgICAgICAgICAgIHZhciBqc29uID0gSlNPTi5wYXJzZShwb3N0KGhvbWUgKyAnL3NlYXJjaC5waHA/bW9kPWZvcnVtJywge1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6IGhvbWUsXFxuICAgICAgICAgICAgICAgICAgICAnb3JpZ2luJzogaG9tZSxcXG4gICAgICAgICAgICAgICAgICAgICdDb29raWUnOiBjb29raWUsXFxuICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6IE1PQklMRV9VQSxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgYm9keToge1xcbiAgICAgICAgICAgICAgICAgICAgbW9kOiAnZm9ydW0nLFxcbiAgICAgICAgICAgICAgICAgICAgZm9ybWhhc2g6IGhhc2gsXFxuICAgICAgICAgICAgICAgICAgICBzcmNodHlwZTogJ3RpdGxlJyxcXG4gICAgICAgICAgICAgICAgICAgIHNyaGZpZDogMixcXG4gICAgICAgICAgICAgICAgICAgIHNyaGxvY2FsaXR5OiAnZm9ydW06OmZvcnVtZGlzcGxheScsXFxuICAgICAgICAgICAgICAgICAgICBzcmNodHh0OiBnZXRQYXJhbSgna2V5JyksXFxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hzdWJtaXQ6ICd0cnVlJyxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgb25seUhlYWRlcnM6IHRydWUsXFxuICAgICAgICAgICAgICAgIC8vcmVkaXJlY3Q6IGZhbHNlXFxuICAgICAgICAgICAgfSkpO1xcbiAgICAgICAgICAgIHZhciBydXJsID0ganNvbi51cmw7XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ3J1cmwnLCBydXJsKVxcbiAgICAgICAgfVxcblxcbiAgICAgICAgdmFyIHVybCA9IGdldE15VmFyKCdydXJsJykgKyAnJnBhZ2U9JyArIHBhZ2U7XFxuICAgICAgICBpZiAoZ2V0TXlWYXIoJ3J1cmwnKSA9PSAnaHR0cHM6Ly93d3cuNGtoZHIuY24vc2VhcmNoLnBocD9tb2Q9Zm9ydW0nKSB7XFxuICAgICAgICAgICAgdG9hc3QoJ+aQnOe0oui/h+S6jumikee5geivt+eojeWAmeWGjeivlScpXFxuICAgICAgICAgICAgc2V0UmVzdWx0KGQpXFxuICAgICAgICB9ZWxzZXtcXG5cXG4gICAgICAgIHZhciBodG1sID0gZmV0Y2godXJsLCB7XFxuICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAnQ29va2llJzogY29va2llLFxcbiAgICAgICAgICAgICAgICAnUmVmZXJlcic6IGhvbWUsXFxuICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogTU9CSUxFX1VBLFxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pXFxuICAgICAgICBsZXQgdHBhZ2UgPSAn5YWxIDEg6aG1ICc7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIHRwYWdlID0gcGRmaChodG1sLCAnLnBnJiZzcGFuJiZ0aXRsZScpO1xcbiAgICAgICAgfSBjYXRjaCB7fVxcbiAgICAgICAgbGV0IHRwYWdlc3RyID0gdHBhZ2UgKyAnIOW9k+WJjSAnICsgcGFnZSArICcg6aG1JztcXG4gICAgICAgIGxldCB0cGFnZW51bSA9IHRwYWdlLnJlcGxhY2UoL1teMC05XS9nLCAnJyk7XFxuICAgICAgICAvL2xvZyh0cGFnZW51bSlcXG4gICAgICAgIGlmIChwYWdlID4gdHBhZ2VudW0pIHtcXG4gICAgICAgICAgICBpZiAocGFnZSAhPSAxKSB7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxzbWFsbD7liLDlupXkuoY8L3NtYWxsPicsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHB1dE15VmFyKCdpc2Rvd24nLCAnMScpXFxuICAgICAgICAgICAgc2V0UmVzdWx0KGQpO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgaWYgKHBhZ2UgPT0gMSkge1xcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnJyArIHBkZmgoaHRtbCwgJy50bCYmaDImJlRleHQnKSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGlmIChnZXRNeVZhcignaXNkb3duJykgIT0gJzEnKSB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ08c21hbGw+JyArIHRwYWdlc3RyICsgJzwvc21hbGw+JyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB2YXIgbGlzdCA9IHBkZmEoaHRtbCwgJyN0aHJlYWRsaXN0JiZsaScpOyAvL+WIl+ihqFxcblxcbiAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgbGlzdCkge1xcbiAgICAgICAgICAgICAgICB2YXIgdSA9IHBkKGl0ZW0sICdhJiZocmVmJyk7XFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGRmaChpdGVtLCAnYSYmVGV4dCcpLCAvL+agh+mimFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogcGRmaChpdGVtLCAnJyksIC8v56ys5Yeg6ZuG5oiW5riF5pmw5bqmXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL3BhZ2UvZXI/cnVsZT1cXFwiICsgcnVsZSArIFxcXCImdT1cXFwiICsgYmFzZTY0RW5jb2RlKHUpICsgXFxcIiNpbW1lcnNpdmVUaGVtZSNcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IHBkZmgoaXRlbSwgJ2EmJlRleHQnKVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgaWYgKGh0bWwuaW5jbHVkZXMoJ+WvueS4jei1t++8jOayoeacieaJvuWIsOWMuemFjee7k+aenOOAgicpKSB7XFxuICAgICAgICAgICAgICAgIHRvYXN0KCfml6Dnu5PmnpwnKVxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGlmIChkLmxlbmd0aCA8IDMpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRvYXN0KCfmsqHmnInmlbDmja7nnIvml6Xlv5forrDlvZUnKVxcbiAgICAgICAgICAgICAgICAgICAgbG9nKGh0bWwpXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9XFxufVxcblxcbnNldEhvbWVSZXN1bHQoZClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueZu+W9lVwiLFwicGF0aFwiOlwibG9naW5cIixcInJ1bGVcIjpcImpzOlxcbmV2YWxQcml2YXRlSlMoXFxcIjdqSGhlemx4QkJtbndGSUNwQi8xSjdMTWxPVnMrY1FqRmE2TmR6L3lkL1Znb1JiTmlUVFg2ekhPRitoSnN6VmNRM1VGZzRmaDdlZC9lUVZVNW1Wdks3RSs1OTFWVjJxSjJ5WWRwMUJHeFBZdCt6aThNV1hrWnNiOXA1UnUzNUc3anhZdnp5bjFsaXIvbEE5K1FMWWpCYWZRS0V0aXBMUEk1Ni9HaUZUVW0rbEs2cVk5V0lITlZwSSsvbU9lamJTNC9YSi9LRkpweFpVWGFDVjliUjUvMjBuSmJYRGNBNm5VMTN6cWl6WGlLKzFPSGY1MVRkcFZEaU1DY3BCR0NUTmRzQ243TytLUXo4U3ljcDZhVmdhZm10L1ZyUzNwbGFnWFhhTlFvSFdKNVQ4RStNVHFzR21SNkppVUZ1RmJoV053N09jRlNhMXNDWHhuV0wzanNEcmVIbm1Sb2ZCMzlMRW5GN3FZd1hsOTZmN1lpcVg5cnllSEU2TUtNcjBRa0tCQUh3TGo1L25Tb05IWTA1dTFzZ0VUd1FNVGxRWXJRa3hMVCtMb29HUHlaY25mSUhaRWpIZTlQZkxUVFZQL1pSUUpQYW8xd2p1eVdDZTJ3Qmo3ZW5paWs0cGY5VkdRaTViT3lGTjNSc2xFc0tiNmoxSUo2RVpPREwyL3c3N01xSWdwMzBOSStoM0ozSWFtN29nVk1vRzJteXgzWUtjYXJlZ2NNUVBKejRPb0VwbTFKOTVwaVgxY09GK250TXRVT0JIYmxFMEFXblVWVmo0L2Q4RWZVZzBhWWxnWG9tdlIxSzkvVU91d1R6RmIrV3Q5MkJLV2JmQkJ2d2E4dzd5Q2FHbkt0dU9kT09JS3F4cmF6blhTWWphY0dkUzNqcnFWMjdZQ2VFSjV6UDFVMXJYV3ZicGdXQjJCRUJPdmZuZzF0MldtOEtFaDRSL013QjJxYUNLOFNURDZzWGdjMmFrRGVxeWcvaUFCWkJHK3FVVkFlWklsSHNiT1paclZJMmhBa2pFUFA1ZUZ6OGU4eVB3eFV6WHppVkxoTzZQanpKa2FaeE1VUjhUWUdDQWROM1RJY01wYlJ6WHZzYUtGczBQdGJOZmNmRGtBTEJSeHdxbk05Njd3c0JvZU4yWjdNZWR6RXhhVXlwR2dGV3h2RElacDF4b2pXZStKRkVQdFd6R1NtZFRPc09Md2trb1U1d0dEaGIwOFFzOERkc1BYZVRrZEZrVFdtK05sWTluTTNoZmxOUTRjMTd6cUp2R0MrZm9XcUx3V0h0cy9jWVVjVnZmbXJ3QmxEajFIS3Y2bjI3V1huMUpCQk9BMnhRUWUrQkVSU0NFOHQyay9nckFQaEcxREJzSjlaYmsxa0htVUd0dXRDVndLNkFxU2E1QnE5NzJndkk0dGQ5U0t6ck9wUzN2MmQ5QWhFOHlDTnJmODVxSHo0RHliMDlaaWlXVTZSSnZuTFQzcTJtMnQ3RnNlOVl0amtKOC9wdlkxMlR1dmlkTitGSGRMSk94ZEs4WUtXMHNKc1dWaGtxaUdmK1NudlEwY01KdFkySll1ZWN1S256VlpJd0I0cUtXTnkweWxmem5PY1ROVGluMnREUCtuSTRpdTQ2VTM5MFlBSDFqRElBVVQwNGFqWktKam5SVnZzLy9hZEx2czAzc3A4ZGRrbVZrNGRGRENQYzloWUljclpRNEFtQmkxTTdXRnJPUDR0NWM5dXNTMEk1aDdPOTlvSnFjV1lTREV4YlVUajlJNVRVZWM0TjkxZGU3UDB2RkNIMTVUZDQ2Zk1VVzZIU0xNWW14YWI2U01FMzNpWDF1Vks2SGxVNVdZb1luVnlmZW9ESzZoUWIza1pWdkhmY0l5TW9iSXhBRzVDbG9GOHpXMmllWmRaMGxUY2loZVVmZTZFYVdIbVd5RmxFZFN1R2U1RUJpTE1QbkhMMi9HalF1VFFLVmgrUktFZEROZjUvVzQ5K0swbkpURTFwTGZHYnlQUEQvL1NHcjAxWG1YY2Q3NkowditEb3BhMldubXJKWFJ0Z2NnQkErNS9QWXJIUXJWVS9rSG90NlRiaVU2ZVFUQ3lXUmQ3YnBkNXdOZ0xpMGJINDM4TEIyUFJKRDhsU2FDbHJHTlUrZVI0cVlRRlp3QVJJaUhJaEtFU3RoRXl1ejhhQmlxNnJaMDcvOVVyL1JhSUo1d2ltT0IvZHVJVjQ1OTluWFplaUZQR0xvZEtjWGMyaWx6TGFKV3M1aHVoaUVWVThpUHVIa0ZFaWxyS2hvMVRCMERkWnpISDhjRmQrUVBPblRBd1VMdVFVcjlMc2JmaFJlMlA3Nzl4QXdMSVRlVWRDbDFScG1DV2U4SUZhR2Urd0IzTm9oTGcrMERaYXVWcFJvVmJSSzNvRVNsTkNMVVJwcmtrdzJWcHNCNUVnRnZkMjJQVjhXaDg2L3UvUC8wVGRXZ3kvamgwOFNzRDJISkVmN3h4Zm9WazdZdm1KeGN1NzRRSXBidjErZDYvVGNqUGhGYW50RHBWOHpPVUJFcEZFVDArYmZGeDhoN1lCZzAwQU1zNmNpS1VhSGF3S1MvUDBYVFBpdHZhTlRYaTNnYzJha0RlcXlnL2lBQlpCRytxVVdXaEtUb2ZsQk0rLy9rQ0NJVCt2MWtNSVdZKytmek9kN0NtRjlzMFlEa2syNkYyTjhNTDBldWNLNUxHZ2JPWitCRjRBSmVyZVlLRVY2SldBTUVzWVA0QjhVQmwxK2JaMTk0ME9KVk8zZS9xVzJvdDhlWFNvUnBFSzJncW40UmRVQ1RlNTl4Mk1OSkhzYnFkUUtWNCtuOUxmYk5WZ0QxcUVEcFFBZURuYkUrZ1RNSFNTQXRtN2NpNXZCKzV1Sk1vdWgzb1dRVFpiVFkzcTVjQ2NRci9Tb3I2QUI1b1IzTW9nVEdaMVM5Qk1YY3dTa0ZYYWw5OWdIMHQwQ2RqanNCMDJZQ3A5NVI2eXVobnlSNTNROWc5QXRCWHBMUHJNR21Zb01WU3NabWdTK21lWFlUY0Y3ckw4QXB1K2VpVmlGMVhpd2hENWlPRkdRaHpaekZ0SDk2Yklsd3R6eUQ1TXpldXBnODZtbGtLc1cyV29VZzVCZFI4Yjk2ekdicklNTzhJSy8yVFdxUXNlT0dvNDNhWEVsZklCeUszODZHaHVXUXE4MVBudDZrb1hLaXRjSUJCdWJBYVVNUUI4NkxLcTJvdEQxNU5GdEd6UTFCTThUOTN0RlhaVmo5R04yV0R5Zms3VVJBczgrR25yM2RIQndSWlFFeXVXVDE3WEtDVFJRV2dNai9aUHNEbTRuQ1hzWUtIYmlYWlo5TzA1b0pRL0FQdDdFMmFObHYwenpXNjliT1B5eGV4Q2NESVpZZUZSTFRINElrRjZ3ZDdlbEY1SkdFQXNhK2FoUXI5UG0zeGNmSWUyQVlOTkFETE9uSWlobGZXWUs4QVBDdUNyRlJYa3RZK0o1T3ZHZDJNR1NHMG5vSnRXWFNMTlVyekU3N2JoanB1L1d3RDVHUFhmQm1XSkJPTUQwelc1VklKQ2prcWFQYTRGeXd2Z2IrYmF5Z2VKTkRibDZpeWpGSGVZTzVwN1BqOTBTc09jMW1mMUxEd1orVTVCY3I5QVdWeXpNT00rUTZPcEoxRjBHd29EN0hNcnNUOGpXQ0ovWVVwdmhMUjdZSGFWZ1FqSStMakpZOW5jRDNKYU1VTkg3TzQrY2ZXYUZEVGJIZHNwTTliNGIySDFQY2pGbTMwZzBwM2NiL2pZeWk4RGFWV3NMLzl1UVFNU2NvRzNlaVNBK0ZmWE1yb0Vrckhmb1UrVk13dnFOZkpxQzM4ZW95RjRlamoxUGl6VU5tTm8yVXpDN3FRWTZ4UkZCeVR2RithQUxkeE5KaWM0NmRhYmdOZThWanZIN2dOUCs5Y04xSElUenlLT2lKeEhIZUZ0RjNaM052MkRtWjlvemRrVFVRKzlKRGYrSGJjb2M2MHh6VmZUclNLU1c0b0lNY3JrZDhjTnR3OXVBdFh4SnFnOGl4T290dlhvbEkyTXZidUtLRk9MTU5qcnpWMDFVR3Z6RHY3Q2FGd3hKRnR1Q0tDMkE3MTZrcnIwUjJLMnptS09YaUhTdTgzeDRvNk1xYVhGTmVuVzJKYkllK2ltQzZ4dUtROXk0VWxXa3BkVE5SaDhNV3dVU2RrRkRVNHpkT3dablpEVGxud2p1OWc0YkM3eGxBSTR1MnhMOEhVY005VVFVMjRTSkdNdUF0eU1FRWJtUHRjbktLR1JVZFd4K0l1a3Z5NlYzNlVjYks5ZmdZL1lPNTJDMjMyM1Bod1FCbGhkODQ3TUplL0xXVzZYS1RNNVpBNGJVeDR2VzVndkpXMzBoSHF2OWEwYndTMnBPYUlBdFUxYkY3ZVVPSTQxR2p3UndEeGhuUWdxL2pvN25KWXhXR2hwREZFYWhXd1FieVJIeUpybklIYmZtREFTTHhUclpmdGh2Vy9pNTJhY1U4dStxZk54V09HNkpIS3VRcGtWTGR5L3FYR3I3SFZKc3g3TFlvVzBBekduVWtobzJXczQxRGtTQW9UZWNsNlJnVERzVnh1eEdKRzU4SmRqL1I3a0Z6azIvU28xWGdib1FrdWtucXNxRDRlVVp0RSsyNUNLeVJvdDkzS0l6MlVYaVorSXVMbEY5cUZRQkZCQjRQa0k2aS9RUlFlbjdCeGpGbXZMT09ZU2dDYXY1c1lDTHhUclpmdGh2Vy9pNTJhY1U4dStxZk54V09HNkpIS3VRcGtWTGR5L3FYR3I3SFZKc3g3TFlvVzBBekduVWtobzJXczQxRGtTQW9UZWNsNlJnVERzVzJMSTNNOHNXMDdlOU1vVWpocXRib0RyZ0dTL2pvdnk3YTVCNEJ1aEsxMWtSUVJSNXV5WlZRZ0Q2UElXbmtMYTRUMnlYd1Zwc0xUSGFEeHo2RmUzbzAvbGd1UXhLNThjbDk0THNVQ2oxVHB5dGdrVXhTRTJqcVBMSWJ4S2MxMWxOOGRYZ1VGb3R2ZVpiK1RTWkJoRGs1a21nMW5USVBsREFZTm5JQUtmNTVucXFKTmFxSXBtOFIvZjU1UnRFOHZMbUhPK2ZmbTZtYlB3czVPY21vc01jTHIrcnRKcnpicjhOQVloRnE1STAxdUVHVzc0cWpHVk5JZEtmNHZMeHhNcWhvaUFYWlBGcjdEd3c1aUFIOGU2ejdxRk9mUmREbEx3RmdHV3ZOV2ljaTNmRU1mYWpNZk0xNGI2Z2VNNlo5UTZ5Y1cwZUxTeWZIOTBtR240cDU5NmowenBReSt3Nzg4N0RrSnl2djJ3bk9KOFpDUDNmQlE4WC9MZU94b1c5eW9KZWtvc1BmeVJtNEJ2eGFaWlV4ZmxFNmhuYUZuUDJsb0FEM3JuSkVKRlBvVk9WdVZyY2lRdkhVUWlPVHUrODFvWnFLTi9vL2NJcElsVGdxc1BqTkY4TDlGMDBzazh3bkVXYWRNN0YwcDRCVHYrTXlFeTVSU0xyUzA3QUc0LzVJTUJtdFhDeE93RnRrN2c4Rk56aDlaSjNQSXA1blNSVlFYM2VZU05iWG1CZ3lUcWViYUU4dTZVRUIzbllhMTd6V2hrcUNtc1dvZy9ibnQzd3FVTWlxdFRDWHIxMytMK2YyV3RJM3JwUkthSm1jcnlqWk8zQ1VGZ2ZqTFFQYVRYaG1yUXVaQUNWRk8rZGhrQWJPMnloN3RTRkRSVDd6azhSdUZPS29mZzBUbDFJQjQyWWhNWStPZm1xZ0I2Z2g4VjJJQnBndjF0T1VOZlZ4cjJnaWgwY2IyemVld21xK0s2T1BCb0JuSWp4ZVN1MU51RSswYkhJWFk3SmRSaEJtMDBMQzFDak5TRXpwOWxiVWMxeFBPbkNZV2R4UDV1ZHJySVlYenVQaTRmVzdxRWNMd2JMSTdMVExsS0dra2xLQ3FGZ0JnZG9EZFp6SEg4Y0ZkK1FQT25UQXdVTHVxKzN0NUJmZlJmNnBRdWgzWmN6NzRJTy9UQlZuc2d5TWczY2kzaG5ieUIwTkJnNlk5TVJVUExHejhPdkFzb05jT3hPSGVKNEhKNVBPazVVc3JTOFVndkRoMmNUMldrb2VUNFBRTzR2OXhaNzdGZTBvZ0FVaDkzSm5tQ1NWcngxTHRidkRJdVhBMDlHOEhaZEpyN2orSGpjWUZDazJtaUpYdWpqcDZyMjdvWGI4RlVvUTJvU3lPbzhTaC9JR0JaZTcwYVpDYVRaS0VZc0pFQWJnbFhtL3poYjl6a1MwY3NLY3J5ZGxuWERHS0QyK3BwYlNIYThyMHUzQXdrcDlxc2sxNFNRMENyeU9ZaFhlMHZ5QVZndk5IUVZ0LzkwSnRvL2xPUG15NWN4c0d2QnIrZ09QaFB1ZXlxU2dCZHZBNk1CeUVOUG94YlB4RHlHOEw1WmVneWZsbElqZzBPU2hZYldLcG4wM3M5ejUxQXA0aEJQMmRUNmpuZnBEd1E4RGJ1aEFPRDR6RTBFdUsrRFVsYTBhMDFUZm5PeVN6eVBIRUIvTlJBR1lsM1Q2TG5WNjVYRnZ6YzlGQ1QxbzRZK25yK0lZYjVxSTNqaFBOQTVYRlhWNExrUmFPRFVoRGtuODlIN2FZc3p6SlhmODN4QTJHV1UzY3lCQ01NbW8zQmVlcGd2VXJVT2ZZbldrbXlxVGpVSUFZcFdKenY4TUZVc1E3a1FBSzJMVUZjV3d5SE02Y1J3SFdmU0xSY1J1dStuQ3BCWEpcXFwiKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5LqM57qnXCIsXCJwYXRoXCI6XCJlclwiLFwicnVsZVwiOlwianM6XFxudmFyIGTCoCA9IFtdO1xcbk1ZX1VSTCA9IGJhc2U2NERlY29kZShnZXRQYXJhbSgndScpLnJlcGxhY2UoLyNpbW1lcnNpdmVUaGVtZSMvZywgJycpKTtcXG4vL2xvZyhNWV9VUkwpXFxudmFywqAgaHRtbMKgID0gwqBmZXRjaChNWV9VUkwpXFxuXFxuaWYgKGdldFBhZ2VUaXRsZSgpID09ICfor6bmg4UnKSB7XFxuICAgIHNldFBhZ2VUaXRsZShwZGZoKGh0bWwsICd0aXRsZSYmVGV4dCcpKVxcbn1cXG5cXG5cXG5mdW5jdGlvbiBzbWFsbChzdHIpIHtcXG4gICAgcmV0dXJuICfigJzigJzigJ3igJ08c21hbGw+JyArIHN0ciArICc8L3NtYWxsPidcXG59XFxuXFxudmFyIGxhenkgPSAkKCcnKS5sYXp5UnVsZSgoTVlfSE9NRSxydWxlKSA9PiB7XFxuICAgIGlmKGlucHV0LnN0YXJ0c1dpdGgoJ2h0dHBzOi8vNGtoZHIuY24vdGhyZWFkJykpe1xcbiAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL3BhZ2UvZXI/cnVsZT1cXFwiICsgcnVsZSArIFxcXCImdT1cXFwiICsgYmFzZTY0RW5jb2RlKGlucHV0KSArIFxcXCIjaW1tZXJzaXZlVGhlbWUjXFxcIlxcbiAgICB9XFxuICAgIGlmIChpbnB1dC5zdGFydHNXaXRoKCdodHRwczovL3d3dy5hbGl5dW5kcml2ZS5jb20vcy8nKSkge1xcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2UvZGV0YWlsP3J1bGU95LqR55uY5rGH5b2xJnVybD0nICsgaW5wdXQgKyAnPz9meXBhZ2UnXFxuICAgICAgICAvL3JldHVybiAnaGlrZXI6Ly9wYWdlL3B1c2g/cnVsZT3kupHnm5jlkJso5o6o6YCBKSZ1cmw9aGlrZXI6Ly9lbXB0eSMjJyArIGVuY29kZVVSSUNvbXBvbmVudChpbnB1dCkgKyAnPz8/ZnlwYWdlJztcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJlcXVpcmUoXFxcImh0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTQ4MzFcXFwiKTtcXG4gICAgICAgIHJldHVybiBpbnB1dFxcbiAgICB9XFxufSwgTVlfSE9NRSwgTVlfUlVMRS50aXRsZSlcXG5cXG52YXIgcmVnZXgxID0gLzxpbWcuKj8+L2c7XFxudmFyIHJlZ2V4MiA9IC8oPGJyPikuXFxcXDEvZztcXG52YXIgcmVnZXgzID0gL2NvbG9yPVxcXCIuKz9cXFwiL2c7XFxudmFyIHJlZ2V4NCA9IC/nroDku4soXFxcXHPCtyl7MSx9Lio/L2c7XFxudmFyIHJlZ2V4NSA9IC8g44CA44CAL2c7XFxudmFyIHJlZ2V4NiA9IC/nroDku4vvvJovZztcXG52YXIgcmVnZXg3ID0gL+eugOS7iy4rL2c7XFxudHJ5IHtcXG5cXG4gICAgdmFyIHRpdGxlID0gcGRmaChodG1sLCAnLnRfZiYmZm9udDptYXRjaGVzKOWvvOa8lHzkuLvmvJQpJiYqOm5vdChicikmJkh0bWwnKS5yZXBsYWNlKHJlZ2V4MSwgJycpLnJlcGxhY2UocmVnZXgyLCAnJykucmVwbGFjZShyZWdleDMsICcnKS5yZXBsYWNlKHJlZ2V4NywgJycpXFxuICAgIC8vbG9nKHRpdGxlKVxcbn0gY2F0Y2gge1xcbiAgICB2YXIgdGl0bGUgPSAnJ1xcbn1cXG50cnkge1xcbiAgICAvL3ZhciBkZXNjID0gcGRmaChodG1sLCAnLnRfZiYmZm9udFtjb2xvcj1cXFwiIzAwMDAwMFxcXCJdLC0xJiZUZXh0JylcXG4gICAgdmFyIHhkZXNjID0gcGRmaChodG1sLCAnLnRfZiYmZm9udDptYXRjaGVzKOeugOS7iykmJio6bm90KGJyKSYmSHRtbCcpXFxuICAgIHZhciBkZXNjID0geGRlc2MubWF0Y2goL+eugOS7iyg/OlxcXFxzKT8oPzo6fO+8mnzCtykuKy9nKVswXS5yZXBsYWNlKC88W14+XSs+L2csICcnKS5yZXBsYWNlKHJlZ2V4NCwgJycpLnJlcGxhY2UocmVnZXg1LCAnJykucmVwbGFjZShyZWdleDYsICcnKVxcbiAgICAvL2xvZyhkZXNjKVxcbn0gY2F0Y2gge1xcbiAgICB2YXIgZGVzYyA9ICcnXFxufVxcblxcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPHNtYWxsPicgKyB0aXRsZSArICc8L3NtYWxsPicsXFxuICAgIMKgwqDCoMKgZGVzYzogwqBkZXNjLFxcbiAgICDCoMKgwqDCoHBpY191cmw6IHBkKGh0bWwsICcuem9vbSYmZmlsZScpLFxcbiAgICDCoMKgwqDCoGNvbF90eXBlOiDCoCAnbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cicsXFxuICAgIHVybDogTVlfVVJMLFxcbn0pXFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6IFxcXCLigJzigJzigJ3igJ08Zm9udCBjb2xvcj0nYmx1ZSc+4o+s6ZW/5oyJ5pu05aSa6YCJ6aG54o+sPGZvbnQ+XFxcIixcXG4gICAgY29sX3R5cGU6IFxcXCJ0ZXh0X2NlbnRlcl8xXFxcIixcXG4gICAgdXJsOiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2UsXFxuICAgICAgICB0ZXh0U2l6ZTogMThcXG4gICAgfVxcbn0pO1xcblxcbkFycmF5LnByb3RvdHlwZS5mbGF0ID0gZnVuY3Rpb24oaSkge1xcbiAgICBpID0gYXJndW1lbnRzWzBdIHx8IDE7XFxuICAgIGNvbnN0IGZsYXQgPSAoYXJyLCBkZWVwKSA9PiB7XFxuICAgICAgICBpZiAoZGVlcCA+IDApXFxuICAgICAgICAgICAgcmV0dXJuIGFyci5yZWR1Y2UoKHByZSwgY3VyKSA9PiBwcmUuY29uY2F0KEFycmF5LmlzQXJyYXkoY3VyKSA/IGZsYXQoY3VyLCBkZWVwIC0gMSkgOiBjdXIpLCBbXSlcXG4gICAgICAgIHJldHVybiBhcnIuc2xpY2UoKVxcbiAgICB9XFxuICAgIHJldHVybiBmbGF0KHRoaXMsIGkpO1xcbn1cXG5cXG4vL3ZhciDnur/ot68gPSBwZGZhKGh0bWwsJy50X2YmJnRyOmhhcyhhW2hyZWZePVxcXCJtYWdcXFwiXSk6bm90KDpoYXMoOm1hdGNoZXMo4o+sKSkpfHx0cjpoYXMoYVtocmVmXj1cXFwiaHR0cHM6Ly93XFxcIl0pLDE6MicpXFxudmFyIOe6v+i3ryA9IHBkZmEoaHRtbCwgJyNwb3N0bGlzdCYmLnRfdGFibGU6aGFzKGEpJylcXG7nur/ot68957q/6LevLm1hcCh4PT57XFxuICAgIHZhciBsaXN0PXBkZmEoeCwgJ2JvZHkmJnRyJyk7XFxuICAgIHJldHVybiBsaXN0O1xcbn0pLmZsYXQoKVxcblxcblxcbmlmICjnur/ot68ubGVuZ3RoID09IDApIHtcXG4gICAg57q/6LevID0gcGRmYShodG1sLCAnI3Bvc3RsaXN0JiYudF9mJiZhJykuZmlsdGVyKHggPT4gLyhtYWduZXQ6KS8udGVzdCh4KSlcXG59XFxuaWYo57q/6LevLmxlbmd0aD09MCl7XFxuICAgIOe6v+i3rz1wZGZhKGh0bWwsJy50X2ZzeiYmYVtocmVmKj1odHRwczovLzRraGRyLmNuL3RocmVhZF0nKVxcbn1cXG5cXG5cXG52YXIgb3BlbiA9IHtcXG4gICAgY29weTogZnVuY3Rpb24odXJsKSB7XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIHRpdGxlOiBcXFwi5aSN5Yi26ZO+5o6lXFxcIixcXG4gICAgICAgICAgICBqczogSlNPTi5zdHJpbmdpZnkoXFxcImNvcHk6Ly9cXFwiICsgdXJsKSxcXG4gICAgICAgIH1cXG4gICAgfSxcXG4gICAgbWFnbmV0OiBmdW5jdGlvbih1cmwpIHtcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLlhbblroPlupTnlKjmiZPlvIBcXFwiLFxcbiAgICAgICAgICAgIGpzOiBKU09OLnN0cmluZ2lmeShcXFwibWFnbmV0Oi8vXFxcIiArIHVybCksXFxuICAgICAgICB9XFxuICAgIH0sXFxuICAgIGFsaTogZnVuY3Rpb24odXJsKSB7XFxuICAgICAgICByZXR1cm4gW3tcXG4gICAgICAgICAgICB0aXRsZTogXFxcIuS6keebmOWQmyjmjqjpgIEpXFxcIixcXG4gICAgICAgICAgICBqczogJC50b1N0cmluZygoaW5wdXQpID0+IHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2UvcHVzaD9ydWxlPeS6keebmOWQmyjmjqjpgIEpJnVybD1oaWtlcjovL2VtcHR5IyMnICsgZW5jb2RlVVJJQ29tcG9uZW50KGlucHV0KSArICc/Pz9meXBhZ2UnO1xcbiAgICAgICAgICAgIH0sIHVybCksXFxuICAgICAgICB9LCB7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLkv53lrZhcXFwiLFxcbiAgICAgICAgICAgIGpzOiBKU09OLnN0cmluZ2lmeSgnc21hcnRkcml2ZTovL3NoYXJlL2Jyb3dzZT9zaGFyZUlkPScgKyB1cmwucmVwbGFjZSgvLio/KFxcXFx3KykkL2csICckMScpICsgJyZzaGFyZVB3ZD0nKVxcbiAgICAgICAgfV1cXG4gICAgfVxcbn1cXG5cXG52YXIgdXJscyA9IFtdO1xcbmZvciAobGV0IGkgaW4g57q/6LevKSB7XFxuICAgIGlmKCHnur/ot69baV0uaW5jbHVkZXMoJ2hyZWYnKSl7XFxuICAgICAgICBjb250aW51ZTtcXG4gICAgfVxcbiAgICBcXG4gICAgbGV0IGxpc3QgPSBbXTtcXG4gICAgdmFyIGFjdGlvbiA9IFtdO1xcbiAgICB2YXIgdXJsID0gcGQo57q/6LevW2ldLCAnYSYmaHJlZicpXFxuXFxuICAgIGlmICh1cmxzLmluY2x1ZGVzKHVybCkpIHtcXG4gICAgICAgIGNvbnRpbnVlO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgdXJscy5wdXNoKHVybCk7XFxuICAgIH1cXG4gICAgdmFyIHRlbXA9XFxcIjx0YWJsZT5cXFwiK+e6v+i3r1tpXStcXFwiPC90YWJsZT5cXFwiXFxuICAgIFxcbiAgICAvL2xvZyh0ZW1wKVxcbiAgICBsaXN0ID0gcGRmYSh0ZW1wLCdib2R5JiZ0cicpXFxuXFxuICAgIGxpc3QgPSBsaXN0Lmxlbmd0aCA9PSAwID8gcGRmYSjnur/ot69baV0sICdib2R5JiZhJykgOiBsaXN0O1xcbiAgICBsaXN0ID0gbGlzdC5tYXAoeCA9PiBwZGZoKHgsICdUZXh0JykpLmZpbHRlcih5ID0+ICF5LmluY2x1ZGVzKCdtYWduZXQ6P3h0JykgJiYgeSAhPSBcXFwiXFxcIik7XFxuXFxuICAgIGFjdGlvbi5wdXNoKG9wZW4uY29weSh1cmwpKTtcXG4gICAgaWYgKHVybC5pbmNsdWRlcygnbWFnbmV0JykpIHtcXG4gICAgICAgIGFjdGlvbi5wdXNoKG9wZW4ubWFnbmV0KHVybCkpO1xcbiAgICB9XFxuICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly93d3cuYWxpeXVuZHJpdmUuY29tL3MvJykpIHtcXG4gICAgICAgIHZhciBhcnIgPSBvcGVuLmFsaSh1cmwpO1xcbiAgICAgICAgYWN0aW9uID0gYWN0aW9uLmNvbmNhdChhcnIpO1xcbiAgICB9XFxuXFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogc21hbGwobGlzdC5qb2luKCdcXFxcbicpLnJlcGxhY2UoJ+i1hOa6kOS4i+i9veWcsOWdgOKPrCcsICcnKSksXFxuICAgICAgICB1cmw6IHVybCArIGxhenksXFxuICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfMVxcXCIsXFxuICAgICAgICAvLyBkZXNjOiAn4oCc4oCcJytwZGZoKOe6v+i3r1tpXSwnZm9udCwtMSYmVGV4dCcpKyfigJ3igJ0nLFxcbiAgICAgICAgLy9waWNfdXJsOiBcXFwiXFxcIlxcbiAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICBsb25nQ2xpY2s6IGFjdGlvblxcbiAgICAgICAgfVxcbiAgICB9KTtcXG5cXG59XFxuXFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6L2u5pKtXCIsXCJwYXRoXCI6XCJsdW5ib1wiLFwicnVsZVwiOlwianM6XFxuZnVuY3Rpb24gYmFubmVyKHRpdGxlLCBzdGFydCwgYXJyLCBkYXRhLCBjZmcpIHtcXG4gICAgbGV0IGlkID0gdGl0bGUgKyAnbHVuYm8nO1xcbiAgICB2YXIgcm51bSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGRhdGEubGVuZ3RoKTtcXG4gICAgdmFyIGl0ZW0gPSBkYXRhW3JudW1dO1xcbiAgICBwdXRNeVZhcigncm51bScsIHJudW0pO1xcbiAgICBsZXQgdGltZSA9IDUwMDA7XFxuICAgIGxldCBjb2xfdHlwZSA9ICdwaWNfMV9jYXJkJztcXG4gICAgbGV0IGNvbG9yID0gXFxcIndoaXRlXFxcIjtcXG4gICAgbGV0IGRlc2MgPSAnJztcXG4gICAgaWYgKGNmZyAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgIHRpbWUgPSBjZmcudGltZSA/IGNmZy50aW1lIDogdGltZTtcXG4gICAgICAgIGNvbF90eXBlID0gY2ZnLmNvbF90eXBlID8gY2ZnLmNvbF90eXBlIDogY29sX3R5cGU7XFxuICAgICAgICBkZXNjID0gY2ZnLmRlc2MgPyBjZmcuZGVzYyA6IGRlc2M7XFxuICAgIH1cXG5cXG4gICAgYXJyLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IGNvbF90eXBlLFxcbiAgICAgICAgaW1nOiBpdGVtLmltZyxcXG4gICAgICAgIGRlc2M6IGRlc2MsXFxuICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcXG4gICAgICAgIHVybDogaXRlbS51cmwsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGlkOiBpZCsnYmFyJyxcXG4gICAgICAgIH1cXG4gICAgfSlcXG5cXG4gICAgaWYgKHN0YXJ0ID09IGZhbHNlIHx8IGdldE15VmFyKCdiZW5zdGFydCcsICd0cnVlJykgPT0gJ2ZhbHNlJykge1xcbiAgICAgICAgdW5SZWdpc3RlclRhc2soaWQpXFxuICAgICAgICByZXR1cm5cXG4gICAgfVxcblxcbiAgICBsZXQgb2JqID0ge1xcbiAgICAgICAgZGF0YTogZGF0YSxcXG4gICAgfTtcXG5cXG4gICAgcmVnaXN0ZXJUYXNrKGlkLCB0aW1lLCAkLnRvU3RyaW5nKChvYmosaWQpID0+IHtcXG4gICAgICAgIHZhciBkYXRhID0gb2JqLmRhdGE7XFxuICAgICAgICB2YXIgcnVtID0gZ2V0TXlWYXIoJ3JudW0nKTtcXG5cXG4gICAgICAgIHZhciBpID0gTnVtYmVyKGdldE15VmFyKCdiYW5uZXJpJywgJzAnKSk7XFxuICAgICAgICBpZiAocnVtICE9ICcnKSB7XFxuICAgICAgICAgICAgaSA9IE51bWJlcihydW0pICsgMVxcbiAgICAgICAgICAgIGNsZWFyTXlWYXIoJ3JudW0nKVxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBpID0gaSArIDE7XFxuICAgICAgICB9XFxuICAgICAgICAvL2xvZyhpKVxcbiAgICAgICAgLy9sb2coZGF0YS5sZW5ndGgpXFxuXFxuICAgICAgICBpZiAoaSA+IGRhdGEubGVuZ3RoIC0gMSkge1xcbiAgICAgICAgICAgIGkgPSAwXFxuICAgICAgICB9XFxuICAgICAgICB2YXIgaXRlbSA9IGRhdGFbaV07XFxuICAgICAgICAvL2xvZyhpdGVtKVxcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICB1cGRhdGVJdGVtKGlkKydiYXInLCB7XFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxcbiAgICAgICAgICAgICAgICBpbWc6IGl0ZW0uaW1nLFxcbiAgICAgICAgICAgICAgICB1cmw6IGl0ZW0udXJsLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgLy9uYW1lOiBpdGVtLnRpdGxlLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgLy9zbmFtZTogaXRlbS5leHRyYS5zbmFtZSxcXG4gICAgICAgICAgICAgICAgICAgIC8vc3R5cGU6IGl0ZW0uZXh0cmEuc3R5cGUsXFxuICAgICAgICAgICAgICAgICAgICAvL3N1cmw6IGl0ZW0udXJsLFxcbiAgICAgICAgICAgICAgICAgICAgLy9pbWc6aXRlbS5pbWcsXFxuICAgICAgICAgICAgICAgICAgICAvL3BhZ2VUaXRsZTogaXRlbS50aXRsZS5yZXBsYWNlKC88W14+XSs+L2csICcnKSxcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgbG9nKGUubWVzc2FnZSlcXG4gICAgICAgICAgICB1blJlZ2lzdGVyVGFzayhpZClcXG4gICAgICAgIH1cXG4gICAgICAgIHB1dE15VmFyKCdiYW5uZXJpJywgaSk7XFxuXFxuICAgIH0sIG9iaixpZCkpXFxufVwifV0sXCJwYXJhbXNcIjpcIntcXFwiZGVmYXVsdFZhbHVlXFxcIjpcXFwiXFxcIixcXFwib25DaGFuZ2VcXFwiOlxcXCIoXFxcXG4oKSA9PiB7XFxcXG4gICAgcHV0TXlWYXIoXFxcXFxcXCJrZXl3b3JkXFxcXFxcXCIsIGlucHV0KTtcXFxcbn1cXFxcbikoKVxcXCJ9XCIsXCJzYXZlZFwiOmZhbHNlLFwidGl0bGVcIjpcIjRraGRywrdYXCIsXCJ2ZXJzaW9uXCI6MCxcInVybFwiOlwiaGlrZXI6Ly9wYWdlL3NlYXJjaD8mcGFnZT1meXBhZ2VcIixcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJmaW5kX3J1bGVcIjpcImpzOlxcbnZhciBkID0gW107XFxuYWRkTGlzdGVuZXIoJ29uQ2xvc2UnLCAoKSA9PiB7XFxuICAgIC8vcmVmcmVzaFBhZ2UoZmFsc2UpXFxufSlcXG52YXIgcnVsZSA9IE1ZX1JVTEUudGl0bGU7XFxuc2V0UGFnZVRpdGxlKE1ZX1JVTEUudGl0bGUgKyAnwrfmkJzntKInKVxcbmNsZWFyVmFyKCdydXJsJyk7XFxuY2xlYXJNeVZhcignaXNkb3duJyk7XFxudmFyIGhvbWUgPSBjb25maWcuaG9tZTtcXG5cXG52YXIgY29va2llID0gZ2V0Q29va2llKGhvbWUpO1xcbnZhciBsb2dodG1sID0gZmV0Y2goaG9tZSk7XFxudmFyIGlzbG9naW4gPSBsb2dodG1sLmluY2x1ZGVzKCfnmbvlvZUnKTtcXG4vL2xvZyhjb29raWUpXFxuLy9sb2coaXNsb2dpbikgLy90cnVl6ZyA6KaB55m75b2VLGZhbHNl5bey57uP55m75b2VXFxuaWYgKGdldFBhcmFtKCdrZXknKSAhPSB1bmRlZmluZWQpIHtcXG4gICAgcHV0TXlWYXIoJ2tleXdvcmQnLCBnZXRQYXJhbSgna2V5JykpXFxufVxcblxcblxcblxcbmlmIChpc2xvZ2luKSB7XFxuICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL2xvZ2luXFxcIiwge30pKS5ydWxlKTtcXG59IGVsc2Uge1xcbiAgICAvL2xvZyhNWV9VUkwpXFxuICAgIHZhciBwYWdlID0gTVlfUEFHRTtcXG4gICAgLy9sb2cocGFnZSlcXG4gICAgdmFyIGtleSA9IGdldE15VmFyKCdrZXl3b3JkJywgJycpXFxuICAgIC8vbG9nKGtleSlcXG5cXG4gICAgaWYgKHBhZ2UgPT0gMSkge1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogXFxcIvCflI1cXFwiLFxcbiAgICAgICAgICAgIHVybDogJC50b1N0cmluZygocikgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcigna2V5d29yZCcsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBNWV9SVUxFLnRpdGxlKSxcXG4gICAgICAgICAgICBkZXNjOiAn5b+F6aG755m75b2V5bm25LiUMeWIhumSn+WPquiDveaQnOe0ojPmrKEnLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiaW5wdXRcXFwiLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ2tleXdvcmQnLCAnJykgfHwgXFxcIlxcXCIsXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgfVxcblxcbiAgICBNWV9VUkwgPSBob21lICsgJy9zZWFyY2gucGhwP2tleT0nICsga2V5ICsgJyZwYWdlPScgKyBwYWdlO1xcbiAgICBpZiAoa2V5ICE9ICcnKSB7XFxuICAgICAgICBpZiAocGFnZSA9PSAxKSB7XFxuICAgICAgICAgICAgdmFyIGhvbWVodG1sID0gZmV0Y2goTVlfVVJMLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICdDb29raWUnOiBjb29raWUsXFxuICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6IGhvbWUsXFxuICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6IE1PQklMRV9VQSxcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgaWYgKGhvbWVodG1sLmluY2x1ZGVzKCfnmbvlvZUnKSkge1xcbiAgICAgICAgICAgICAgICBsb2coJ+WwmuacqueZu+W9lScpXFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIHZhciBoYXNoID0gcGRmaChob21laHRtbCwgXFxcImlucHV0W25hbWU9Zm9ybWhhc2hdJiZ2YWx1ZVxcXCIpO1xcbiAgICAgICAgICAgIC8vbG9nKGhhc2gpXFxuXFxuICAgICAgICAgICAgdmFyIGpzb24gPSBKU09OLnBhcnNlKHBvc3QoaG9tZSArICcvc2VhcmNoLnBocD9tb2Q9Zm9ydW0nLCB7XFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogaG9tZSxcXG4gICAgICAgICAgICAgICAgICAgICdvcmlnaW4nOiBob21lLFxcbiAgICAgICAgICAgICAgICAgICAgJ0Nvb2tpZSc6IGNvb2tpZSxcXG4gICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogTU9CSUxFX1VBLFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBib2R5OiB7XFxuICAgICAgICAgICAgICAgICAgICBtb2Q6ICdmb3J1bScsXFxuICAgICAgICAgICAgICAgICAgICBmb3JtaGFzaDogaGFzaCxcXG4gICAgICAgICAgICAgICAgICAgIHNyY2h0eXBlOiAndGl0bGUnLFxcbiAgICAgICAgICAgICAgICAgICAgc3JoZmlkOiAyLFxcbiAgICAgICAgICAgICAgICAgICAgc3JobG9jYWxpdHk6ICdmb3J1bTo6Zm9ydW1kaXNwbGF5JyxcXG4gICAgICAgICAgICAgICAgICAgIHNyY2h0eHQ6IGdldFBhcmFtKCdrZXknKSxcXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaHN1Ym1pdDogJ3RydWUnLFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICBvbmx5SGVhZGVyczogdHJ1ZSxcXG4gICAgICAgICAgICAgICAgLy9yZWRpcmVjdDogZmFsc2VcXG4gICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgdmFyIHJ1cmwgPSBqc29uLnVybDtcXG4gICAgICAgICAgICBwdXRNeVZhcigncnVybCcsIHJ1cmwpXFxuICAgICAgICB9XFxuXFxuICAgICAgICB2YXIgdXJsID0gZ2V0TXlWYXIoJ3J1cmwnKSArICcmcGFnZT0nICsgcGFnZTtcXG4gICAgICAgIGlmIChnZXRNeVZhcigncnVybCcpID09ICdodHRwczovL3d3dy40a2hkci5jbi9zZWFyY2gucGhwP21vZD1mb3J1bScpIHtcXG4gICAgICAgICAgICB0b2FzdCgn5pCc57Si6L+H5LqO6aKR57mB6K+356iN5YCZ5YaN6K+VJylcXG4gICAgICAgICAgICBzZXRSZXN1bHQoZClcXG4gICAgICAgIH1lbHNle1xcblxcbiAgICAgICAgdmFyIGh0bWwgPSBmZXRjaCh1cmwsIHtcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICdDb29raWUnOiBjb29raWUsXFxuICAgICAgICAgICAgICAgICdSZWZlcmVyJzogaG9tZSxcXG4gICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBNT0JJTEVfVUEsXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgICAgIGxldCB0cGFnZSA9ICflhbEgMSDpobUgJztcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgdHBhZ2UgPSBwZGZoKGh0bWwsICcucGcmJnNwYW4mJnRpdGxlJyk7XFxuICAgICAgICB9IGNhdGNoIHt9XFxuICAgICAgICBsZXQgdHBhZ2VzdHIgPSB0cGFnZSArICcg5b2T5YmNICcgKyBwYWdlICsgJyDpobUnO1xcbiAgICAgICAgbGV0IHRwYWdlbnVtID0gdHBhZ2UucmVwbGFjZSgvW14wLTldL2csICcnKTtcXG4gICAgICAgIC8vbG9nKHRwYWdlbnVtKVxcbiAgICAgICAgaWYgKHBhZ2UgPiB0cGFnZW51bSkge1xcbiAgICAgICAgICAgIGlmIChwYWdlICE9IDEpIHtcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPHNtYWxsPuWIsOW6leS6hjwvc21hbGw+JyxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ2lzZG93bicsICcxJylcXG4gICAgICAgICAgICBzZXRSZXN1bHQoZCk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpZiAocGFnZSA9PSAxKSB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6ICcnICsgcGRmaChodG1sLCAnLnRsJiZoMiYmVGV4dCcpLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcblxcbiAgICAgICAgaWYgKGdldE15VmFyKCdpc2Rvd24nKSAhPSAnMScpIHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxzbWFsbD4nICsgdHBhZ2VzdHIgKyAnPC9zbWFsbD4nLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIHZhciBsaXN0ID0gcGRmYShodG1sLCAnI3RocmVhZGxpc3QmJmxpJyk7IC8v5YiX6KGoXFxuXFxuICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBsaXN0KSB7XFxuICAgICAgICAgICAgICAgIHZhciB1ID0gcGQoaXRlbSwgJ2EmJmhyZWYnKTtcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGl0ZW0sICdhJiZUZXh0JyksIC8v5qCH6aKYXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiBwZGZoKGl0ZW0sICcnKSwgLy/nrKzlh6Dpm4bmiJbmuIXmmbDluqZcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcImhpa2VyOi8vcGFnZS9lcj9ydWxlPVxcXCIgKyBydWxlICsgXFxcIiZ1PVxcXCIgKyBiYXNlNjRFbmNvZGUodSkgKyBcXFwiI2ltbWVyc2l2ZVRoZW1lI1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogcGRmaChpdGVtLCAnYSYmVGV4dCcpXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBpZiAoaHRtbC5pbmNsdWRlcygn5a+55LiN6LW377yM5rKh5pyJ5om+5Yiw5Yy56YWN57uT5p6c44CCJykpIHtcXG4gICAgICAgICAgICAgICAgdG9hc3QoJ+aXoOe7k+aenCcpXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgaWYgKGQubGVuZ3RoIDwgMykge1xcbiAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ+ayoeacieaVsOaNrueci+aXpeW/l+iusOW9lScpXFxuICAgICAgICAgICAgICAgICAgICBsb2coaHRtbClcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG59XFxuXFxuc2V0SG9tZVJlc3VsdChkKVwiLFwiZ3JvdXBcIjpcIjHig6PlvbHop4bwn5KvXCIsXCJ1YVwiOlwibW9iaWxlXCIsXCJwcmVSdWxlXCI6XCJpbml0Q29uZmlnKHtcXG4gICAgY2F0ZWdvcnlMaWI6ICdodHRwOi8vaGlrZXIubm9raWEucHJlc3MvaGlrZXJ1bGUvcnVsZWxpc3QuanNvbj9pZD0yNzA1JyxcXG4gICAgY2F0ZWdvcnlMb2NhbExpYjogJ2hpa2VyOi8vZmlsZXMvcnVsZXMvanMvY2F0ZWdvcmllcy1oZWFkZXIuanMnLFxcbiAgICBjYXRlZ29yeUdpdGVlTGliOiAnaHR0cHM6Ly9naXRlZS5jb20vcmVib3JuMC9IaWtlclJ1bGVzL3Jhdy9tYXN0ZXIvcGx1Z2lucy9jYXRlZ29yaWVzLWhlYWRlci5qcycsXFxuICAgIGhvbWU6ICdodHRwczovL3d3dy40a2hkci5jbicsXFxufSlcXG5cIixcInBhZ2VzXCI6XCJbe1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5pCc57SiXFxcIixcXFwicGF0aFxcXCI6XFxcInNlYXJjaFxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbnZhciBkID0gW107XFxcXG5hZGRMaXN0ZW5lcignb25DbG9zZScsICgpID0+IHtcXFxcbiAgICAvL3JlZnJlc2hQYWdlKGZhbHNlKVxcXFxufSlcXFxcbnZhciBydWxlID0gTVlfUlVMRS50aXRsZTtcXFxcbnNldFBhZ2VUaXRsZShNWV9SVUxFLnRpdGxlICsgJ8K35pCc57SiJylcXFxcbmNsZWFyVmFyKCdydXJsJyk7XFxcXG5jbGVhck15VmFyKCdpc2Rvd24nKTtcXFxcbnZhciBob21lID0gY29uZmlnLmhvbWU7XFxcXG5cXFxcbnZhciBjb29raWUgPSBnZXRDb29raWUoaG9tZSk7XFxcXG52YXIgbG9naHRtbCA9IGZldGNoKGhvbWUpO1xcXFxudmFyIGlzbG9naW4gPSBsb2dodG1sLmluY2x1ZGVzKCfnmbvlvZUnKTtcXFxcbi8vbG9nKGNvb2tpZSlcXFxcbi8vbG9nKGlzbG9naW4pIC8vdHJ1ZemcgOimgeeZu+W9lSxmYWxzZeW3sue7j+eZu+W9lVxcXFxuaWYgKGdldFBhcmFtKCdrZXknKSAhPSB1bmRlZmluZWQpIHtcXFxcbiAgICBwdXRNeVZhcigna2V5d29yZCcsIGdldFBhcmFtKCdrZXknKSlcXFxcbn1cXFxcblxcXFxuXFxcXG5cXFxcbmlmIChpc2xvZ2luKSB7XFxcXG4gICAgZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2xvZ2luXFxcXFxcXCIsIHt9KSkucnVsZSk7XFxcXG59IGVsc2Uge1xcXFxuICAgIC8vbG9nKE1ZX1VSTClcXFxcbiAgICB2YXIgcGFnZSA9IE1ZX1BBR0U7XFxcXG4gICAgLy9sb2cocGFnZSlcXFxcbiAgICB2YXIga2V5ID0gZ2V0TXlWYXIoJ2tleXdvcmQnLCAnJylcXFxcbiAgICAvL2xvZyhrZXkpXFxcXG5cXFxcbiAgICBpZiAocGFnZSA9PSAxKSB7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogXFxcXFxcXCLwn5SNXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKHIpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBwdXRNeVZhcigna2V5d29yZCcsIGlucHV0KTtcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxcXG4gICAgICAgICAgICB9LCBNWV9SVUxFLnRpdGxlKSxcXFxcbiAgICAgICAgICAgIGRlc2M6ICflv4XpobvnmbvlvZXlubbkuJQx5YiG6ZKf5Y+q6IO95pCc57SiM+asoScsXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJpbnB1dFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgZXh0cmE6IHtcXFxcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKCdrZXl3b3JkJywgJycpIHx8IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pXFxcXG4gICAgfVxcXFxuXFxcXG4gICAgTVlfVVJMID0gaG9tZSArICcvc2VhcmNoLnBocD9rZXk9JyArIGtleSArICcmcGFnZT0nICsgcGFnZTtcXFxcbiAgICBpZiAoa2V5ICE9ICcnKSB7XFxcXG4gICAgICAgIGlmIChwYWdlID09IDEpIHtcXFxcbiAgICAgICAgICAgIHZhciBob21laHRtbCA9IGZldGNoKE1ZX1VSTCwge1xcXFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgJ0Nvb2tpZSc6IGNvb2tpZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiBob21lLFxcXFxuICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6IE1PQklMRV9VQSxcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgaWYgKGhvbWVodG1sLmluY2x1ZGVzKCfnmbvlvZUnKSkge1xcXFxuICAgICAgICAgICAgICAgIGxvZygn5bCa5pyq55m75b2VJylcXFxcbiAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgdmFyIGhhc2ggPSBwZGZoKGhvbWVodG1sLCBcXFxcXFxcImlucHV0W25hbWU9Zm9ybWhhc2hdJiZ2YWx1ZVxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgIC8vbG9nKGhhc2gpXFxcXG5cXFxcbiAgICAgICAgICAgIHZhciBqc29uID0gSlNPTi5wYXJzZShwb3N0KGhvbWUgKyAnL3NlYXJjaC5waHA/bW9kPWZvcnVtJywge1xcXFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiBob21lLFxcXFxuICAgICAgICAgICAgICAgICAgICAnb3JpZ2luJzogaG9tZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgJ0Nvb2tpZSc6IGNvb2tpZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBNT0JJTEVfVUEsXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICBib2R5OiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIG1vZDogJ2ZvcnVtJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgZm9ybWhhc2g6IGhhc2gsXFxcXG4gICAgICAgICAgICAgICAgICAgIHNyY2h0eXBlOiAndGl0bGUnLFxcXFxuICAgICAgICAgICAgICAgICAgICBzcmhmaWQ6IDIsXFxcXG4gICAgICAgICAgICAgICAgICAgIHNyaGxvY2FsaXR5OiAnZm9ydW06OmZvcnVtZGlzcGxheScsXFxcXG4gICAgICAgICAgICAgICAgICAgIHNyY2h0eHQ6IGdldFBhcmFtKCdrZXknKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoc3VibWl0OiAndHJ1ZScsXFxcXG4gICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICBvbmx5SGVhZGVyczogdHJ1ZSxcXFxcbiAgICAgICAgICAgICAgICAvL3JlZGlyZWN0OiBmYWxzZVxcXFxuICAgICAgICAgICAgfSkpO1xcXFxuICAgICAgICAgICAgdmFyIHJ1cmwgPSBqc29uLnVybDtcXFxcbiAgICAgICAgICAgIHB1dE15VmFyKCdydXJsJywgcnVybClcXFxcbiAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgIHZhciB1cmwgPSBnZXRNeVZhcigncnVybCcpICsgJyZwYWdlPScgKyBwYWdlO1xcXFxuICAgICAgICBpZiAoZ2V0TXlWYXIoJ3J1cmwnKSA9PSAnaHR0cHM6Ly93d3cuNGtoZHIuY24vc2VhcmNoLnBocD9tb2Q9Zm9ydW0nKSB7XFxcXG4gICAgICAgICAgICB0b2FzdCgn5pCc57Si6L+H5LqO6aKR57mB6K+356iN5YCZ5YaN6K+VJylcXFxcbiAgICAgICAgICAgIHNldFJlc3VsdChkKVxcXFxuICAgICAgICB9ZWxzZXtcXFxcblxcXFxuICAgICAgICB2YXIgaHRtbCA9IGZldGNoKHVybCwge1xcXFxuICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICdDb29raWUnOiBjb29raWUsXFxcXG4gICAgICAgICAgICAgICAgJ1JlZmVyZXInOiBob21lLFxcXFxuICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogTU9CSUxFX1VBLFxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBsZXQgdHBhZ2UgPSAn5YWxIDEg6aG1ICc7XFxcXG4gICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICB0cGFnZSA9IHBkZmgoaHRtbCwgJy5wZyYmc3BhbiYmdGl0bGUnKTtcXFxcbiAgICAgICAgfSBjYXRjaCB7fVxcXFxuICAgICAgICBsZXQgdHBhZ2VzdHIgPSB0cGFnZSArICcg5b2T5YmNICcgKyBwYWdlICsgJyDpobUnO1xcXFxuICAgICAgICBsZXQgdHBhZ2VudW0gPSB0cGFnZS5yZXBsYWNlKC9bXjAtOV0vZywgJycpO1xcXFxuICAgICAgICAvL2xvZyh0cGFnZW51bSlcXFxcbiAgICAgICAgaWYgKHBhZ2UgPiB0cGFnZW51bSkge1xcXFxuICAgICAgICAgICAgaWYgKHBhZ2UgIT0gMSkge1xcXFxuICAgICAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPHNtYWxsPuWIsOW6leS6hjwvc21hbGw+JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIHB1dE15VmFyKCdpc2Rvd24nLCAnMScpXFxcXG4gICAgICAgICAgICBzZXRSZXN1bHQoZCk7XFxcXG4gICAgICAgIH1cXFxcblxcXFxuICAgICAgICBpZiAocGFnZSA9PSAxKSB7XFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAnJyArIHBkZmgoaHRtbCwgJy50bCYmaDImJlRleHQnKSxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcXFxuICAgICAgICAgICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgIGlmIChnZXRNeVZhcignaXNkb3duJykgIT0gJzEnKSB7XFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPHNtYWxsPicgKyB0cGFnZXN0ciArICc8L3NtYWxsPicsXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXFxcbiAgICAgICAgICAgICAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICB2YXIgbGlzdCA9IHBkZmEoaHRtbCwgJyN0aHJlYWRsaXN0JiZsaScpOyAvL+WIl+ihqFxcXFxuXFxcXG4gICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIGxpc3QpIHtcXFxcbiAgICAgICAgICAgICAgICB2YXIgdSA9IHBkKGl0ZW0sICdhJiZocmVmJyk7XFxcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBkZmgoaXRlbSwgJ2EmJlRleHQnKSwgLy/moIfpophcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogcGRmaChpdGVtLCAnJyksIC8v56ys5Yeg6ZuG5oiW5riF5pmw5bqmXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL3BhZ2UvZXI/cnVsZT1cXFxcXFxcIiArIHJ1bGUgKyBcXFxcXFxcIiZ1PVxcXFxcXFwiICsgYmFzZTY0RW5jb2RlKHUpICsgXFxcXFxcXCIjaW1tZXJzaXZlVGhlbWUjXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogcGRmaChpdGVtLCAnYSYmVGV4dCcpXFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgaWYgKGh0bWwuaW5jbHVkZXMoJ+WvueS4jei1t++8jOayoeacieaJvuWIsOWMuemFjee7k+aenOOAgicpKSB7XFxcXG4gICAgICAgICAgICAgICAgdG9hc3QoJ+aXoOe7k+aenCcpXFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIGlmIChkLmxlbmd0aCA8IDMpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ+ayoeacieaVsOaNrueci+aXpeW/l+iusOW9lScpXFxcXG4gICAgICAgICAgICAgICAgICAgIGxvZyhodG1sKVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfVxcXFxuICAgICAgfVxcXFxuICAgIH1cXFxcbn1cXFxcblxcXFxuc2V0SG9tZVJlc3VsdChkKVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIueZu+W9lVxcXCIsXFxcInBhdGhcXFwiOlxcXCJsb2dpblxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmV2YWxQcml2YXRlSlMoXFxcXFxcXCI3akhoZXpseEJCbW53RklDcEIvMUo3TE1sT1ZzK2NRakZhNk5kei95ZC9WZ29SYk5pVFRYNnpIT0YraEpzelZjUTNVRmc0Zmg3ZWQvZVFWVTVtVnZLN0UrNTkxVlYycUoyeVlkcDFCR3hQWXQremk4TVdYa1pzYjlwNVJ1MzVHN2p4WXZ6eW4xbGlyL2xBOStRTFlqQmFmUUtFdGlwTFBJNTYvR2lGVFVtK2xLNnFZOVdJSE5WcEkrL21PZWpiUzQvWEovS0ZKcHhaVVhhQ1Y5YlI1LzIwbkpiWERjQTZuVTEzenFpelhpSysxT0hmNTFUZHBWRGlNQ2NwQkdDVE5kc0NuN08rS1F6OFN5Y3A2YVZnYWZtdC9WclMzcGxhZ1hYYU5Rb0hXSjVUOEUrTVRxc0dtUjZKaVVGdUZiaFdOdzdPY0ZTYTFzQ1h4bldMM2pzRHJlSG5tUm9mQjM5TEVuRjdxWXdYbDk2ZjdZaXFYOXJ5ZUhFNk1LTXIwUWtLQkFId0xqNS9uU29OSFkwNXUxc2dFVHdRTVRsUVlyUWt4TFQrTG9vR1B5WmNuZklIWkVqSGU5UGZMVFRWUC9aUlFKUGFvMXdqdXlXQ2Uyd0JqN2VuaWlrNHBmOVZHUWk1Yk95Rk4zUnNsRXNLYjZqMUlKNkVaT0RMMi93NzdNcUlncDMwTkkraDNKM0lhbTdvZ1ZNb0cybXl4M1lLY2FyZWdjTVFQSno0T29FcG0xSjk1cGlYMWNPRitudE10VU9CSGJsRTBBV25VVlZqNC9kOEVmVWcwYVlsZ1hvbXZSMUs5L1VPdXdUekZiK1d0OTJCS1diZkJCdndhOHc3eUNhR25LdHVPZE9PSUtxeHJhem5YU1lqYWNHZFMzanJxVjI3WUNlRUo1elAxVTFyWFd2YnBnV0IyQkVCT3ZmbmcxdDJXbThLRWg0Ui9Nd0IycWFDSzhTVEQ2c1hnYzJha0RlcXlnL2lBQlpCRytxVVZBZVpJbEhzYk9aWnJWSTJoQWtqRVBQNWVGejhlOHlQd3hVelh6aVZMaE82UGp6SmthWnhNVVI4VFlHQ0FkTjNUSWNNcGJSelh2c2FLRnMwUHRiTmZjZkRrQUxCUnh3cW5NOTY3d3NCb2VOMlo3TWVkekV4YVV5cEdnRld4dkRJWnAxeG9qV2UrSkZFUHRXekdTbWRUT3NPTHdra29VNXdHRGhiMDhRczhEZHNQWGVUa2RGa1RXbStObFk5bk0zaGZsTlE0YzE3enFKdkdDK2ZvV3FMd1dIdHMvY1lVY1Z2Zm1yd0JsRGoxSEt2Nm4yN1dYbjFKQkJPQTJ4UVFlK0JFUlNDRTh0MmsvZ3JBUGhHMURCc0o5WmJrMWtIbVVHdHV0Q1Z3SzZBcVNhNUJxOTcyZ3ZJNHRkOVNLenJPcFMzdjJkOUFoRTh5Q05yZjg1cUh6NER5YjA5WmlpV1U2Ukp2bkxUM3EybTJ0N0ZzZTlZdGprSjgvcHZZMTJUdXZpZE4rRkhkTEpPeGRLOFlLVzBzSnNXVmhrcWlHZitTbnZRMGNNSnRZMkpZdWVjdUtuelZaSXdCNHFLV055MHlsZnpuT2NUTlRpbjJ0RFArbkk0aXU0NlUzOTBZQUgxakRJQVVUMDRhalpLSmpuUlZ2cy8vYWRMdnMwM3NwOGRka21WazRkRkRDUGM5aFlJY3JaUTRBbUJpMU03V0ZyT1A0dDVjOXVzUzBJNWg3Tzk5b0pxY1dZU0RFeGJVVGo5STVUVWVjNE45MWRlN1AwdkZDSDE1VGQ0NmZNVVc2SFNMTVlteGFiNlNNRTMzaVgxdVZLNkhsVTVXWW9ZblZ5ZmVvREs2aFFiM2taVnZIZmNJeU1vYkl4QUc1Q2xvRjh6VzJpZVpkWjBsVGNpaGVVZmU2RWFXSG1XeUZsRWRTdUdlNUVCaUxNUG5ITDIvR2pRdVRRS1ZoK1JLRWRETmY1L1c0OStLMG5KVEUxcExmR2J5UFBELy9TR3IwMVhtWGNkNzZKMHYrRG9wYTJXbm1ySlhSdGdjZ0JBKzUvUFlySFFyVlUva0hvdDZUYmlVNmVRVEN5V1JkN2JwZDV3TmdMaTBiSDQzOExCMlBSSkQ4bFNhQ2xyR05VK2VSNHFZUUZad0FSSWlISWhLRVN0aEV5dXo4YUJpcTZyWjA3LzlVci9SYUlKNXdpbU9CL2R1SVY0NTk5blhaZWlGUEdMb2RLY1hjMmlsekxhSldzNWh1aGlFVlU4aVB1SGtGRWlscktobzFUQjBEZFp6SEg4Y0ZkK1FQT25UQXdVTHVRVXI5THNiZmhSZTJQNzc5eEF3TElUZVVkQ2wxUnBtQ1dlOElGYUdlK3dCM05vaExnKzBEWmF1VnBSb1ZiUkszb0VTbE5DTFVScHJra3cyVnBzQjVFZ0Z2ZDIyUFY4V2g4Ni91L1AvMFRkV2d5L2poMDhTc0QySEpFZjd4eGZvVms3WXZtSnhjdTc0UUlwYnYxK2Q2L1RjalBoRmFudERwVjh6T1VCRXBGRVQwK2JmRng4aDdZQmcwMEFNczZjaUtVYUhhd0tTL1AwWFRQaXR2YU5UWGkzZ2MyYWtEZXF5Zy9pQUJaQkcrcVVXV2hLVG9mbEJNKy8va0NDSVQrdjFrTUlXWSsrZnpPZDdDbUY5czBZRGtrMjZGMk44TUwwZXVjSzVMR2diT1orQkY0QUplcmVZS0VWNkpXQU1Fc1lQNEI4VUJsMStiWjE5NDBPSlZPM2UvcVcyb3Q4ZVhTb1JwRUsyZ3FuNFJkVUNUZTU5eDJNTkpIc2JxZFFLVjQrbjlMZmJOVmdEMXFFRHBRQWVEbmJFK2dUTUhTU0F0bTdjaTV2Qis1dUpNb3VoM29XUVRaYlRZM3E1Y0NjUXIvU29yNkFCNW9SM01vZ1RHWjFTOUJNWGN3U2tGWGFsOTlnSDB0MENkampzQjAyWUNwOTVSNnl1aG55UjUzUTlnOUF0QlhwTFByTUdtWW9NVlNzWm1nUyttZVhZVGNGN3JMOEFwdStlaVZpRjFYaXdoRDVpT0ZHUWh6WnpGdEg5NmJJbHd0enlENU16ZXVwZzg2bWxrS3NXMldvVWc1QmRSOGI5NnpHYnJJTU84SUsvMlRXcVFzZU9HbzQzYVhFbGZJQnlLMzg2R2h1V1FxODFQbnQ2a29YS2l0Y0lCQnViQWFVTVFCODZMS3Eyb3REMTVORnRHelExQk04VDkzdEZYWlZqOUdOMldEeWZrN1VSQXM4K0ducjNkSEJ3UlpRRXl1V1QxN1hLQ1RSUVdnTWovWlBzRG00bkNYc1lLSGJpWFpaOU8wNW9KUS9BUHQ3RTJhTmx2MHp6VzY5Yk9QeXhleENjRElaWWVGUkxUSDRJa0Y2d2Q3ZWxGNUpHRUFzYSthaFFyOVBtM3hjZkllMkFZTk5BRExPbklpaGxmV1lLOEFQQ3VDckZSWGt0WStKNU92R2QyTUdTRzBub0p0V1hTTE5VcnpFNzdiaGpwdS9Xd0Q1R1BYZkJtV0pCT01EMHpXNVZJSkNqa3FhUGE0Rnl3dmdiK2JheWdlSk5EYmw2aXlqRkhlWU81cDdQajkwU3NPYzFtZjFMRHdaK1U1QmNyOUFXVnl6TU9NK1E2T3BKMUYwR3dvRDdITXJzVDhqV0NKL1lVcHZoTFI3WUhhVmdRakkrTGpKWTluY0QzSmFNVU5IN080K2NmV2FGRFRiSGRzcE05YjRiMkgxUGNqRm0zMGcwcDNjYi9qWXlpOERhVldzTC85dVFRTVNjb0czZWlTQStGZlhNcm9Fa3JIZm9VK1ZNd3ZxTmZKcUMzOGVveUY0ZWpqMVBpelVObU5vMlV6QzdxUVk2eFJGQnlUdkYrYUFMZHhOSmljNDZkYWJnTmU4Vmp2SDdnTlArOWNOMUhJVHp5S09pSnhISGVGdEYzWjNOdjJEbVo5b3pka1RVUSs5SkRmK0hiY29jNjB4elZmVHJTS1NXNG9JTWNya2Q4Y050dzl1QXRYeEpxZzhpeE9vdHZYb2xJMk12YnVLS0ZPTE1OanJ6VjAxVUd2ekR2N0NhRnd4SkZ0dUNLQzJBNzE2a3JyMFIySzJ6bUtPWGlIU3U4M3g0bzZNcWFYRk5lblcySmJJZStpbUM2eHVLUTl5NFVsV2twZFROUmg4TVd3VVNka0ZEVTR6ZE93Wm5aRFRsbndqdTlnNGJDN3hsQUk0dTJ4TDhIVWNNOVVRVTI0U0pHTXVBdHlNRUVibVB0Y25LS0dSVWRXeCtJdWt2eTZWMzZVY2JLOWZnWS9ZTzUyQzIzMjNQaHdRQmxoZDg0N01KZS9MV1c2WEtUTTVaQTRiVXg0dlc1Z3ZKVzMwaEhxdjlhMGJ3UzJwT2FJQXRVMWJGN2VVT0k0MUdqd1J3RHhoblFncS9qbzduSll4V0docERGRWFoV3dRYnlSSHlKcm5JSGJmbURBU0x4VHJaZnRodlcvaTUyYWNVOHUrcWZOeFdPRzZKSEt1UXBrVkxkeS9xWEdyN0hWSnN4N0xZb1cwQXpHblVraG8yV3M0MURrU0FvVGVjbDZSZ1REc1Z4dXhHSkc1OEpkai9SN2tGemsyL1NvMVhnYm9Ra3VrbnFzcUQ0ZVVadEUrMjVDS3lSb3Q5M0tJejJVWGlaK0l1TGxGOXFGUUJGQkI0UGtJNmkvUVJRZW43QnhqRm12TE9PWVNnQ2F2NXNZQ0x4VHJaZnRodlcvaTUyYWNVOHUrcWZOeFdPRzZKSEt1UXBrVkxkeS9xWEdyN0hWSnN4N0xZb1cwQXpHblVraG8yV3M0MURrU0FvVGVjbDZSZ1REc1cyTEkzTThzVzA3ZTlNb1VqaHF0Ym9EcmdHUy9qb3Z5N2E1QjRCdWhLMTFrUlFSUjV1eVpWUWdENlBJV25rTGE0VDJ5WHdWcHNMVEhhRHh6NkZlM28wL2xndVF4SzU4Y2w5NExzVUNqMVRweXRna1V4U0UyanFQTElieEtjMTFsTjhkWGdVRm90dmVaYitUU1pCaERrNWttZzFuVElQbERBWU5uSUFLZjU1bnFxSk5hcUlwbThSL2Y1NVJ0RTh2TG1ITytmZm02bWJQd3M1T2Ntb3NNY0xyK3J0SnJ6YnI4TkFZaEZxNUkwMXVFR1c3NHFqR1ZOSWRLZjR2THh4TXFob2lBWFpQRnI3RHd3NWlBSDhlNno3cUZPZlJkRGxMd0ZnR1d2TldpY2kzZkVNZmFqTWZNMTRiNmdlTTZaOVE2eWNXMGVMU3lmSDkwbUduNHA1OTZqMHpwUXkrdzc4ODdEa0p5dnYyd25PSjhaQ1AzZkJROFgvTGVPeG9XOXlvSmVrb3NQZnlSbTRCdnhhWlpVeGZsRTZobmFGblAybG9BRDNybkpFSkZQb1ZPVnVWcmNpUXZIVVFpT1R1Kzgxb1pxS04vby9jSXBJbFRncXNQak5GOEw5RjAwc2s4d25FV2FkTTdGMHA0QlR2K015RXk1UlNMclMwN0FHNC81SU1CbXRYQ3hPd0Z0azdnOEZOemg5WkozUElwNW5TUlZRWDNlWVNOYlhtQmd5VHFlYmFFOHU2VUVCM25ZYTE3eldoa3FDbXNXb2cvYm50M3dxVU1pcXRUQ1hyMTMrTCtmMld0STNycFJLYUptY3J5alpPM0NVRmdmakxRUGFUWGhtclF1WkFDVkZPK2Roa0FiTzJ5aDd0U0ZEUlQ3ems4UnVGT0tvZmcwVGwxSUI0MlloTVkrT2ZtcWdCNmdoOFYySUJwZ3YxdE9VTmZWeHIyZ2loMGNiMnplZXdtcStLNk9QQm9CbklqeGVTdTFOdUUrMGJISVhZN0pkUmhCbTAwTEMxQ2pOU0V6cDlsYlVjMXhQT25DWVdkeFA1dWRycklZWHp1UGk0Zlc3cUVjTHdiTEk3TFRMbEtHa2tsS0NxRmdCZ2RvRGRaekhIOGNGZCtRUE9uVEF3VUx1cSszdDVCZmZSZjZwUXVoM1pjejc0SU8vVEJWbnNneU1nM2NpM2huYnlCME5CZzZZOU1SVVBMR3o4T3ZBc29OY094T0hlSjRISjVQT2s1VXNyUzhVZ3ZEaDJjVDJXa29lVDRQUU80djl4Wjc3RmUwb2dBVWg5M0pubUNTVnJ4MUx0YnZESXVYQTA5RzhIWmRKcjdqK0hqY1lGQ2sybWlKWHVqanA2cjI3b1hiOEZVb1Eyb1N5T284U2gvSUdCWmU3MGFaQ2FUWktFWXNKRUFiZ2xYbS96aGI5emtTMGNzS2NyeWRsblhER0tEMitwcGJTSGE4cjB1M0F3a3A5cXNrMTRTUTBDcnlPWWhYZTB2eUFWZ3ZOSFFWdC85MEp0by9sT1BteTVjeHNHdkJyK2dPUGhQdWV5cVNnQmR2QTZNQnlFTlBveGJQeER5RzhMNVplZ3lmbGxJamcwT1NoWWJXS3BuMDNzOXo1MUFwNGhCUDJkVDZqbmZwRHdROERidWhBT0Q0ekUwRXVLK0RVbGEwYTAxVGZuT3lTenlQSEVCL05SQUdZbDNUNkxuVjY1WEZ2emM5RkNUMW80WStucitJWWI1cUkzamhQTkE1WEZYVjRMa1JhT0RVaERrbjg5SDdhWXN6ekpYZjgzeEEyR1dVM2N5QkNNTW1vM0JlZXBndlVyVU9mWW5Xa215cVRqVUlBWXBXSnp2OE1GVXNRN2tRQUsyTFVGY1d3eUhNNmNSd0hXZlNMUmNSdXUrbkNwQlhKXFxcXFxcXCIpXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5LqM57qnXFxcIixcXFwicGF0aFxcXCI6XFxcImVyXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxudmFyIGTCoCA9IFtdO1xcXFxuTVlfVVJMID0gYmFzZTY0RGVjb2RlKGdldFBhcmFtKCd1JykucmVwbGFjZSgvI2ltbWVyc2l2ZVRoZW1lIy9nLCAnJykpO1xcXFxuLy9sb2coTVlfVVJMKVxcXFxudmFywqAgaHRtbMKgID0gwqBmZXRjaChNWV9VUkwpXFxcXG5cXFxcbmlmIChnZXRQYWdlVGl0bGUoKSA9PSAn6K+m5oOFJykge1xcXFxuICAgIHNldFBhZ2VUaXRsZShwZGZoKGh0bWwsICd0aXRsZSYmVGV4dCcpKVxcXFxufVxcXFxuXFxcXG5cXFxcbmZ1bmN0aW9uIHNtYWxsKHN0cikge1xcXFxuICAgIHJldHVybiAn4oCc4oCc4oCd4oCdPHNtYWxsPicgKyBzdHIgKyAnPC9zbWFsbD4nXFxcXG59XFxcXG5cXFxcbnZhciBsYXp5ID0gJCgnJykubGF6eVJ1bGUoKE1ZX0hPTUUscnVsZSkgPT4ge1xcXFxuICAgIGlmKGlucHV0LnN0YXJ0c1dpdGgoJ2h0dHBzOi8vNGtoZHIuY24vdGhyZWFkJykpe1xcXFxuICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL3BhZ2UvZXI/cnVsZT1cXFxcXFxcIiArIHJ1bGUgKyBcXFxcXFxcIiZ1PVxcXFxcXFwiICsgYmFzZTY0RW5jb2RlKGlucHV0KSArIFxcXFxcXFwiI2ltbWVyc2l2ZVRoZW1lI1xcXFxcXFwiXFxcXG4gICAgfVxcXFxuICAgIGlmIChpbnB1dC5zdGFydHNXaXRoKCdodHRwczovL3d3dy5hbGl5dW5kcml2ZS5jb20vcy8nKSkge1xcXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS9kZXRhaWw/cnVsZT3kupHnm5jmsYflvbEmdXJsPScgKyBpbnB1dCArICc/P2Z5cGFnZSdcXFxcbiAgICAgICAgLy9yZXR1cm4gJ2hpa2VyOi8vcGFnZS9wdXNoP3J1bGU95LqR55uY5ZCbKOaOqOmAgSkmdXJsPWhpa2VyOi8vZW1wdHkjIycgKyBlbmNvZGVVUklDb21wb25lbnQoaW5wdXQpICsgJz8/P2Z5cGFnZSc7XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgcmVxdWlyZShcXFxcXFxcImh0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTQ4MzFcXFxcXFxcIik7XFxcXG4gICAgICAgIHJldHVybiBpbnB1dFxcXFxuICAgIH1cXFxcbn0sIE1ZX0hPTUUsIE1ZX1JVTEUudGl0bGUpXFxcXG5cXFxcbnZhciByZWdleDEgPSAvPGltZy4qPz4vZztcXFxcbnZhciByZWdleDIgPSAvKDxicj4pLlxcXFxcXFxcMS9nO1xcXFxudmFyIHJlZ2V4MyA9IC9jb2xvcj1cXFxcXFxcIi4rP1xcXFxcXFwiL2c7XFxcXG52YXIgcmVnZXg0ID0gL+eugOS7iyhcXFxcXFxcXHPCtyl7MSx9Lio/L2c7XFxcXG52YXIgcmVnZXg1ID0gLyDjgIDjgIAvZztcXFxcbnZhciByZWdleDYgPSAv566A5LuL77yaL2c7XFxcXG52YXIgcmVnZXg3ID0gL+eugOS7iy4rL2c7XFxcXG50cnkge1xcXFxuXFxcXG4gICAgdmFyIHRpdGxlID0gcGRmaChodG1sLCAnLnRfZiYmZm9udDptYXRjaGVzKOWvvOa8lHzkuLvmvJQpJiYqOm5vdChicikmJkh0bWwnKS5yZXBsYWNlKHJlZ2V4MSwgJycpLnJlcGxhY2UocmVnZXgyLCAnJykucmVwbGFjZShyZWdleDMsICcnKS5yZXBsYWNlKHJlZ2V4NywgJycpXFxcXG4gICAgLy9sb2codGl0bGUpXFxcXG59IGNhdGNoIHtcXFxcbiAgICB2YXIgdGl0bGUgPSAnJ1xcXFxufVxcXFxudHJ5IHtcXFxcbiAgICAvL3ZhciBkZXNjID0gcGRmaChodG1sLCAnLnRfZiYmZm9udFtjb2xvcj1cXFxcXFxcIiMwMDAwMDBcXFxcXFxcIl0sLTEmJlRleHQnKVxcXFxuICAgIHZhciB4ZGVzYyA9IHBkZmgoaHRtbCwgJy50X2YmJmZvbnQ6bWF0Y2hlcyjnroDku4spJiYqOm5vdChicikmJkh0bWwnKVxcXFxuICAgIHZhciBkZXNjID0geGRlc2MubWF0Y2goL+eugOS7iyg/OlxcXFxcXFxccyk/KD86OnzvvJp8wrcpLisvZylbMF0ucmVwbGFjZSgvPFtePl0rPi9nLCAnJykucmVwbGFjZShyZWdleDQsICcnKS5yZXBsYWNlKHJlZ2V4NSwgJycpLnJlcGxhY2UocmVnZXg2LCAnJylcXFxcbiAgICAvL2xvZyhkZXNjKVxcXFxufSBjYXRjaCB7XFxcXG4gICAgdmFyIGRlc2MgPSAnJ1xcXFxufVxcXFxuXFxcXG5cXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfigJzigJzigJ3igJ08c21hbGw+JyArIHRpdGxlICsgJzwvc21hbGw+JyxcXFxcbiAgICDCoMKgwqDCoGRlc2M6IMKgZGVzYyxcXFxcbiAgICDCoMKgwqDCoHBpY191cmw6IHBkKGh0bWwsICcuem9vbSYmZmlsZScpLFxcXFxuICAgIMKgwqDCoMKgY29sX3R5cGU6IMKgICdtb3ZpZV8xX3ZlcnRpY2FsX3BpY19ibHVyJyxcXFxcbiAgICB1cmw6IE1ZX1VSTCxcXFxcbn0pXFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiBcXFxcXFxcIuKAnOKAnOKAneKAnTxmb250IGNvbG9yPSdibHVlJz7ij6zplb/mjInmm7TlpJrpgInpobnij6w8Zm9udD5cXFxcXFxcIixcXFxcbiAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0X2NlbnRlcl8xXFxcXFxcXCIsXFxcXG4gICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIixcXFxcbiAgICBleHRyYToge1xcXFxuICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2UsXFxcXG4gICAgICAgIHRleHRTaXplOiAxOFxcXFxuICAgIH1cXFxcbn0pO1xcXFxuXFxcXG5BcnJheS5wcm90b3R5cGUuZmxhdCA9IGZ1bmN0aW9uKGkpIHtcXFxcbiAgICBpID0gYXJndW1lbnRzWzBdIHx8IDE7XFxcXG4gICAgY29uc3QgZmxhdCA9IChhcnIsIGRlZXApID0+IHtcXFxcbiAgICAgICAgaWYgKGRlZXAgPiAwKVxcXFxuICAgICAgICAgICAgcmV0dXJuIGFyci5yZWR1Y2UoKHByZSwgY3VyKSA9PiBwcmUuY29uY2F0KEFycmF5LmlzQXJyYXkoY3VyKSA/IGZsYXQoY3VyLCBkZWVwIC0gMSkgOiBjdXIpLCBbXSlcXFxcbiAgICAgICAgcmV0dXJuIGFyci5zbGljZSgpXFxcXG4gICAgfVxcXFxuICAgIHJldHVybiBmbGF0KHRoaXMsIGkpO1xcXFxufVxcXFxuXFxcXG4vL3ZhciDnur/ot68gPSBwZGZhKGh0bWwsJy50X2YmJnRyOmhhcyhhW2hyZWZePVxcXFxcXFwibWFnXFxcXFxcXCJdKTpub3QoOmhhcyg6bWF0Y2hlcyjij6wpKSl8fHRyOmhhcyhhW2hyZWZePVxcXFxcXFwiaHR0cHM6Ly93XFxcXFxcXCJdKSwxOjInKVxcXFxudmFyIOe6v+i3ryA9IHBkZmEoaHRtbCwgJyNwb3N0bGlzdCYmLnRfdGFibGU6aGFzKGEpJylcXFxcbue6v+i3rz3nur/ot68ubWFwKHg9PntcXFxcbiAgICB2YXIgbGlzdD1wZGZhKHgsICdib2R5JiZ0cicpO1xcXFxuICAgIHJldHVybiBsaXN0O1xcXFxufSkuZmxhdCgpXFxcXG5cXFxcblxcXFxuaWYgKOe6v+i3ry5sZW5ndGggPT0gMCkge1xcXFxuICAgIOe6v+i3ryA9IHBkZmEoaHRtbCwgJyNwb3N0bGlzdCYmLnRfZiYmYScpLmZpbHRlcih4ID0+IC8obWFnbmV0OikvLnRlc3QoeCkpXFxcXG59XFxcXG5pZijnur/ot68ubGVuZ3RoPT0wKXtcXFxcbiAgICDnur/ot689cGRmYShodG1sLCcudF9mc3omJmFbaHJlZio9aHR0cHM6Ly80a2hkci5jbi90aHJlYWRdJylcXFxcbn1cXFxcblxcXFxuXFxcXG52YXIgb3BlbiA9IHtcXFxcbiAgICBjb3B5OiBmdW5jdGlvbih1cmwpIHtcXFxcbiAgICAgICAgcmV0dXJuIHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuWkjeWItumTvuaOpVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAganM6IEpTT04uc3RyaW5naWZ5KFxcXFxcXFwiY29weTovL1xcXFxcXFwiICsgdXJsKSxcXFxcbiAgICAgICAgfVxcXFxuICAgIH0sXFxcXG4gICAgbWFnbmV0OiBmdW5jdGlvbih1cmwpIHtcXFxcbiAgICAgICAgcmV0dXJuIHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuWFtuWug+W6lOeUqOaJk+W8gFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAganM6IEpTT04uc3RyaW5naWZ5KFxcXFxcXFwibWFnbmV0Oi8vXFxcXFxcXCIgKyB1cmwpLFxcXFxuICAgICAgICB9XFxcXG4gICAgfSxcXFxcbiAgICBhbGk6IGZ1bmN0aW9uKHVybCkge1xcXFxuICAgICAgICByZXR1cm4gW3tcXFxcbiAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuS6keebmOWQmyjmjqjpgIEpXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBqczogJC50b1N0cmluZygoaW5wdXQpID0+IHtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vcGFnZS9wdXNoP3J1bGU95LqR55uY5ZCbKOaOqOmAgSkmdXJsPWhpa2VyOi8vZW1wdHkjIycgKyBlbmNvZGVVUklDb21wb25lbnQoaW5wdXQpICsgJz8/P2Z5cGFnZSc7XFxcXG4gICAgICAgICAgICB9LCB1cmwpLFxcXFxuICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICB0aXRsZTogXFxcXFxcXCLkv53lrZhcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIGpzOiBKU09OLnN0cmluZ2lmeSgnc21hcnRkcml2ZTovL3NoYXJlL2Jyb3dzZT9zaGFyZUlkPScgKyB1cmwucmVwbGFjZSgvLio/KFxcXFxcXFxcdyspJC9nLCAnJDEnKSArICcmc2hhcmVQd2Q9JylcXFxcbiAgICAgICAgfV1cXFxcbiAgICB9XFxcXG59XFxcXG5cXFxcbnZhciB1cmxzID0gW107XFxcXG5mb3IgKGxldCBpIGluIOe6v+i3rykge1xcXFxuICAgIGlmKCHnur/ot69baV0uaW5jbHVkZXMoJ2hyZWYnKSl7XFxcXG4gICAgICAgIGNvbnRpbnVlO1xcXFxuICAgIH1cXFxcbiAgICBcXFxcbiAgICBsZXQgbGlzdCA9IFtdO1xcXFxuICAgIHZhciBhY3Rpb24gPSBbXTtcXFxcbiAgICB2YXIgdXJsID0gcGQo57q/6LevW2ldLCAnYSYmaHJlZicpXFxcXG5cXFxcbiAgICBpZiAodXJscy5pbmNsdWRlcyh1cmwpKSB7XFxcXG4gICAgICAgIGNvbnRpbnVlO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHVybHMucHVzaCh1cmwpO1xcXFxuICAgIH1cXFxcbiAgICB2YXIgdGVtcD1cXFxcXFxcIjx0YWJsZT5cXFxcXFxcIivnur/ot69baV0rXFxcXFxcXCI8L3RhYmxlPlxcXFxcXFwiXFxcXG4gICAgXFxcXG4gICAgLy9sb2codGVtcClcXFxcbiAgICBsaXN0ID0gcGRmYSh0ZW1wLCdib2R5JiZ0cicpXFxcXG5cXFxcbiAgICBsaXN0ID0gbGlzdC5sZW5ndGggPT0gMCA/IHBkZmEo57q/6LevW2ldLCAnYm9keSYmYScpIDogbGlzdDtcXFxcbiAgICBsaXN0ID0gbGlzdC5tYXAoeCA9PiBwZGZoKHgsICdUZXh0JykpLmZpbHRlcih5ID0+ICF5LmluY2x1ZGVzKCdtYWduZXQ6P3h0JykgJiYgeSAhPSBcXFxcXFxcIlxcXFxcXFwiKTtcXFxcblxcXFxuICAgIGFjdGlvbi5wdXNoKG9wZW4uY29weSh1cmwpKTtcXFxcbiAgICBpZiAodXJsLmluY2x1ZGVzKCdtYWduZXQnKSkge1xcXFxuICAgICAgICBhY3Rpb24ucHVzaChvcGVuLm1hZ25ldCh1cmwpKTtcXFxcbiAgICB9XFxcXG4gICAgaWYgKHVybC5zdGFydHNXaXRoKCdodHRwczovL3d3dy5hbGl5dW5kcml2ZS5jb20vcy8nKSkge1xcXFxuICAgICAgICB2YXIgYXJyID0gb3Blbi5hbGkodXJsKTtcXFxcbiAgICAgICAgYWN0aW9uID0gYWN0aW9uLmNvbmNhdChhcnIpO1xcXFxuICAgIH1cXFxcblxcXFxuXFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHNtYWxsKGxpc3Quam9pbignXFxcXFxcXFxuJykucmVwbGFjZSgn6LWE5rqQ5LiL6L295Zyw5Z2A4o+sJywgJycpKSxcXFxcbiAgICAgICAgdXJsOiB1cmwgKyBsYXp5LFxcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0XzFcXFxcXFxcIixcXFxcbiAgICAgICAgLy8gZGVzYzogJ+KAnOKAnCcrcGRmaCjnur/ot69baV0sJ2ZvbnQsLTEmJlRleHQnKSsn4oCd4oCdJyxcXFxcbiAgICAgICAgLy9waWNfdXJsOiBcXFxcXFxcIlxcXFxcXFwiXFxcXG4gICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICBsb25nQ2xpY2s6IGFjdGlvblxcXFxuICAgICAgICB9XFxcXG4gICAgfSk7XFxcXG5cXFxcbn1cXFxcblxcXFxuc2V0UmVzdWx0KGQpO1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIui9ruaSrVxcXCIsXFxcInBhdGhcXFwiOlxcXCJsdW5ib1xcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmZ1bmN0aW9uIGJhbm5lcih0aXRsZSwgc3RhcnQsIGFyciwgZGF0YSwgY2ZnKSB7XFxcXG4gICAgbGV0IGlkID0gdGl0bGUgKyAnbHVuYm8nO1xcXFxuICAgIHZhciBybnVtID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZGF0YS5sZW5ndGgpO1xcXFxuICAgIHZhciBpdGVtID0gZGF0YVtybnVtXTtcXFxcbiAgICBwdXRNeVZhcigncm51bScsIHJudW0pO1xcXFxuICAgIGxldCB0aW1lID0gNTAwMDtcXFxcbiAgICBsZXQgY29sX3R5cGUgPSAncGljXzFfY2FyZCc7XFxcXG4gICAgbGV0IGNvbG9yID0gXFxcXFxcXCJ3aGl0ZVxcXFxcXFwiO1xcXFxuICAgIGxldCBkZXNjID0gJyc7XFxcXG4gICAgaWYgKGNmZyAhPSB1bmRlZmluZWQpIHtcXFxcbiAgICAgICAgdGltZSA9IGNmZy50aW1lID8gY2ZnLnRpbWUgOiB0aW1lO1xcXFxuICAgICAgICBjb2xfdHlwZSA9IGNmZy5jb2xfdHlwZSA/IGNmZy5jb2xfdHlwZSA6IGNvbF90eXBlO1xcXFxuICAgICAgICBkZXNjID0gY2ZnLmRlc2MgPyBjZmcuZGVzYyA6IGRlc2M7XFxcXG4gICAgfVxcXFxuXFxcXG4gICAgYXJyLnB1c2goe1xcXFxuICAgICAgICBjb2xfdHlwZTogY29sX3R5cGUsXFxcXG4gICAgICAgIGltZzogaXRlbS5pbWcsXFxcXG4gICAgICAgIGRlc2M6IGRlc2MsXFxcXG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxcXFxuICAgICAgICB1cmw6IGl0ZW0udXJsLFxcXFxuICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgaWQ6IGlkKydiYXInLFxcXFxuICAgICAgICB9XFxcXG4gICAgfSlcXFxcblxcXFxuICAgIGlmIChzdGFydCA9PSBmYWxzZSB8fCBnZXRNeVZhcignYmVuc3RhcnQnLCAndHJ1ZScpID09ICdmYWxzZScpIHtcXFxcbiAgICAgICAgdW5SZWdpc3RlclRhc2soaWQpXFxcXG4gICAgICAgIHJldHVyblxcXFxuICAgIH1cXFxcblxcXFxuICAgIGxldCBvYmogPSB7XFxcXG4gICAgICAgIGRhdGE6IGRhdGEsXFxcXG4gICAgfTtcXFxcblxcXFxuICAgIHJlZ2lzdGVyVGFzayhpZCwgdGltZSwgJC50b1N0cmluZygob2JqLGlkKSA9PiB7XFxcXG4gICAgICAgIHZhciBkYXRhID0gb2JqLmRhdGE7XFxcXG4gICAgICAgIHZhciBydW0gPSBnZXRNeVZhcigncm51bScpO1xcXFxuXFxcXG4gICAgICAgIHZhciBpID0gTnVtYmVyKGdldE15VmFyKCdiYW5uZXJpJywgJzAnKSk7XFxcXG4gICAgICAgIGlmIChydW0gIT0gJycpIHtcXFxcbiAgICAgICAgICAgIGkgPSBOdW1iZXIocnVtKSArIDFcXFxcbiAgICAgICAgICAgIGNsZWFyTXlWYXIoJ3JudW0nKVxcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgaSA9IGkgKyAxO1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIC8vbG9nKGkpXFxcXG4gICAgICAgIC8vbG9nKGRhdGEubGVuZ3RoKVxcXFxuXFxcXG4gICAgICAgIGlmIChpID4gZGF0YS5sZW5ndGggLSAxKSB7XFxcXG4gICAgICAgICAgICBpID0gMFxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHZhciBpdGVtID0gZGF0YVtpXTtcXFxcbiAgICAgICAgLy9sb2coaXRlbSlcXFxcbiAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgIHVwZGF0ZUl0ZW0oaWQrJ2JhcicsIHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcXFxcbiAgICAgICAgICAgICAgICBpbWc6IGl0ZW0uaW1nLFxcXFxuICAgICAgICAgICAgICAgIHVybDogaXRlbS51cmwsXFxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgLy9uYW1lOiBpdGVtLnRpdGxlLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpLFxcXFxuICAgICAgICAgICAgICAgICAgICAvL3NuYW1lOiBpdGVtLmV4dHJhLnNuYW1lLFxcXFxuICAgICAgICAgICAgICAgICAgICAvL3N0eXBlOiBpdGVtLmV4dHJhLnN0eXBlLFxcXFxuICAgICAgICAgICAgICAgICAgICAvL3N1cmw6IGl0ZW0udXJsLFxcXFxuICAgICAgICAgICAgICAgICAgICAvL2ltZzppdGVtLmltZyxcXFxcbiAgICAgICAgICAgICAgICAgICAgLy9wYWdlVGl0bGU6IGl0ZW0udGl0bGUucmVwbGFjZSgvPFtePl0rPi9nLCAnJyksXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgbG9nKGUubWVzc2FnZSlcXFxcbiAgICAgICAgICAgIHVuUmVnaXN0ZXJUYXNrKGlkKVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHB1dE15VmFyKCdiYW5uZXJpJywgaSk7XFxcXG5cXFxcbiAgICB9LCBvYmosaWQpKVxcXFxufVxcXCJ9XVwiLFwicHJveHlcIjpcIlwifSIsInRpdGxlIjoi6K+355m75b2VIn0=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement