Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥内射中出@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcImFlc1wiLFwicGF0aFwiOlwiYWVzXCIsXCJydWxlXCI6XCIvL+WKoOi9vUNyeXB0b0pT5bqTXFxuZXZhbChnZXRDcnlwdG9KUygpKVxcblxcbi8vIOino+WvhuWHveaVsFxcbmZ1bmN0aW9uIERlY3J5cHQod29yZCkge1xcbiAgICBjb25zdCBrZXkgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShcXFwiMmFjZjdlOTFlOTg2NDY3M1xcXCIpO1xcbiAgICBjb25zdCBpdiA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXCIxYzI5ODgyZDNkZGZjZmQ2XFxcIik7XFxuICAgIGxldCBlbmNyeXB0ZWRIZXhTdHIgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKHdvcmQpO1xcbiAgICBsZXQgZGVjcnlwdCA9IENyeXB0b0pTLkFFUy5kZWNyeXB0KHtcXG4gICAgICAgIGNpcGhlcnRleHQ6IGVuY3J5cHRlZEhleFN0clxcbiAgICB9LCBrZXksIHtcXG4gICAgICAgIGl2OiBpdixcXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3IC8vIOazqOaEj+i/memHjOW6lOivpeaYr0NyeXB0b0pTLnBhZC5Ob1BhZGRpbmdcXG4gICAgfSk7XFxuICAgIGlmIChkZWNyeXB0KSB7XFxuICAgICAgICBsZXQgZGVjcnlwdGVkU3RyID0gZGVjcnlwdC50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOCk7XFxuICAgICAgICByZXR1cm4gZGVjcnlwdGVkU3RyO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgLy8g6Kej5a+G5aSx6LSl77yM6L+U5ZuebnVsbOaIlumUmeivr+S/oeaBr1xcbiAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgIH1cXG59XFxuXFxuLy8g5Yqg5a+G5Ye95pWwXFxuZnVuY3Rpb24gRW5jcnlwdChwbGFpbnRleHQpIHtcXG4gICAgY29uc3Qga2V5ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoXFxcIjJhY2Y3ZTkxZTk4NjQ2NzNcXFwiKTtcXG4gICAgY29uc3QgaXYgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShcXFwiMWMyOTg4MmQzZGRmY2ZkNlxcXCIpO1xcbiAgICB2YXIgZW5jcnlwdGVkID0gQ3J5cHRvSlMuQUVTLmVuY3J5cHQocGxhaW50ZXh0LCBrZXksIHtcXG4gICAgICAgIGl2OiBpdixcXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3IC8vIOazqOaEj+i/memHjOW6lOivpeaYr0NyeXB0b0pTLnBhZC5Ob1BhZGRpbmdcXG4gICAgfSk7XFxuICAgIHZhciBjaXBoZXJ0ZXh0ID0gZW5jcnlwdGVkLmNpcGhlcnRleHQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLkJhc2U2NCk7XFxuICAgIHJldHVybiBjaXBoZXJ0ZXh0O1xcbn1cXG5cXG5cXG5cXG52YXIgbGF6eSA9ICQoJycpLmltYWdlKCgpID0+IHtcXG5jb25zdCBDcnlwdG9VdGlsID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL2Fzc2V0cy9jcnlwdG8tamF2YS5qc1xcXCIpO1xcblxcdGxldCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXCJmNWQ5NjVkZjc1MzM2MjcwXFxcIik7XFxuXFx0bGV0IGl2ID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlVVRGOChcXFwiOTdiNjAzOTRhYmMyZmJlMVxcXCIpO1xcblxcdGxldCB0ZXh0RGF0YSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUlucHV0U3RyZWFtKGlucHV0KTtcXG5cXHRsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZGVjcnlwdCh0ZXh0RGF0YSwga2V5LCB7XFxuICBcXHRtb2RlOiBcXFwiQUVTL0NCQy9QS0NTN1BhZGRpbmdcXFwiLFxcblxcdFxcdGl2OiBpdlxcblxcdH0pO1xcblxcdHJldHVybiBlbmNyeXB0ZWQudG9JbnB1dFN0cmVhbSgpO1xcbn0pXFxuXFxudmFyIGxhenkxID0gJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xcbi8vbWQ15Yqg5a+GXFxuZnVuY3Rpb24gbWQ1KHN0cikge1xcbiAgICByZXR1cm4gQ3J5cHRvSlMuTUQ1KHN0cikudG9TdHJpbmcoKTtcXG59XFxuLy9zaGEyNTbliqDlr4ZcXG5mdW5jdGlvbiBzaGEyNTYoc3RyKSB7XFxuICAgIHJldHVybiBDcnlwdG9KUy5TSEEyNTYoc3RyKS50b1N0cmluZygpO1xcbn1cXG5sZXQgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSkudG9TdHJpbmcoKTtcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2FlcycpKS5ydWxlKTtcXG5sZXQgZGF0YTA9J3tcXFwiX2hhc2hcXFwiOlxcXCIxNzI5OTQ5MDI1XFxcIixcXFwiYnVuZGxlSWRcXFwiOlxcXCJjb20ucHdhLnpwY3BqXFxcIixcXFwib2F1dGhfdHlwZVxcXCI6XFxcIndlYlxcXCIsXFxcIm9hdXRoX2lkXFxcIjpcXFwiMTA1OTg2ZWJhMGZjYTRhNGY0MzZmYmUxNzk4MTVhMGRcXFwiLFxcXCJsYW5ndWFnZVxcXCI6XFxcInpoXFxcIixcXFwiaWRcXFwiOlxcXCInK2lucHV0KydcXFwiLFxcXCJ2ZXJzaW9uXFxcIjpcXFwiMS43LjBcXFwiLFxcXCJ2aWFcXFwiOlxcXCJwd2FcXFwiLFxcXCJ0b2tlblxcXCI6XFxcIlxcXCJ9J1xcbnZhciBkYXRhID0gRW5jcnlwdChkYXRhMCk7IFxcbi8vbG9nKGRhdGEpXFxudmFyIHNpZ24gPSBtZDUoc2hhMjU2KCdjbGllbnQ9cHdhJmRhdGE9JytkYXRhKycmdGltZXN0YW1wPScrdCsnNTU4OWQ0MWY5MmE1OTdkMDE2YjAzN2FjMzdkYjI0M2QnKSk7IC8vbG9nKHNpZ24pXFxudmFyIGJvZHkgPSAnZGF0YT0nK2RhdGErJyZzaWduPScrc2lnbisnJmNsaWVudD1wd2EmdGltZXN0YW1wPScrdDsgXFxuLy9sb2coYm9keSlcXG52YXIgdXJsMSA9ICdodHRwczovL2FwaTIucGlpZnZseS5jb20vYXBpLnBocC9hcGkvbXYvZ2V0RGV0YWlsJztcXG52YXIgdXJsMiA9IGZldGNoKHVybDEsIHtcXG4gICAgaGVhZGVyczoge1xcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcXG4gICAgfSxcXG4gICAgYm9keTogYm9keSxcXG4gICAgbWV0aG9kOiAnUE9TVCdcXG59KTsgXFxuXFxubGV0IHVybDMgPSBKU09OLnBhcnNlKHVybDIpLmRhdGE7IFxcbmxldCB1cmw0ID0gRGVjcnlwdCh1cmwzKTsgXFxubGV0IHVybDU9SlNPTi5wYXJzZSh1cmw0KS5kYXRhLmRldGFpbC5wcmV2aWV3X3VybC5yZXBsYWNlKC9cXFxcL1xcXFwvLipwbGF5XFxcXC4vLCcvL2xvbmcuJyk7XFxucmV0dXJuIHVybDVcXG59KVxcbmZ1bmN0aW9uIHN0cm9uZyhkLCBjKSB7XFxuICAgIHJldHVybiAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0jJyArIChjIHx8ICcwMDAwMDAnKSArICc+JyArIGQgKyAnPC9mb250Pjwvc3Ryb25nPic7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5KGxpc3QsIG1vZGUsIGQpIHtcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcbiAgICAgICAgdmFyIFRpdGxlID0gKGdldE15VmFyKCdjb2xvcicsICctMScpID09IGkpID8gc3Ryb25nKHRpdGxlLCAnRkY2Njk5JykgOiB0aXRsZTtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IFRpdGxlLFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBtb2RlLCBMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgIGlmIChtb2RlID09IDApIHtcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd0eXBlJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT0gMSkge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGVTJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT0gMikge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGVTUycsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBwdXRNeVZhcignY29sb3InLCBpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpLCBtb2RlLCBMaXN0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcbiQuZXhwb3J0cy5DYXRlZ29yeSA9IENhdGVnb3J5O1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pe26Ze05oiz6L2s5o2iXCIsXCJwYXRoXCI6XCLml7bpl7TmiLPovazmjaJcIixcInJ1bGVcIjpcImZ1bmN0aW9uIHRpbWVzdGFtcFRvVGltZSh0bSwgdHMpIHtcXG5cXHRcXHR1bmRlZmluZWRcXG5cXHRcXHR2YXIgZGF0ZSA9IG5ldyBEYXRlKHRtICogMTAwMCk7IC8v5pe26Ze05oiz5Li6MTDkvY3pnIAqMTAwMO+8jOaXtumXtOaIs+S4ujEz5L2N55qE6K+d5LiN6ZyA5LmYMTAwMFxcblxcdFxcdHZhciBZID0gZGF0ZS5nZXRGdWxsWWVhcigpICsgJy0nO1xcblxcdFxcdHZhciBNID0gKGRhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/ICcwJyArIChkYXRlLmdldE1vbnRoKCkgKyAxKSA6IGRhdGUuZ2V0TW9udGgoKSArIDEpICsgJy0nO1xcblxcdFxcdHZhciBEID0gZGF0ZS5nZXREYXRlKCk7XFxuXFx0XFx0dmFyIGggPSAnIHwgJyArIGRhdGUuZ2V0SG91cnMoKSArICc6JztcXG5cXHRcXHR2YXIgbSA9IGRhdGUuZ2V0TWludXRlcygpO1xcblxcdFxcdGlmKG08MTApIG0gPSAnMCcrbTtcXG5cXHRcXHRtID0gbSArICc6J1xcblxcdFxcdHZhciBzID0gZGF0ZS5nZXRTZWNvbmRzKCk7XFxuXFx0XFx0aWYoczwxMCkgcyA9ICcwJytzO1xcblxcdFxcdGlmICh0cyA9PSAwKSByZXR1cm4gWSArIE0gKyBEO1xcblxcdFxcdGlmICh0cyA9PSAxKSByZXR1cm4gWSArIE0gKyBEICsgaCArIG0gKyBzO1xcblxcdH1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS6jOe6p1wiLFwicGF0aFwiOlwiZXJqaVwiLFwicnVsZVwiOlwianM6IFxcbnZhciBkID0gW107XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxuXFxuLy/nlJ/miJDml7bpl7TmiLNcXG5mdW5jdGlvbiBnZXRDdXJyZW50VGltZXN0YW1wKCkge1xcbiAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7XFxufVxcbi8vbWQ15Yqg5a+GXFxuZnVuY3Rpb24gbWQ1KHN0cikge1xcbiAgICByZXR1cm4gQ3J5cHRvSlMuTUQ1KHN0cikudG9TdHJpbmcoKTtcXG59XFxuLy9zaGEyNTbliqDlr4ZcXG5mdW5jdGlvbiBzaGEyNTYoc3RyKSB7XFxuICAgIHJldHVybiBDcnlwdG9KUy5TSEEyNTYoc3RyKS50b1N0cmluZygpO1xcbn1cXG5cXG52YXIgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApOyAvL2xvZyh0KVxcbmxldCBpZD1NWV9VUkwuc3BsaXQoJyMjJylbMl07XFxubGV0IHA9TVlfVVJMLnNwbGl0KCcjIycpWzFdO1xcblxcbnZhciB0eXBlbGlzdCA9IFt7XFxuICAgIHRpdGxlOiAn5pyA5pawJyxcXG4gICAgdHlwZTogJ25ldydcXG59LCB7XFxuICAgIHRpdGxlOiAn5pyA54OtJyxcXG4gICAgdHlwZTogJ2hvdCdcXG59XTtcXG5pZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgICQucmVxdWlyZShcXFwiYWVzXFxcIikuQ2F0ZWdvcnkodHlwZWxpc3QsMCxkKTtcXG59XFxuXFxubGV0IGRhdGEwPSd7XFxcImlkXFxcIjpcXFwiJytpZCsnXFxcIixcXFwibGltaXRcXFwiOlxcXCIzMFxcXCIsXFxcInBhZ2VcXFwiOlxcXCInK3ArJ1xcXCIsXFxcInNvcnRcXFwiOlxcXCInK2dldE15VmFyKCd0eXBlJywgJ25ldycpKydcXFwiLFxcXCJvYXV0aF9pZFxcXCI6XFxcImMyMDE0YmRhOTdjZmY0NWRlNTRiMWFiNDllMjI3ZjEzXFxcIixcXFwiYnVuZGxlSWRcXFwiOlxcXCJjb20ucHdhLnpwY3BqXFxcIixcXFwidmVyc2lvblxcXCI6XFxcIjMuOS4wXFxcIixcXFwib2F1dGhfdHlwZVxcXCI6XFxcIndlYlxcXCIsXFxcImxhbmd1YWdlXFxcIjpcXFwiemhcXFwiLFxcXCJ2aWFcXFwiOlxcXCJwd2FcXFwiLFxcXCJ0b2tlblxcXCI6XFxcIlxcXCJ9J1xcbi8vbG9nKGRhdGEwKVxcbnZhciBkYXRhID0gRW5jcnlwdChkYXRhMCk7IFxcbi8vbG9nKGRhdGEpXFxudmFyIHNpZ24gPSBtZDUoc2hhMjU2KCdjbGllbnQ9cHdhJmRhdGE9JytkYXRhKycmdGltZXN0YW1wPScrdCsnNTU4OWQ0MWY5MmE1OTdkMDE2YjAzN2FjMzdkYjI0M2QnKSk7IC8vbG9nKHNpZ24pXFxudmFyIGJvZHkgPSAnZGF0YT0nK2RhdGErJyZzaWduPScrc2lnbisnJmNsaWVudD1wd2EmdGltZXN0YW1wPScrdDsgXFxuLy9sb2coYm9keSlcXG52YXIgdXJsID0gJ2h0dHBzOi8vYXBpMi5waWlmdmx5LmNvbS9hcGkucGhwL2FwaS9tdi9saXN0X2NvbnN0cnVjdCc7XFxudmFyIGh0bWwgPSBmZXRjaCh1cmwsIHtcXG4gICAgaGVhZGVyczoge1xcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcXG4gICAgfSxcXG4gICAgYm9keTogYm9keSxcXG4gICAgbWV0aG9kOiAnUE9TVCdcXG59KTsgXFxuLy9sb2coaHRtbClcXG5cXG5sZXQgaHRtbDEgPSBKU09OLnBhcnNlKGh0bWwpLmRhdGE7IFxcbi8vbG9nKGh0bWwxKVxcbmxldCBodG1sMiA9IERlY3J5cHQoaHRtbDEpOyBcXG4vL2xvZyhodG1sMilcXG5cXG52YXIgbGlzdCA9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGEubGlzdDtcXG4vL2xvZyhsaXN0KTtcXG5pZihsaXN0IT1udWxsKXtcXG5saXN0LmZvckVhY2goZGF0YSA9PiB7XFxuICAgICAgICBpZihkYXRhLmNsaWNrZWQ9PW51bGwpe1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXG4gICAgICAgICAgICBkZXNjOiAgZGF0YS5jcmVhdGVkX2F0KydcXFxcdFxcXFx0XFxcXHRcXFxcdCcrcGFyc2VJbnQoZGF0YS5kdXJhdGlvbi82MCkrJzonK3BhcnNlSW50KGRhdGEuZHVyYXRpb24lNjApLFxcbiAgICAgICAgICAgaW1nOiBkYXRhLmNvdmVyX2hvcml6b250YWwgKyBsYXp5LFxcbiAgICAgICAgICAgLy8gaW1nOiBkYXRhLmNvdmVyX3RodW1iX3VybCArICsgJ0Bqcz0nICsgaW1nRGVjKGtleSwgaXYsICdBRVMnKSxcXG4gICAgICAgICAgICB1cmw6IGRhdGEuaWQgKyBsYXp5MVxcbiAgICAgICAgfSlcXG59XFxuICAgIH0pXFxufVxcbnNldFJlc3VsdChkKVwifV0sXCJzYXZlZFwiOmZhbHNlLFwidGl0bGVcIjpcIjkx5Yi254mH5Y6CXCIsXCJ2ZXJzaW9uXCI6MCxcInVybFwiOlwiaGlrZXI6Ly9lbXB0eSMjZnlwYWdlIyMxMTM7Z2V0O1VURi04O3tVc2VyLUFnZW50QE1vemlsbGEvNS4wIChMaW51eO+8m++8myBBbmRyb2lkIDE077yb77ybIDIzMDEzUks3NUMgQnVpbGQvVUtRMS4yMzA4MDQuMDAx77yb77ybIHd2KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuMCBDaHJvbWUvMTE4LjAuMC4wIE1vYmlsZSBTYWZhcmkvNTM3LjM2fVwiLFwiY29sX3R5cGVcIjpcIm1vdmllXzJcIixcImZpbmRfcnVsZVwiOlwianM6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZXJqaVxcXCIpXCIsXCJncm91cFwiOlwiMVwiLFwidWFcIjpcIm1vYmlsZVwiLFwicHJlUnVsZVwiOlwiXCIsXCJwYWdlc1wiOlwiW3tcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcImFlc1xcXCIsXFxcInBhdGhcXFwiOlxcXCJhZXNcXFwiLFxcXCJydWxlXFxcIjpcXFwiLy/liqDovb1DcnlwdG9KU+W6k1xcXFxuZXZhbChnZXRDcnlwdG9KUygpKVxcXFxuXFxcXG4vLyDop6Plr4blh73mlbBcXFxcbmZ1bmN0aW9uIERlY3J5cHQod29yZCkge1xcXFxuICAgIGNvbnN0IGtleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXFxcXFwiMmFjZjdlOTFlOTg2NDY3M1xcXFxcXFwiKTtcXFxcbiAgICBjb25zdCBpdiA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXFxcXFwiMWMyOTg4MmQzZGRmY2ZkNlxcXFxcXFwiKTtcXFxcbiAgICBsZXQgZW5jcnlwdGVkSGV4U3RyID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSh3b3JkKTtcXFxcbiAgICBsZXQgZGVjcnlwdCA9IENyeXB0b0pTLkFFUy5kZWNyeXB0KHtcXFxcbiAgICAgICAgY2lwaGVydGV4dDogZW5jcnlwdGVkSGV4U3RyXFxcXG4gICAgfSwga2V5LCB7XFxcXG4gICAgICAgIGl2OiBpdixcXFxcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXFxcXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzNyAvLyDms6jmhI/ov5nph4zlupTor6XmmK9DcnlwdG9KUy5wYWQuTm9QYWRkaW5nXFxcXG4gICAgfSk7XFxcXG4gICAgaWYgKGRlY3J5cHQpIHtcXFxcbiAgICAgICAgbGV0IGRlY3J5cHRlZFN0ciA9IGRlY3J5cHQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xcXFxuICAgICAgICByZXR1cm4gZGVjcnlwdGVkU3RyO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIC8vIOino+WvhuWksei0pe+8jOi/lOWbnm51bGzmiJbplJnor6/kv6Hmga9cXFxcbiAgICAgICAgcmV0dXJuIG51bGw7XFxcXG4gICAgfVxcXFxufVxcXFxuXFxcXG4vLyDliqDlr4blh73mlbBcXFxcbmZ1bmN0aW9uIEVuY3J5cHQocGxhaW50ZXh0KSB7XFxcXG4gICAgY29uc3Qga2V5ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoXFxcXFxcXCIyYWNmN2U5MWU5ODY0NjczXFxcXFxcXCIpO1xcXFxuICAgIGNvbnN0IGl2ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoXFxcXFxcXCIxYzI5ODgyZDNkZGZjZmQ2XFxcXFxcXCIpO1xcXFxuICAgIHZhciBlbmNyeXB0ZWQgPSBDcnlwdG9KUy5BRVMuZW5jcnlwdChwbGFpbnRleHQsIGtleSwge1xcXFxuICAgICAgICBpdjogaXYsXFxcXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxcXFxuICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuUGtjczcgLy8g5rOo5oSP6L+Z6YeM5bqU6K+l5pivQ3J5cHRvSlMucGFkLk5vUGFkZGluZ1xcXFxuICAgIH0pO1xcXFxuICAgIHZhciBjaXBoZXJ0ZXh0ID0gZW5jcnlwdGVkLmNpcGhlcnRleHQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLkJhc2U2NCk7XFxcXG4gICAgcmV0dXJuIGNpcGhlcnRleHQ7XFxcXG59XFxcXG5cXFxcblxcXFxuXFxcXG52YXIgbGF6eSA9ICQoJycpLmltYWdlKCgpID0+IHtcXFxcbmNvbnN0IENyeXB0b1V0aWwgPSAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL2Fzc2V0cy9jcnlwdG8tamF2YS5qc1xcXFxcXFwiKTtcXFxcblxcXFx0bGV0IGtleSA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcXFxcXCJmNWQ5NjVkZjc1MzM2MjcwXFxcXFxcXCIpO1xcXFxuXFxcXHRsZXQgaXYgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXFxcXFwiOTdiNjAzOTRhYmMyZmJlMVxcXFxcXFwiKTtcXFxcblxcXFx0bGV0IHRleHREYXRhID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSW5wdXRTdHJlYW0oaW5wdXQpO1xcXFxuXFxcXHRsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5BRVMuZGVjcnlwdCh0ZXh0RGF0YSwga2V5LCB7XFxcXG4gIFxcXFx0bW9kZTogXFxcXFxcXCJBRVMvQ0JDL1BLQ1M3UGFkZGluZ1xcXFxcXFwiLFxcXFxuXFxcXHRcXFxcdGl2OiBpdlxcXFxuXFxcXHR9KTtcXFxcblxcXFx0cmV0dXJuIGVuY3J5cHRlZC50b0lucHV0U3RyZWFtKCk7XFxcXG59KVxcXFxuXFxcXG52YXIgbGF6eTEgPSAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4vL21kNeWKoOWvhlxcXFxuZnVuY3Rpb24gbWQ1KHN0cikge1xcXFxuICAgIHJldHVybiBDcnlwdG9KUy5NRDUoc3RyKS50b1N0cmluZygpO1xcXFxufVxcXFxuLy9zaGEyNTbliqDlr4ZcXFxcbmZ1bmN0aW9uIHNoYTI1NihzdHIpIHtcXFxcbiAgICByZXR1cm4gQ3J5cHRvSlMuU0hBMjU2KHN0cikudG9TdHJpbmcoKTtcXFxcbn1cXFxcbmxldCB0ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpKS50b1N0cmluZygpO1xcXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxcXG5sZXQgZGF0YTA9J3tcXFxcXFxcIl9oYXNoXFxcXFxcXCI6XFxcXFxcXCIxNzI5OTQ5MDI1XFxcXFxcXCIsXFxcXFxcXCJidW5kbGVJZFxcXFxcXFwiOlxcXFxcXFwiY29tLnB3YS56cGNwalxcXFxcXFwiLFxcXFxcXFwib2F1dGhfdHlwZVxcXFxcXFwiOlxcXFxcXFwid2ViXFxcXFxcXCIsXFxcXFxcXCJvYXV0aF9pZFxcXFxcXFwiOlxcXFxcXFwiMTA1OTg2ZWJhMGZjYTRhNGY0MzZmYmUxNzk4MTVhMGRcXFxcXFxcIixcXFxcXFxcImxhbmd1YWdlXFxcXFxcXCI6XFxcXFxcXCJ6aFxcXFxcXFwiLFxcXFxcXFwiaWRcXFxcXFxcIjpcXFxcXFxcIicraW5wdXQrJ1xcXFxcXFwiLFxcXFxcXFwidmVyc2lvblxcXFxcXFwiOlxcXFxcXFwiMS43LjBcXFxcXFxcIixcXFxcXFxcInZpYVxcXFxcXFwiOlxcXFxcXFwicHdhXFxcXFxcXCIsXFxcXFxcXCJ0b2tlblxcXFxcXFwiOlxcXFxcXFwiXFxcXFxcXCJ9J1xcXFxudmFyIGRhdGEgPSBFbmNyeXB0KGRhdGEwKTsgXFxcXG4vL2xvZyhkYXRhKVxcXFxudmFyIHNpZ24gPSBtZDUoc2hhMjU2KCdjbGllbnQ9cHdhJmRhdGE9JytkYXRhKycmdGltZXN0YW1wPScrdCsnNTU4OWQ0MWY5MmE1OTdkMDE2YjAzN2FjMzdkYjI0M2QnKSk7IC8vbG9nKHNpZ24pXFxcXG52YXIgYm9keSA9ICdkYXRhPScrZGF0YSsnJnNpZ249JytzaWduKycmY2xpZW50PXB3YSZ0aW1lc3RhbXA9Jyt0OyBcXFxcbi8vbG9nKGJvZHkpXFxcXG52YXIgdXJsMSA9ICdodHRwczovL2FwaTIucGlpZnZseS5jb20vYXBpLnBocC9hcGkvbXYvZ2V0RGV0YWlsJztcXFxcbnZhciB1cmwyID0gZmV0Y2godXJsMSwge1xcXFxuICAgIGhlYWRlcnM6IHtcXFxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcXFxcbiAgICB9LFxcXFxuICAgIGJvZHk6IGJvZHksXFxcXG4gICAgbWV0aG9kOiAnUE9TVCdcXFxcbn0pOyBcXFxcblxcXFxubGV0IHVybDMgPSBKU09OLnBhcnNlKHVybDIpLmRhdGE7IFxcXFxubGV0IHVybDQgPSBEZWNyeXB0KHVybDMpOyBcXFxcbmxldCB1cmw1PUpTT04ucGFyc2UodXJsNCkuZGF0YS5kZXRhaWwucHJldmlld191cmwucmVwbGFjZSgvXFxcXFxcXFwvXFxcXFxcXFwvLipwbGF5XFxcXFxcXFwuLywnLy9sb25nLicpO1xcXFxucmV0dXJuIHVybDVcXFxcbn0pXFxcXG5mdW5jdGlvbiBzdHJvbmcoZCwgYykge1xcXFxuICAgIHJldHVybiAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0jJyArIChjIHx8ICcwMDAwMDAnKSArICc+JyArIGQgKyAnPC9mb250Pjwvc3Ryb25nPic7XFxcXG59XFxcXG5mdW5jdGlvbiBDYXRlZ29yeShsaXN0LCBtb2RlLCBkKSB7XFxcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxcXG4gICAgICAgIHZhciBMaXN0ID0gbGlzdFtpXTtcXFxcbiAgICAgICAgdmFyIHRpdGxlID0gTGlzdC50aXRsZTtcXFxcbiAgICAgICAgdmFyIFRpdGxlID0gKGdldE15VmFyKCdjb2xvcicsICctMScpID09IGkpID8gc3Ryb25nKHRpdGxlLCAnRkY2Njk5JykgOiB0aXRsZTtcXFxcbiAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiBUaXRsZSxcXFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBtb2RlLCBMaXN0KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKG1vZGUgPT0gMCkge1xcXFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndHlwZScsIGlucHV0KTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT0gMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndHlwZVMnLCBpbnB1dCk7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RlID09IDIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGVTUycsIGlucHV0KTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NvbG9yJywgaSk7XFxcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcXFxuICAgICAgICAgICAgfSwgaSwgbW9kZSwgTGlzdCksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcXFxuICAgICAgICB9KTtcXFxcbiAgICB9XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgY29sX3R5cGU6ICdibGFua19ibG9jaycsXFxcXG4gICAgfSk7XFxcXG4gICAgcmV0dXJuIGQ7XFxcXG59XFxcXG4kLmV4cG9ydHMuQ2F0ZWdvcnkgPSBDYXRlZ29yeTtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLml7bpl7TmiLPovazmjaJcXFwiLFxcXCJwYXRoXFxcIjpcXFwi5pe26Ze05oiz6L2s5o2iXFxcIixcXFwicnVsZVxcXCI6XFxcImZ1bmN0aW9uIHRpbWVzdGFtcFRvVGltZSh0bSwgdHMpIHtcXFxcblxcXFx0XFxcXHR1bmRlZmluZWRcXFxcblxcXFx0XFxcXHR2YXIgZGF0ZSA9IG5ldyBEYXRlKHRtICogMTAwMCk7IC8v5pe26Ze05oiz5Li6MTDkvY3pnIAqMTAwMO+8jOaXtumXtOaIs+S4ujEz5L2N55qE6K+d5LiN6ZyA5LmYMTAwMFxcXFxuXFxcXHRcXFxcdHZhciBZID0gZGF0ZS5nZXRGdWxsWWVhcigpICsgJy0nO1xcXFxuXFxcXHRcXFxcdHZhciBNID0gKGRhdGUuZ2V0TW9udGgoKSArIDEgPCAxMCA/ICcwJyArIChkYXRlLmdldE1vbnRoKCkgKyAxKSA6IGRhdGUuZ2V0TW9udGgoKSArIDEpICsgJy0nO1xcXFxuXFxcXHRcXFxcdHZhciBEID0gZGF0ZS5nZXREYXRlKCk7XFxcXG5cXFxcdFxcXFx0dmFyIGggPSAnIHwgJyArIGRhdGUuZ2V0SG91cnMoKSArICc6JztcXFxcblxcXFx0XFxcXHR2YXIgbSA9IGRhdGUuZ2V0TWludXRlcygpO1xcXFxuXFxcXHRcXFxcdGlmKG08MTApIG0gPSAnMCcrbTtcXFxcblxcXFx0XFxcXHRtID0gbSArICc6J1xcXFxuXFxcXHRcXFxcdHZhciBzID0gZGF0ZS5nZXRTZWNvbmRzKCk7XFxcXG5cXFxcdFxcXFx0aWYoczwxMCkgcyA9ICcwJytzO1xcXFxuXFxcXHRcXFxcdGlmICh0cyA9PSAwKSByZXR1cm4gWSArIE0gKyBEO1xcXFxuXFxcXHRcXFxcdGlmICh0cyA9PSAxKSByZXR1cm4gWSArIE0gKyBEICsgaCArIG0gKyBzO1xcXFxuXFxcXHR9XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5LqM57qnXFxcIixcXFwicGF0aFxcXCI6XFxcImVyamlcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6IFxcXFxudmFyIGQgPSBbXTtcXFxcblxcXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxcXG5cXFxcbi8v55Sf5oiQ5pe26Ze05oizXFxcXG5mdW5jdGlvbiBnZXRDdXJyZW50VGltZXN0YW1wKCkge1xcXFxuICAgIHJldHVybiBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcXFxcbn1cXFxcbi8vbWQ15Yqg5a+GXFxcXG5mdW5jdGlvbiBtZDUoc3RyKSB7XFxcXG4gICAgcmV0dXJuIENyeXB0b0pTLk1ENShzdHIpLnRvU3RyaW5nKCk7XFxcXG59XFxcXG4vL3NoYTI1NuWKoOWvhlxcXFxuZnVuY3Rpb24gc2hhMjU2KHN0cikge1xcXFxuICAgIHJldHVybiBDcnlwdG9KUy5TSEEyNTYoc3RyKS50b1N0cmluZygpO1xcXFxufVxcXFxuXFxcXG52YXIgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApOyAvL2xvZyh0KVxcXFxubGV0IGlkPU1ZX1VSTC5zcGxpdCgnIyMnKVsyXTtcXFxcbmxldCBwPU1ZX1VSTC5zcGxpdCgnIyMnKVsxXTtcXFxcblxcXFxudmFyIHR5cGVsaXN0ID0gW3tcXFxcbiAgICB0aXRsZTogJ+acgOaWsCcsXFxcXG4gICAgdHlwZTogJ25ldydcXFxcbn0sIHtcXFxcbiAgICB0aXRsZTogJ+acgOeDrScsXFxcXG4gICAgdHlwZTogJ2hvdCdcXFxcbn1dO1xcXFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcXFxuICAgICQucmVxdWlyZShcXFxcXFxcImFlc1xcXFxcXFwiKS5DYXRlZ29yeSh0eXBlbGlzdCwwLGQpO1xcXFxufVxcXFxuXFxcXG5sZXQgZGF0YTA9J3tcXFxcXFxcImlkXFxcXFxcXCI6XFxcXFxcXCInK2lkKydcXFxcXFxcIixcXFxcXFxcImxpbWl0XFxcXFxcXCI6XFxcXFxcXCIzMFxcXFxcXFwiLFxcXFxcXFwicGFnZVxcXFxcXFwiOlxcXFxcXFwiJytwKydcXFxcXFxcIixcXFxcXFxcInNvcnRcXFxcXFxcIjpcXFxcXFxcIicrZ2V0TXlWYXIoJ3R5cGUnLCAnbmV3JykrJ1xcXFxcXFwiLFxcXFxcXFwib2F1dGhfaWRcXFxcXFxcIjpcXFxcXFxcImMyMDE0YmRhOTdjZmY0NWRlNTRiMWFiNDllMjI3ZjEzXFxcXFxcXCIsXFxcXFxcXCJidW5kbGVJZFxcXFxcXFwiOlxcXFxcXFwiY29tLnB3YS56cGNwalxcXFxcXFwiLFxcXFxcXFwidmVyc2lvblxcXFxcXFwiOlxcXFxcXFwiMy45LjBcXFxcXFxcIixcXFxcXFxcIm9hdXRoX3R5cGVcXFxcXFxcIjpcXFxcXFxcIndlYlxcXFxcXFwiLFxcXFxcXFwibGFuZ3VhZ2VcXFxcXFxcIjpcXFxcXFxcInpoXFxcXFxcXCIsXFxcXFxcXCJ2aWFcXFxcXFxcIjpcXFxcXFxcInB3YVxcXFxcXFwiLFxcXFxcXFwidG9rZW5cXFxcXFxcIjpcXFxcXFxcIlxcXFxcXFwifSdcXFxcbi8vbG9nKGRhdGEwKVxcXFxudmFyIGRhdGEgPSBFbmNyeXB0KGRhdGEwKTsgXFxcXG4vL2xvZyhkYXRhKVxcXFxudmFyIHNpZ24gPSBtZDUoc2hhMjU2KCdjbGllbnQ9cHdhJmRhdGE9JytkYXRhKycmdGltZXN0YW1wPScrdCsnNTU4OWQ0MWY5MmE1OTdkMDE2YjAzN2FjMzdkYjI0M2QnKSk7IC8vbG9nKHNpZ24pXFxcXG52YXIgYm9keSA9ICdkYXRhPScrZGF0YSsnJnNpZ249JytzaWduKycmY2xpZW50PXB3YSZ0aW1lc3RhbXA9Jyt0OyBcXFxcbi8vbG9nKGJvZHkpXFxcXG52YXIgdXJsID0gJ2h0dHBzOi8vYXBpMi5waWlmdmx5LmNvbS9hcGkucGhwL2FwaS9tdi9saXN0X2NvbnN0cnVjdCc7XFxcXG52YXIgaHRtbCA9IGZldGNoKHVybCwge1xcXFxuICAgIGhlYWRlcnM6IHtcXFxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcXFxcbiAgICB9LFxcXFxuICAgIGJvZHk6IGJvZHksXFxcXG4gICAgbWV0aG9kOiAnUE9TVCdcXFxcbn0pOyBcXFxcbi8vbG9nKGh0bWwpXFxcXG5cXFxcbmxldCBodG1sMSA9IEpTT04ucGFyc2UoaHRtbCkuZGF0YTsgXFxcXG4vL2xvZyhodG1sMSlcXFxcbmxldCBodG1sMiA9IERlY3J5cHQoaHRtbDEpOyBcXFxcbi8vbG9nKGh0bWwyKVxcXFxuXFxcXG52YXIgbGlzdCA9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGEubGlzdDtcXFxcbi8vbG9nKGxpc3QpO1xcXFxuaWYobGlzdCE9bnVsbCl7XFxcXG5saXN0LmZvckVhY2goZGF0YSA9PiB7XFxcXG4gICAgICAgIGlmKGRhdGEuY2xpY2tlZD09bnVsbCl7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXFxcbiAgICAgICAgICAgIGRlc2M6ICBkYXRhLmNyZWF0ZWRfYXQrJ1xcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdFxcXFxcXFxcdCcrcGFyc2VJbnQoZGF0YS5kdXJhdGlvbi82MCkrJzonK3BhcnNlSW50KGRhdGEuZHVyYXRpb24lNjApLFxcXFxuICAgICAgICAgICBpbWc6IGRhdGEuY292ZXJfaG9yaXpvbnRhbCArIGxhenksXFxcXG4gICAgICAgICAgIC8vIGltZzogZGF0YS5jb3Zlcl90aHVtYl91cmwgKyArICdAanM9JyArIGltZ0RlYyhrZXksIGl2LCAnQUVTJyksXFxcXG4gICAgICAgICAgICB1cmw6IGRhdGEuaWQgKyBsYXp5MVxcXFxuICAgICAgICB9KVxcXFxufVxcXFxuICAgIH0pXFxcXG59XFxcXG5zZXRSZXN1bHQoZClcXFwifV1cIn0iLCJ0aXRsZSI6IuWGheWwhOS4reWHuiJ9
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement