xiaomianao666

插件名:global_快猫-红杏-含羞草-麻豆-AvPron-皇家会所-9sex-91TV-猫咪-小天鹅-福利姬破解VIP视频免费看

Apr 25th, 2024
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:网页插件¥js_url¥global_快猫-红杏-含羞草-麻豆-AvPron-皇家会所-9sex-91TV-猫咪-小天鹅-福利姬破解VIP视频免费看@base64://Ly8gPT1Vc2VyU2NyaXB0PT0KLy8gQG5hbWUgICAgICAgICDlv6vnjKsv57qi5p2PL+WQq+e+nuiNiS/purvosYYvQXZQcm9uL+eah+WutuS8muaJgC85c2V4LzkxVFYv54yr5ZKqL+Wwj+Wkqem5hS/npo/liKnlp6znoLTop6NWSVDop4bpopHlhY3otLnnnIsKLy8gQG5hbWU6emgtVFcgICDlv6vospMv57SF5p2PL+WQq+e+nuiNiS/purvosYYvQXZQcm9uL+eah+Wutuacg+aJgC85c2V4LzkxVFYv6LKT5ZKqL+Wwj+Wkqem1nS/npo/liKnlp6znoLTop6NWSVDoppbpoLvlhY3osrvnnIsKLy8gQG5hbWVzcGFjZSAgICAxOHhfdmlwX3ZpZGVvX2ZyZWVfc2VlCi8vIEB2ZXJzaW9uICAgICAgMC40OQovLyBAZGVzY3JpcHRpb24gIOadpeS4jeWPiuino+mHiuS6hu+8jOW/q+S4iui9pu+8ge+8ge+8gQovLyBAZGVzY3JpcHRpb246emgtVFcgIOS+huS4jeWPiuino+mHi+S6hu+8jOW/q+S4iui7iu+8ge+8ge+8gQovLyBAYXV0aG9yICAgICAgIHcyZgoKLy8gQGluY2x1ZGUgICAgICAvXmh0dHBzOi8vKHd3d3xoNSkua21ra1xkK1wuY29tL3ZpZGVvQ29udGVudC8uKj8kLwoKLy8gQGluY2x1ZGUgICAgICAvXmh0dHBzOi8vd3d3Lmh4XHcrXC5jb20uKyQvCgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vKi5jb20vcGxheS92aWRlby8qCi8vIEBtYXRjaCAgICAgICAgaHR0cHM6Ly8qLmNvbS9zbWFsbFZpZGVvLyoKLy8gQGluY2x1ZGUgICAgICAvXjFodHRwKHMpPzpcL1wvKHd3d3xoNSlcLmZpMTFcdytcLmNvbVwvcGxheVwvdmlkZW8vCi8vIEBpbmNsdWRlICAgICAgL14xaHR0cChzKT86XC9cLyh3d3d8aDUpXC5cdytcLihjb218Y24pXC9wbGF5XC92aWRlby8KLy8gQGluY2x1ZGUgICAgICAvXjFodHRwKHMpPzpcL1wvKHd3d3xoNSlcLmZpMTFcdytcLmNvbVwvc21hbGxWaWRlb1wvLio/LwoKLy8gQG1hdGNoICAgICAgICBodHRwczovL21hZG91LmJldC8qCi8vIEBtYXRjaCAgICAgICAgaHR0cHM6Ly8qLmNvbS9pbmRleAovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vKi5jb20vbmV3Ci8vIEBtYXRjaCAgICAgICAgaHR0cHM6Ly8qLmNvbS9jaGFubmVsL3ZpZGVvTGlzdCoKLy8gQG1hdGNoICAgICAgICBodHRwczovLyouY29tL3RhZ3MqCi8vIEBtYXRjaCAgICAgICAgaHR0cHM6Ly8qLmNvbS9yYW5rTGlzdAovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vbWFkb3UudHYvKgoKLy8gQG1hdGNoICAgICAgICBodHRwczovL2Fma3YyOC5jb20vKgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vYWZrdjI5LmNvbS8qCi8vIEBtYXRjaCAgICAgICAgaHR0cHM6Ly9hZmt2MzAuY29tLyoKCi8vIEBtYXRjaCAgICAgICAgaHR0cHM6Ly8qL3ZpZGVvcy8qCgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vOXNleC5jb20vaW5kZXgvbW92aWUvcGxheS9pZC8qLmh0bWwKLy8gQG1hdGNoICAgICAgICBodHRwczovLyovaW5kZXgvbW92aWUvcGxheS9pZC8qCgovLyBAIDkxVFYKLy8gQG1hdGNoICAgICAgICBodHRwczovL2tkdDI5LmNvbS8qCi8vIEBtYXRjaCAgICAgICAgaHR0cHM6Ly9rcWNkODEuY29tLyoKLy8gQG1hdGNoICAgICAgICBodHRwczovL3V6ZXA0OS5jb20vKgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vdnV4dDMwLmNvbS8qCgovLyBAIOeMq+WSqgovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vKi92aXAvaW5kZXguaHRtbAovLyBAbWF0Y2ggICAgICAgIGh0dHBzOi8vKi92aXAvbGlzdC0qLmh0bWwKLy8gQG1hdGNoICAgICAgICBodHRwczovLyovaW5kZXgvaG9tZS5odG1sCi8vIEBpbmNsdWRlICAgICAgL2h0dHBzOlwvXC93d3dcLihcdyspXC5jb21cL3BhZ2VcL3ZpcC8KCi8vIEBpbmNsdWRlICAgICAgL15odHRwczpcL1wvKC4qKVwueHl6XC8ocGN8aDUpXC9pbmRleFwuaHRtbC8KCi8vIEBtYXRjaCAgICAgICBodHRwczovL2FsbHR2MjY4LmNvbS8qCi8vIEBpbmNsdWRlICAgICAgL15odHRwczovL2FsbHR2XHcrXC5jb20uKiQvCgovLyBAaWNvbiAgICAgICAgIGh0dHBzOi8vc3kzd21oLnh5ei9wYy9mYXZpY29uLmljbwovLyBAbGljZW5zZSAgICAgIE1JVAovLyBAZ3JhbnQgICAgICAgIG5vbmUKLy8gQHJlcXVpcmUgICAgICBodHRwczovL2dyZWFzeWZvcmsub3JnL3NjcmlwdHMvNDc2NzMwLWFqYXhob29rZXItMi9jb2RlL2FqYXhIb29rZXJfMi5qcz92ZXJzaW9uPTEyNTk5NzkKLy8gQHJ1bi1hdCAgICAgICBkb2N1bWVudC1ib2R5Ci8vIEBkb3dubG9hZFVSTCBodHRwczovL3VwZGF0ZS5zbGVhenlmb3JrLm9yZy9zY3JpcHRzLzQ1NjQ5Ni8lRTUlQkYlQUIlRTclOEMlQUIlRTclQkElQTIlRTYlOUQlOEYlRTUlOTAlQUIlRTclQkUlOUUlRTglOEQlODklRTklQkElQkIlRTglQjElODZBdlByb24lRTclOUElODclRTUlQUUlQjYlRTQlQkMlOUElRTYlODklODA5c2V4OTFUViVFNyU4QyVBQiVFNSU5MiVBQSVFNSVCMCU4RiVFNSVBNCVBOSVFOSVCOSU4NSVFNyVBNiU4RiVFNSU4OCVBOSVFNSVBNyVBQyVFNyVBMCVCNCVFOCVBNyVBM1ZJUCVFOCVBNyU4NiVFOSVBMiU5MSVFNSU4NSU4RCVFOCVCNCVCOSVFNyU5QyU4Qi51c2VyLmpzCi8vIEB1cGRhdGVVUkwgaHR0cHM6Ly91cGRhdGUuc2xlYXp5Zm9yay5vcmcvc2NyaXB0cy80NTY0OTYvJUU1JUJGJUFCJUU3JThDJUFCJUU3JUJBJUEyJUU2JTlEJThGJUU1JTkwJUFCJUU3JUJFJTlFJUU4JThEJTg5JUU5JUJBJUJCJUU4JUIxJTg2QXZQcm9uJUU3JTlBJTg3JUU1JUFFJUI2JUU0JUJDJTlBJUU2JTg5JTgwOXNleDkxVFYlRTclOEMlQUIlRTUlOTIlQUElRTUlQjAlOEYlRTUlQTQlQTklRTklQjklODUlRTclQTYlOEYlRTUlODglQTklRTUlQTclQUMlRTclQTAlQjQlRTglQTclQTNWSVAlRTglQTclODYlRTklQTIlOTElRTUlODUlOEQlRTglQjQlQjklRTclOUMlOEIubWV0YS5qcwovLyA9PS9Vc2VyU2NyaXB0PT0KCihmdW5jdGlvbiAoKSB7CiAgICAndXNlIHN0cmljdCc7CgogICAgLyogbm9uZSDlpoLmnpzkuI3kvb/nlKggdW5zYWZlV2luZG93IO+8jOW/q+eMq+aJi+acuuerr++8jOWQq+e+nuiNiXBj56uv5Lya5pKt5pS+5aSx6LSl77yM5Y6f5Zug5pyq55+l44CCCiAgICDljp/lm6DvvJrpgJrov4cgQHJlcXVpcmUg5Yqg6L2955qEaGxz5o+Q56S65om+5LiN5Yiw77yM6YCa6L+HaW1wb3J0X2pz5a+85YWlb2sgKi8KICAgIGxldCBlcnJfY250ID0gMDsKCiAgICBmdW5jdGlvbiBpbXBvcnRfanMoc3JjKSB7CiAgICAgICAgbGV0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7CiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgfQogICAgaW1wb3J0X2pzKCJodHRwczovL2Nkbi5zdGF0aWNmaWxlLm9yZy9qcXVlcnkvMS4xMC4yL2pxdWVyeS5taW4uanMiKTsKICAgIGltcG9ydF9qcygiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaGxzLmpzLzEuMS41L2hscy5taW4uanMiKTsKICAgIGxldCBub3RfbmVlZF9kcGxheWVyID0gbG9jYXRpb24uaHJlZi5tYXRjaCgiaHR0cHM6Ly90aGVhdi4qPy5jb20vdmlkZW9zLyIpICE9IG51bGwgfHwgLy9hdnBvcm4KICAgICAgICBsb2NhdGlvbi5ocmVmLm1hdGNoKCJodHRwczovL3RoZS4qPy5mdW4vdmlkZW9zLyIpICE9IG51bGwgfHwgLy8KICAgICAgICBsb2NhdGlvbi5ocmVmLm1hdGNoKCIvcGxheS92aWRlby8iKSAhPSBudWxsOy8v5ZCr576e6I2J5LiN5YaN6ZyA6KaB5Yqg6L29ZHBsYXllcgoKICAgIGlmICghbm90X25lZWRfZHBsYXllcikgewogICAgICAgIGltcG9ydF9qcygiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvZHBsYXllci8xLjI2LjAvRFBsYXllci5taW4uanMiKTsKICAgIH0KCgogICAgYWpheEhvb2tlci5wcm90ZWN0KCk7CiAgICBhamF4SG9va2VyLmZpbHRlcihbCiAgICAgICAge3R5cGU6ICd4aHInLCB1cmw6ICcvdmlkZW9zL2dldFByZVVybCcsIG1ldGhvZDogJ1BPU1QnLCBhc3luYzogdHJ1ZX0sLy/lkKvnvp7ojYnpooTop4gKICAgIF0pOwogICAgYWpheEhvb2tlci5ob29rKHJlcXVlc3QgPT4gewogICAgICAgIGlmIChyZXF1ZXN0LnVybC5pbmRleE9mKCcvdmlkZW9zL2dldFByZVVybCcpID4gLTEgKSB7CiAgICAgICAgICAgIHJlcXVlc3QucmVzcG9uc2UgPSBhc3luYyByZXMgPT4gewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coImhvb2tlZCEhISByZXNwb25zZVRleHQgPT09PT4iLEpTT04ucGFyc2UocmVzLnJlc3BvbnNlVGV4dCkpOwogICAgICAgICAgICAgICAgcmVzLnJlc3BvbnNlVGV4dCA9IGF3YWl0IG1vZGlmeVJlc3BvbnNlKHJlcy5yZXNwb25zZVRleHQpOwogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0pOwoKICAgIGFzeW5jIGZ1bmN0aW9uIG1vZGlmeVJlc3BvbnNlKHJlc3BvbnNlVGV4dCl7CiAgICAgICAgbGV0IHJzcGpzb24gPSBhd2FpdCBKU09OLnBhcnNlKHJlc3BvbnNlVGV4dCk7CiAgICAgICAgcnNwanNvbi5kYXRhLnVybCA9IHJzcGpzb24uZGF0YS51cmwucmVwbGFjZSgvc3RhcnQ9XGQrXCZlbmQ9XGQrXCYvLCIiKTsKICAgICAgICBjb25zb2xlLmxvZygiZml4ZWQgdXJsPT09PT4iLHJzcGpzb24uZGF0YS51cmwpOwogICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJyZWFsX3ZpZGVvX3VybCIsIHJzcGpzb24uZGF0YS51cmwpOwogICAgICAgIHJldHVybiBhd2FpdCBKU09OLnN0cmluZ2lmeShyc3Bqc29uKTsKICAgIH0KCiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygpOwogICAgbGV0IG1pbiA9IG5ldyBEYXRlKCkuZ2V0TWludXRlcygpOwogICAgbGV0IGNoYXQgPSBg6ISa5pys5YWN6LS577yM5pu05paw57u05oqk5LiN5piT77yM6Iul6ISa5pys5pyJ5biu5Yqp5Yiw5L2g77yM6K+36ZqP57yY5omT6LWP4pqh77yM5oSf6LCi5pSv5oyB77yBYDsKICAgIGZ1bmN0aW9uIHNob3dfc3VwcG9ydF9hdXRob3IoKSB7CiAgICAgICAgdmFyIHNlY29uZHNMZWZ0ID0gMTA7CiAgICAgICAgdmFyIG15ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgbXlkaXYuaW5uZXJIVE1MID0gYDxkaXYgaWQ9Im15X2FkZF9kaXZfc3VwcG9ydF9hdXRob3IiIHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7ei1pbmRleDogMTAwMDA7dG9wOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO2JhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC44KTsiPgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiA1MCU7bGVmdDogNTAlO3RyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO21heC13aWR0aDogOTAlO21heC1oZWlnaHQ6IDkwJTsiPgogICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4Ij4ke2NoYXR977yIJHtzZWNvbmRzTGVmdH1z5ZCO6Ieq5Yqo5YWz6Zet77yJPC9wPgogICAgICAgICAgICA8L2Rpdj48L2Rpdj5gOwogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImhlYWQiKS5hZnRlcihteWRpdik7CgogICAgICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzZWNvbmRzTGVmdC0tOwogICAgICAgICAgICB2YXIgeHh4ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI215X2FkZF9kaXZfc3VwcG9ydF9hdXRob3IgcCIpO2lmKHh4eCkgeHh4LmlubmVyVGV4dCA9IGAke2NoYXR977yIJHtzZWNvbmRzTGVmdH1z5ZCO6Ieq5Yqo5YWz6ZetKWA7CiAgICAgICAgICAgIGlmIChzZWNvbmRzTGVmdCA8PSAwKSB7CiAgICAgICAgICAgICAgICB2YXIgeXl5ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI215X2FkZF9kaXZfc3VwcG9ydF9hdXRob3IiKTsgaWYoeXl5KSB5eXkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh5eXkpOwogICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LCAxMDAwKTsKICAgIH0KCiAgICAvKiDlh73mlbDlip/og73vvJrmmL7npLrop4bpopHlnLDlnYDvvIzlj4rmj5DnpLrkv6Hmga8uIOWPguaVsOivtOaYju+8mnZpZGVvVXJs77ya6KeG6aKR5Zyw5Z2AICBkaXpoaTog5Zyw5Z2A5pi+56S65L2N572uICBmbGFnOuaYr+WQpuW8uuWItuWIt+aWsCAqLwogICAgZnVuY3Rpb24gc2hvd192aWRlb1VybCh2aWRlb1VybCxkaXpoaSwgZmxhZyA9IDApIHsKICAgICAgICB2YXIgeHh4ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI215X2FkZF9kaXpoaSIpOwogICAgICAgIGlmKGZsYWc9PTAgJiYgeHh4KXsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICAgIGlmICh4eHgpIHh4eC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHh4eCk7CiAgICAgICAgdmFyIG15ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgbXlkaXYuaW5uZXJIVE1MID0gYDxkaXYgaWQ9Im15X2FkZF9kaXpoaSIgc3R5bGU9ImNvbG9yOnJlZDtmb250LXNpemU6MTRweDt3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7d29yZC1icmVhazogYnJlYWstYWxsOyI+CiAgICAgICAgICAgIDxwIHN0eWxlPSIiPuinhumikeWcsOWdgO+8mjxhIGhyZWY9IiR7dmlkZW9Vcmx9IiB0YXJnZXQ9Il9ibGFuayI+JHt2aWRlb1VybH08L2E+PC9wPgogICAgICAgICAgICA8cCBzdHlsZT0iIj7pl67popjlj43ppoggb3Ig5pSv5oyB5L2c6ICF6K+3PGEgaHJlZj0iaHR0cHM6Ly9zbGVhenlmb3JrLm9yZy96aC1DTi9zY3JpcHRzLzQ1NjQ5NiIgdGFyZ2V0PSJfYmxhbmsiPuOAkOeCueWHu+atpOWkhOOAkTwvYT7vvIzkvb/nlKjmhInlv6vvvIE8L3A+CiAgICAgICAgICAgIDwvZGl2PmA7CiAgICAgICAgZGl6aGk/LmFmdGVyKG15ZGl2KTsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAvKiDlh73mlbDlip/og73vvJrliqDovb1EcGxheWVy5pKt5pS+6KeG6aKR44CCIOWPguaVsOivtOaYju+8mnZpZGVvVXJs77ya6KeG6aKR5Zyw5Z2AIGVs77ya5pKt5pS+5Zmo5Yqg6L295L2N572uIGRpemhpOiDlnLDlnYDmmL7npLrkvY3nva4gIGZsYWc65piv5ZCm5by65Yi25Yi35pawICovCiAgICBmdW5jdGlvbiBwbGF5X3ZpZGVvKHZpZGVvVXJsLCBlbCwgZGl6aGksIGZsYWcgPSAwKSB7CgogICAgICAgIGlmICghdmlkZW9VcmwgfHwgIWVsIHx8ICFkaXpoaSkgdGhyb3cgbmV3IEVycm9yKGDpg6jliIblj4LmlbDml6DmlYjvvIzop4bpopHlnLDlnYDvvJoke3ZpZGVvVXJsfeOAgeaSreaUvuWZqOS9jee9ru+8miR7ZWx944CB5o+Q56S65L2N572u77yaJHtkaXpoaX1gKTsKCiAgICAgICAgbGV0IHJldCA9IHNob3dfdmlkZW9VcmwodmlkZW9VcmwsZGl6aGksZmxhZyk7CiAgICAgICAgaWYocmV0ID09IDApewogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CgogICAgICAgIGlmICh3aW5kb3cuZHApIHsKICAgICAgICAgICAgd2luZG93LmRwLnBhdXNlKCkKICAgICAgICAgICAgd2luZG93LmRwLmRlc3Ryb3koKQogICAgICAgICAgICB3aW5kb3cuZHAgPSBudWxsOwogICAgICAgIH0KCiAgICAgICAgLyogMi4g5paw5aKe5pKt5pS+5ZmoICovCiAgICAgICAgd2luZG93LmRwID0gbmV3IERQbGF5ZXIoewogICAgICAgICAgICBlbGVtZW50OiBlbCwKICAgICAgICAgICAgYXV0b3BsYXk6IHRydWUsCiAgICAgICAgICAgIHRoZW1lOiAnI0ZBREZBMycsCiAgICAgICAgICAgIGxvb3A6IHRydWUsCiAgICAgICAgICAgIGxhbmc6ICd6aCcsCiAgICAgICAgICAgIHNjcmVlbnNob3Q6IHRydWUsCiAgICAgICAgICAgIGhvdGtleTogdHJ1ZSwKICAgICAgICAgICAgcHJlbG9hZDogJ2F1dG8nLAogICAgICAgICAgICB2aWRlbzogewogICAgICAgICAgICAgICAgdXJsOiB2aWRlb1VybCwKICAgICAgICAgICAgICAgIHR5cGU6ICdobHMnCiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLyogMy4g6K6+572u5pKt5pS+5Zmo5rWu5Yqo5pi+56S6LOW5tua3u+WKoOS4gOS4quWFt+acieS4iui+uei3neeahOWFhOW8n2RpdumBv+WFjeimhuebluS4i+mdoueahOWGheWuuSAqLwogICAgICAgIC8vZWwuY2xhc3NMaXN0LmFkZCgibXlfYWRkX2hlYWRlciIpOwogICAgICAgIC8vZWwuc3R5bGUgKz0gInotaW5kZXg6IDk5OTt0b3A6IDA7IjsKICAgICAgICBlbC5zdHlsZS5wb3NpdGlvbiA9ICdzdGlja3knOwogICAgICAgIGVsLnN0eWxlLnpJbmRleCA9ICc5OTknOwogICAgICAgIGVsLnN0eWxlLnRvcCA9ICcwJzsKICAgICAgICB2YXIgeHh4ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI215X2FkZF9zaWJsaW5nIik7CiAgICAgICAgaWYoIXh4eCl7CiAgICAgICAgICAgIHZhciBzaWJsaW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIHNpYmxpbmcuaWQgPSAibXlfYWRkX3NpYmxpbmciOwogICAgICAgICAgICAvL3NpYmxpbmcuc3R5bGUubWFyZ2luVG9wID0gZWwub2Zmc2V0SGVpZ2h0ICsgJ3B4JzsgLy8g6K6+572u5YWE5byf5YWD57Sg55qE6aG26YOo6L656LedCiAgICAgICAgICAgIGVsLmFmdGVyKHNpYmxpbmcpOwogICAgICAgIH0KICAgIH0KCiAgICAvKiDlh73mlbDlip/og73vvJrlkIzkuIrvvIzlj6/liIfmjaLmuIXmmbDluqYgICovCiAgICBmdW5jdGlvbiBwbGF5X3ZpZGVvMih2aWRlb1VybCwgdmlkZW9VcmwyLCB2aWRlb1VybDMsIHZpZGVvVXJsNCwgZWwsIGRpemhpKSB7CiAgICAgICAgLyogMS4g5pi+56S65Zyw5Z2AICovCiAgICAgICAgdmFyIG15ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgbXlkaXYuaW5uZXJIVE1MID0gYDxkaXYgaWQ9Im15X2FkZF9kaXpoaSIgc3R5bGU9ImNvbG9yOnJlZDtmb250LXNpemU6MTRweCI+5rOo5oSP77ya6YOo5YiG6KeG6aKR5Y+qMzYwUO+8jOWIh+aNouWQjuaXoOazleaSreaUvuivtOaYjuS4jeWtmOWcqOmrmOa4heaZsOW6pueJiOacrO+8ge+8ge+8geinhumikeWcsOWdgO+8mgogICAgICAgIDxwIHN0eWxlPSJjb2xvcjpyZWQ7Zm9udC1zaXplOjE0cHg7d29yZC13cmFwOiBicmVhay13b3JkO3dvcmQtYnJlYWs6IGJyZWFrLWFsbDsiPjM2MFDvvJo8YSBocmVmPSIke3ZpZGVvVXJsfSIgdGFyZ2V0PSJfYmxhbmsiPiR7dmlkZW9Vcmx9PC9hPjwvcD4KICAgICAgICA8cCBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4O3dvcmQtd3JhcDogYnJlYWstd29yZDt3b3JkLWJyZWFrOiBicmVhay1hbGw7Ij40ODBQ77yaPGEgaHJlZj0iJHt2aWRlb1VybDJ9IiB0YXJnZXQ9Il9ibGFuayI+JHt2aWRlb1VybDJ9PC9hPjwvcD4KICAgICAgICA8cCBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4O3dvcmQtd3JhcDogYnJlYWstd29yZDt3b3JkLWJyZWFrOiBicmVhay1hbGw7Ij43MjBQ77yaPGEgaHJlZj0iJHt2aWRlb1VybDN9IiB0YXJnZXQ9Il9ibGFuayI+JHt2aWRlb1VybDN9PC9hPjwvcD4KICAgICAgICA8cCBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4O3dvcmQtd3JhcDogYnJlYWstd29yZDt3b3JkLWJyZWFrOiBicmVhay1hbGw7Ij4xMDgwUO+8mjxhIGhyZWY9IiR7dmlkZW9Vcmw0fSIgdGFyZ2V0PSJfYmxhbmsiPiR7dmlkZW9Vcmw0fTwvYT48L3A+CiAgICAgICAgPHAgc3R5bGU9ImNvbG9yOnJlZDtmb250LXNpemU6MTRweCI+6Zeu6aKY5Y+N6aaIIG9yIOaUr+aMgeS9nOiAheivtzxhIGhyZWY9Imh0dHBzOi8vc2xlYXp5Zm9yay5vcmcvemgtQ04vc2NyaXB0cy80NTY0OTYiIHRhcmdldD0iX2JsYW5rIj7jgJDngrnlh7vmraTlpITjgJE8L2E+77yM5L2/55So5oSJ5b+r77yBPC9wPgogICAgICAgIDwvZGl2PmA7CiAgICAgICAgZGl6aGkgJiYgZGl6aGkuYWZ0ZXIobXlkaXYpOwoKICAgICAgICAvKiAyLiDmlrDlop7mkq3mlL7lmaggKi8KICAgICAgICB3aW5kb3cuZHAgPSBuZXcgRFBsYXllcih7CiAgICAgICAgICAgIGVsZW1lbnQ6IGVsLAogICAgICAgICAgICBhdXRvcGxheTogdHJ1ZSwKICAgICAgICAgICAgdGhlbWU6ICcjRkFERkEzJywKICAgICAgICAgICAgbG9vcDogdHJ1ZSwKICAgICAgICAgICAgbGFuZzogJ3poJywKICAgICAgICAgICAgc2NyZWVuc2hvdDogdHJ1ZSwKICAgICAgICAgICAgaG90a2V5OiB0cnVlLAogICAgICAgICAgICBwcmVsb2FkOiAnYXV0bycsCiAgICAgICAgICAgIHZpZGVvOiB7CiAgICAgICAgICAgICAgICBxdWFsaXR5OiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnMzYwUCcsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdmlkZW9VcmwsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdobHMnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnNDgwUCcsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdmlkZW9VcmwyLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaGxzJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJzcyMFAnLAogICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHZpZGVvVXJsMywKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2hscycsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICcxMDgwUCcsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdmlkZW9Vcmw0LAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaGxzJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGRlZmF1bHRRdWFsaXR5OiAwLAogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9CgogICAgLyog5Ye95pWw5Yqf6IO977ya5Zyo55WM6Z2i5LiK5pi+56S656iL5bqP6ZSZ6K+v77yM5L6/5LqO5YiG5p6QICAqLwogICAgZnVuY3Rpb24gc2hvd19lcnJfbG9nKGVycikgewogICAgICAgIGVyciAmJiBjb25zb2xlLmxvZyhlcnIpOwogICAgICAgIGVycl9jbnQrKzsKICAgICAgICBpZiAoZXJyX2NudCA9PSAxMCkgewogICAgICAgICAgICAvL2Vycl9jbnQgPSAwOwogICAgICAgICAgICB2YXIgbXlkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgbXlkaXYuaW5uZXJIVE1MID0gYDxkaXYgaWQ9Im15X2FkZF9lcnJfbG9nIiBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4Ij4KICAgICAgICAgICAg6Kej5p6Q5Ye66ZSZ77yMMS7mo4Dmn6XmmK/lkKbnmbvlvZXvvIEyLuivt+S7lOe7humYheivuzxhIGhyZWY9Imh0dHBzOi8vc2xlYXp5Zm9yay5vcmcvemgtQ04vc2NyaXB0cy80NTY0OTYiIHRhcmdldD0iX2JsYW5rIj7jgJDohJrmnKzor7TmmI7jgJE8L2E+5p+l55yL5piv5ZCm5pSv5oyB5L2g55qE5bmz5Y+w57uE5ZCI77yMCiAgICAgICAgICAgIOWmgumcgOW4ruWKqeivt+WkjeWItuS7peS4i+WGheWuueWIsOiEmuacrOivhOiuuuWMuu+8jOetieWAmeS9nOiAheWkhOeQhiEg6K+35Yqg5LiK5L2/55So55qE5bmz5Y+w57uE5ZCI77yM5aaC77yaY2hyb21lICsgdGFtcGVybW9ua2V5IOOAggogICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4Ij7plJnor6/kv6Hmga/vvJoke2VyciB8fCAi5bCd6K+V5aSa5qyh5LuN54S25pyq6I635Y+W5Yiw5Zyw5Z2ALOWPr+iDveaYr+e9keermeW3suabtOaWsC4uLiJ9PC9wPgogICAgICAgICAgICA8cCBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4Ij7mk43kvZzns7vnu5/vvJoke25hdmlnYXRvci5wbGF0Zm9ybX08L3A+CiAgICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjpyZWQ7Zm9udC1zaXplOjE0cHgiPua1j+iniOWZqO+8miR7bmF2aWdhdG9yLnVzZXJBZ2VudH08L3A+CiAgICAgICAgICAgIDxwIHN0eWxlPSJjb2xvcjpyZWQ7Zm9udC1zaXplOjE0cHgiPuW9k+WJjeWcsOWdgO+8miR7bG9jYXRpb24uaHJlZn08L3A+CiAgICAgICAgICAgIDwvZGl2PmA7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImhlYWQiKS5hZnRlcihteWRpdik7CiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwobXlfdGltZXIpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBkb19sb2dpbigpewogICAgICAgIGxldCBwaG9uZSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21vdmUtY2xpZW50LXVzZXItaW5mbycpKT8udXNlcj8udXNlcl9pbmZvPy5waG9uZTsKICAgICAgICBsZXQgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpOwogICAgICAgICAgICBldmVudC5pbml0RXZlbnQoImlucHV0IiwgdHJ1ZSwgdHJ1ZSk7CiAgICAgICAgaWYocGhvbmUpewogICAgICAgICAgICAvKiDoh6rliqjnmbvlvZUgKi8KICAgICAgICAgICAgbGV0IGFjY291bnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dC52YW4tZmllbGRfX2NvbnRyb2wnKVswXTsKICAgICAgICAgICAgYWNjb3VudC52YWx1ZSA9IHBob25lOwogICAgICAgICAgICBhY2NvdW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAgICAgICAgICBsZXQgcGFzc3dvcmQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dC52YW4tZmllbGRfX2NvbnRyb2wnKVsxXTsKICAgICAgICAgICAgcGFzc3dvcmQudmFsdWUgPSAiMTIzNDU2IjsKICAgICAgICAgICAgcGFzc3dvcmQuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvblt0eXBlPXN1Ym1pdF0nKS5jbGljaygpOwogICAgICAgIH1lbHNlewogICAgICAgICAgICAvKiDoh6rliqjms6jlhowgKi8KICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2LmxvZ2luXzFfMl8xJyk/LmNsaWNrKCk7CiAgICAgICAgICAgIGxldCBhY2NvdW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQudmFuLWZpZWxkX19jb250cm9sJylbMF07CiAgICAgICAgICAgIGFjY291bnQudmFsdWUgPSBbIjEzMCIsICIxMzEiLCAiMTMyIiwgIjEzMyIsICIxMzUiLCAiMTM3IiwgIjEzOCIsICIxNzAiLCAiMTg3IiwgIjE4OSJdWyBNYXRoLmZsb29yKDEwICogTWF0aC5yYW5kb20oKSldICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMDAwKTsKICAgICAgICAgICAgYWNjb3VudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAgICAgICAgbGV0IHBhc3N3b3JkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQudmFuLWZpZWxkX19jb250cm9sJylbMV07CiAgICAgICAgICAgIHBhc3N3b3JkLnZhbHVlID0gIjEyMzQ1NiI7CiAgICAgICAgICAgIHBhc3N3b3JkLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAgICAgICAgICBsZXQgcGFzc3dvcmQyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQudmFuLWZpZWxkX19jb250cm9sJylbMl07CiAgICAgICAgICAgIHBhc3N3b3JkMi52YWx1ZSA9ICIxMjM0NTYiOwogICAgICAgICAgICBwYXNzd29yZDIuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvblt0eXBlPXN1Ym1pdF0nKS5jbGljaygpOwogICAgICAgIH0KICAgIH0KCiAgICBsZXQgZmxhZyA9IDA7CiAgICBsZXQgbGFzdF92aWRlb1VybCA9IG51bGw7CiAgICBmdW5jdGlvbiBnZXRfdmlkZW91cmwoKSB7CiAgICAgICAgbGV0IHZpZGVvVXJsID0gbnVsbCwgdmlkZW9VcmwyID0gbnVsbCwgdmlkZW9VcmwzID0gbnVsbCwgdmlkZW9Vcmw0ID0gbnVsbDsKICAgICAgICBsZXQgZWwgPSBudWxsOwogICAgICAgIGxldCBkaXpoaSA9IG51bGw7CiAgICAgICAgbGV0IHBsYXllciA9IG51bGw7CiAgICAgICAgbGV0IHNoaWthbiA9IG51bGw7CiAgICAgICAgbGV0IGFkcyA9IG51bGw7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKCFub3RfbmVlZF9kcGxheWVyICYmIHR5cGVvZihEUGxheWVyKSE9ICdmdW5jdGlvbicgKSB7CiAgICAgICAgICAgICAgICAvKiBEUGxheWVy6L+Y5pyq5Yqg6L295a6M5q+V5pe25bCx6Kej5p6Q5a6M6KeG6aKR5Zyw5Z2A77yM5Lya5a+86Ie05pKt5pS+5pe25oql6ZSZUmVmZXJlbmNlRXJyb3I6IERQbGF5ZXIgaXMgbm90IGRlZmluZWQgKi8KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCLmraPlnKjliqDovb1EUGxheWVyLi4uIik7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLyog54yr5ZKqdmlwICovCiAgICAgICAgICAgIGVsc2UgaWYgKGxvY2F0aW9uLmhyZWYubWF0Y2goL2h0dHBzOlwvXC93d3dcLihcdyspXC5jb21cL3BhZ2VcL3ZpcC8pICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHZhciBub2RlbGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRpdi5jb250ZW50LWl0ZW0iKTsKICAgICAgICAgICAgICAgIG5vZGVsaXN0Py5mb3JFYWNoKAogICAgICAgICAgICAgICAgICAgIChpdGVtLGlkeCxhcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHh4eCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCNteV9hZGRfZGl6aGkke2lkeH1gKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHh4eCkgeyB4eHgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh4eHgpOyB9CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb3VybCA9IGl0ZW0ucXVlcnlTZWxlY3RvcigiYS52aWRlby1waWMiKT8uaHJlZj8ucmVwbGFjZSgiL3ZpcC9wbGF5LSIsIi9zaGlwaW4vZGV0YWlsLSIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlkZW91cmwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBteWRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlkaXYuaW5uZXJIVE1MID0gYDxkaXYgaWQ9Im15X2FkZF9kaXpoaSR7aWR4fSIgc3R5bGU9ImNvbG9yOnJlZDtmb250LXNpemU6MTRweDt3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7d29yZC1icmVhazogYnJlYWstYWxsOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YSBocmVmPSIke3ZpZGVvdXJsfSIgdGFyZ2V0PSJfYmxhbmsiPuKclOeCueatpOiuv+mXrjwvYT48L3A+PC9kaXY+YDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uYWZ0ZXIobXlkaXYpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coIlvnjKvlkqpd6KeG6aKR6aG16Z2i77yM5pyq6I635Y+W5Yiw5Zyw5Z2A77yM57un57ut5bCd6K+VLi4uIik7CiAgICAgICAgICAgICAgICAvL+WIh+aNouS4i+S4gOmhtee9keWdgOS4jeWPmO+8jOaXoOazleWIt+aWsO+8jOaVheS4jeiDveWBnOatouWumuaXtuWZqAogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIOW/q+eMq2FwcCBwYyDvvIh2aXDnsr7pgIllcnIs5YW25LuWb2vvvIkKICAgICAgICAgICAgZWxzZSBpZiAobG9jYXRpb24uaHJlZi5tYXRjaCgiaHR0cHM6Ly8uKj8ueHl6L3BjL2luZGV4Lmh0bWwqIikgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgdmFyIG5vZGVsaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI2FwcCBkaXYuYm94IGRpdi52aWRlb19pbWciKTsKICAgICAgICAgICAgICAgIG5vZGVsaXN0Py5mb3JFYWNoKAogICAgICAgICAgICAgICAgICAgIChpdGVtLGlkeCxhcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHh4eCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCNteV9hZGRfZGl6aGkke2lkeH1gKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHh4eCkgeyB4eHgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh4eHgpOyB9CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb3VybCA9IGl0ZW0ucXVlcnlTZWxlY3RvcigiZGl2ID4gaW1nIik/LnNyYz8uc3BsaXQoJ2NvdmVyJylbMl0/LnNwbGl0KCcuJylbMF07CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aWRlb3VybCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG15ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteWRpdi5pbm5lckhUTUwgPSBgPGRpdiBpZD0ibXlfYWRkX2RpemhpJHtpZHh9IiBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4O3dvcmQtd3JhcDogYnJlYWstd29yZDt3b3JkLWJyZWFrOiBicmVhay1hbGw7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxhIGhyZWY9Imh0dHBzOi8vZ2hiZGZnYjM3NjlkZmRhLnpydHh0NjQzdzQueHl6L3VwbG9hZHMvdmlkZW8ke3ZpZGVvdXJsfV93bS5tcDQvaW5kZXgubTN1OCIgdGFyZ2V0PSJfYmxhbmsiPuKclOeCueatpOiuv+mXrjwvYT48L3A+PC9kaXY+YDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uYWZ0ZXIobXlkaXYpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIC8v5YiH5o2i5LiL5LiA6aG1572R5Z2A5LiN5Y+Y77yM5peg5rOV5Yi35paw77yM5pWF5LiN6IO95YGc5q2i5a6a5pe25ZmoCiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8g5b+r54yrYXBwIGg1ICjlhajpg6hvaykKICAgICAgICAgICAgZWxzZSBpZiAobG9jYXRpb24uaHJlZi5tYXRjaCgiaHR0cHM6Ly8uKj8ueHl6L2g1L2luZGV4Lmh0bWwqIikgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgbm9kZWxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuaW1nYm94IGRpdiBkaXYudnVlLXdhdGVyZmFsbC1jb2x1bW4+ZGl2Iik7CiAgICAgICAgICAgICAgICBub2RlbGlzdD8uZm9yRWFjaCgKICAgICAgICAgICAgICAgICAgICAoaXRlbSxpZHgsYXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB4eHggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjbXlfYWRkX2RpemhpJHtpZHh9YCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4eHgpIHsgeHh4LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoeHh4KTsgfQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW91cmwgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoImltZyIpPy5zcmM/LnNwbGl0KCdjb3ZlcicpWzJdPy5zcGxpdCgnLicpWzBdOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlkZW91cmwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBteWRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlkaXYuaW5uZXJIVE1MID0gYDxkaXYgaWQ9Im15X2FkZF9kaXpoaSR7aWR4fSIgc3R5bGU9ImNvbG9yOnJlZDtmb250LXNpemU6MTRweDt3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7d29yZC1icmVhazogYnJlYWstYWxsOyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48YSBocmVmPSJodHRwczovL2doYmRmZ2IzNzY5ZGZkYS56cnR4dDY0M3c0Lnh5ei91cGxvYWRzL3ZpZGVvJHt2aWRlb3VybH1fd20ubXA0L2luZGV4Lm0zdTgiIHRhcmdldD0iX2JsYW5rIj7inJTngrnmraTorr/pl648L2E+PC9wPjwvZGl2PmA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmFmdGVyKG15ZGl2KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAvL+WIh+aNouS4i+S4gOmhtee9keWdgOS4jeWPmO+8jOaXoOazleWIt+aWsO+8jOaVheS4jeiDveWBnOatouWumuaXtuWZqAogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGFsbCBhdiAvL3RvZG8KICAgICAgICAgICAgZWxzZSBpZiAobG9jYXRpb24uaHJlZi5tYXRjaCgiaHR0cHM6Ly9hbGx0di4qPy5jb20vIikgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGl2LnZpZGVvLWxpc3QtdW5pdC1tZWRpYSIpPy5mb3JFYWNoKAogICAgICAgICAgICAgICAgICAgIChpdGVtLGlkeCxhcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHh4eCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCNteV9hZGRfZGl6aGkke2lkeH1gKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHh4eCkgeyB4eHgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh4eHgpOyB9CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb3VybCA9IGl0ZW0ucXVlcnlTZWxlY3RvcigiZGl2ID4gaW1nIik/LnNyYz8uc3BsaXQoJ2NvdmVyJylbMl0/LnNwbGl0KCcuJylbMF07CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aWRlb3VybCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG15ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBteWRpdi5pbm5lckhUTUwgPSBgPGRpdiBpZD0ibXlfYWRkX2RpemhpJHtpZHh9IiBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4O3dvcmQtd3JhcDogYnJlYWstd29yZDt3b3JkLWJyZWFrOiBicmVhay1hbGw7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxhIGhyZWY9Imh0dHBzOi8vd3NkZmFtd2FzdmJubWtpanNkZC51ZTluMTAueHl6L3VwbG9hZHMvdmlkZW8ke3ZpZGVvdXJsfV93bS5tcDQvaW5kZXgubTN1OCIgdGFyZ2V0PSJfYmxhbmsiPuKclOeCueatpOiuv+mXrjwvYT48L3A+PC9kaXY+YDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uYWZ0ZXIobXlkaXYpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIC8v5YiH5o2i5LiL5LiA6aG1572R5Z2A5LiN5Y+Y77yM5peg5rOV5Yi35paw77yM5pWF5LiN6IO95YGc5q2i5a6a5pe25ZmoCiAgICAgICAgICAgIH0KICAgICAgICAgICAgLyogOXNleCAqLwogICAgICAgICAgICBlbHNlIGlmIChsb2NhdGlvbi5ocmVmLm1hdGNoKCJodHRwczovLy4qPy9pbmRleC9tb3ZpZS9wbGF5L2lkLyIpICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHBsYXllciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkcGxheWVyIik7CiAgICAgICAgICAgICAgICBkaXpoaSA9IGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MLm1hdGNoKCJtb3ZpZXMvKC4qPylfcHJldmlldy5qcGcudHh0IilbMV0uc3BsaXQoJy8nKTsvKiAkKCJzY3JpcHQiKS50ZXh0KCkgKi8KICAgICAgICAgICAgICAgIC8qIDEu54K55Ye76K+V55yL77yI5LiN6ZyA6KaB77yJICovCiAgICAgICAgICAgICAgICBpZiAocGxheWVyICYmIGRpemhpICYmIGZsYWcgPT0gMCkgewogICAgICAgICAgICAgICAgICAgIC8qIDIu6Kej5p6Q55yf5a6e5Zyw5Z2AICovCiAgICAgICAgICAgICAgICAgICAgdmlkZW9VcmwgPSBgaHR0cHM6Ly9tczMuYmNhODM0ZDYwMjU3LmNvbS8ke2RpemhpWzBdfS8ke2RpemhpWzFdfS8zNjBQLyR7ZGl6aGlbMl19XzM2MFAubTN1OGA7IGNvbnNvbGUubG9nKCLnnJ/lrp7lnLDlnYA6IiwgdmlkZW9VcmwpOwogICAgICAgICAgICAgICAgICAgIHZpZGVvVXJsMiA9IGBodHRwczovL21zMy5iY2E4MzRkNjAyNTcuY29tLyR7ZGl6aGlbMF19LyR7ZGl6aGlbMV19LzQ4MFAvJHtkaXpoaVsyXX1fNDgwUC5tM3U4YDsgY29uc29sZS5sb2coIuecn+WunuWcsOWdgDI6IiwgdmlkZW9VcmwyKTsKICAgICAgICAgICAgICAgICAgICB2aWRlb1VybDMgPSBgaHR0cHM6Ly9tczMuYmNhODM0ZDYwMjU3LmNvbS8ke2RpemhpWzBdfS8ke2RpemhpWzFdfS83MjBQLyR7ZGl6aGlbMl19XzcyMFAubTN1OGA7IGNvbnNvbGUubG9nKCLnnJ/lrp7lnLDlnYAzOiIsIHZpZGVvVXJsMyk7CiAgICAgICAgICAgICAgICAgICAgdmlkZW9Vcmw0ID0gYGh0dHBzOi8vbXMzLmJjYTgzNGQ2MDI1Ny5jb20vJHtkaXpoaVswXX0vJHtkaXpoaVsxXX0vMTA4MFAvJHtkaXpoaVsyXX1fMTA4MFAubTN1OGA7IGNvbnNvbGUubG9nKCLnnJ/lrp7lnLDlnYA0OiIsIHZpZGVvVXJsNCk7CiAgICAgICAgICAgICAgICAgICAgLyogMy52aXDop4bpopHpnIDopoHnp7vpmaTnmbvlvZXmoYYgKi8KICAgICAgICAgICAgICAgICAgICBhZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjbG9naW4tdGlwLW1vZGFsIik7IGlmIChhZHMpIGFkcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGFkcyk7CiAgICAgICAgICAgICAgICAgICAgYWRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZpcC10aXAtbW9kYWwiKTsgaWYgKGFkcykgYWRzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYWRzKTsKICAgICAgICAgICAgICAgICAgICAvKiA0LuaSreaUvuato+eJhyAqLwogICAgICAgICAgICAgICAgICAgIHBsYXlfdmlkZW8yKHZpZGVvVXJsLCB2aWRlb1VybDIsIHZpZGVvVXJsMywgdmlkZW9Vcmw0LCBwbGF5ZXIsIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdi5ub3RpY2UiKSk7CiAgICAgICAgICAgICAgICAgICAgZmxhZyA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmIChmbGFnID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAvKiAzLjEg5YWN6LS56KeG6aKR6ZyA6KaB5Yqg6L295pKt5pS+5ZCO56e76Zmk5bm/5ZGKICovCiAgICAgICAgICAgICAgICAgICAgYWRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnBhdXNlLWFkLWltZ2JveCIpOyBpZiAoYWRzKSBhZHMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhZHMpOwogICAgICAgICAgICAgICAgICAgIC8qIDUu5YGc5q2i5a6a5pe25ZmoICovCiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChteV90aW1lcik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiWzlzZXhd6KeG6aKR6aG16Z2i77yM5pyq6I635Y+W5Yiw5Zyw5Z2A77yM57un57ut5bCd6K+VLi4uIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLyog55qH5a625Lya5omAICovCiAgICAgICAgICAgIGVsc2UgaWYgKGxvY2F0aW9uLmhyZWYubWF0Y2goImh0dHBzOi8vd3d3LmhqaHMuKj8vdmlkZW9zLyIpICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHBsYXllciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkcGxheWVyIik7CiAgICAgICAgICAgICAgICAvKiAxLueCueWHu+ivleeci++8iOS4jemcgOimge+8iSAqLwogICAgICAgICAgICAgICAgaWYgKHBsYXllciAmJiB3aW5kb3cuYXBpPy5xdWFsaXR5Py51cmwpIHsKICAgICAgICAgICAgICAgICAgICAvKiAyLuino+aekOecn+WunuWcsOWdgCAqLwogICAgICAgICAgICAgICAgICAgIHZpZGVvVXJsID0gd2luZG93LmFwaS5xdWFsaXR5LnVybC5yZXBsYWNlKCJzdW8uIiwgIiIpLnJlcGxhY2UoIl9zdW8iLCAiIik7IGNvbnNvbGUubG9nKCLnnJ/lrp7lnLDlnYA6IiwgdmlkZW9VcmwpOwogICAgICAgICAgICAgICAgICAgIC8qIDMu56e76Zmk5bm/5ZGKICovCiAgICAgICAgICAgICAgICAgICAgLyogNC7mkq3mlL7mraPniYcgKi8KICAgICAgICAgICAgICAgICAgICBwbGF5X3ZpZGVvKHZpZGVvVXJsLCBwbGF5ZXIsIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdi5oZWFkbGluZSIpKTsKICAgICAgICAgICAgICAgICAgICAvKiA1LuWBnOatouWumuaXtuWZqCAqLwogICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwobXlfdGltZXIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlvnmoflrrbkvJrmiYBd6KeG6aKR6aG16Z2i77yM5pyq6I635Y+W5Yiw5Zyw5Z2A77yM57un57ut5bCd6K+VLi4uIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gVGhlIEFWIFByb27vvIzlhbzlrrnmiYvmnLogKyBQQwogICAgICAgICAgICBlbHNlIGlmIChsb2NhdGlvbi5ocmVmLm1hdGNoKCJodHRwczovL3RoZWF2Lio/LmNvbS92aWRlb3MvIikgIT0gbnVsbCB8fCBsb2NhdGlvbi5ocmVmLm1hdGNoKCJodHRwczovL3RoZS4qPy5mdW4vdmlkZW9zLyIpICE9IG51bGwgKSB7CiAgICAgICAgICAgICAgICAvLyAyLuino+aekOecn+WunuWcsOWdgAogICAgICAgICAgICAgICAgLy/lt7Lnn6XnvLrpmbc6IOWPr+iDvee9keermeWtmOWcqOmZkOWItu+8jOaOp+WItuWPsOS4rXBsYXllci5hcGkoImhscyIp5pyJ5YC877yM5L2G6ISa5pys6I635Y+W5Li6bnVsbCDjgILlj6rmnInkvb/nlKggdW5zYWZlV2luZG93LnBsYXllci5hcGkoImhscyIp6IO96I635Y+W5YiwIO+8jAogICAgICAgICAgICAgICAgLy/kvYbnlLHkuo51c2Vyc2NyaXB05LiN5pSv5oyBdW5zYWZlV2luZG9377yM5pWFc2FmYXJp5rWP6KeI5ZmoK3VzZXJzY3JpcHTml6DmlYjjgILmlLnkuLrku448c2NyaXB0Lz7lhoXlrrnmn6Xmib5tM3U45Zyw5Z2ACiAgICAgICAgICAgICAgICB2aWRlb1VybCA9IHdpbmRvdy5wbGF5ZXI/LmFwaSgiaGxzIik/LnVybD8uc3BsaXQoJz8nKVswXSB8fCB3aW5kb3cubTNreT8uc3BsaXQoJz8nKVswXTsgLy/or6XmlrnmoYjlnKhzYWZhcmnmtY/op4jlmagrdXNlcnNjcmlwdOS4i+aXoOaViAogICAgICAgICAgICAgICAgLy8gdmlkZW9VcmwgPSBkb2N1bWVudC5ib2R5LmlubmVySFRNTC5tYXRjaCgiaHR0cHM6KC4qPykubTN1OCIpWzBdOyAgLy8gJCgic2NyaXB0IikudGV4dCgpCiAgICAgICAgICAgICAgICBpZiAodmlkZW9VcmwgJiYgdHlwZW9mKFBsYXllcmpzKT09ICdmdW5jdGlvbicgKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIuecn+WunuWcsOWdgDoiLCB2aWRlb1VybCk7CiAgICAgICAgICAgICAgICAgICAgLy8gMy7np7vpmaTlub/lkYoKICAgICAgICAgICAgICAgICAgICBhZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudGFibGUiKTsgaWYgKGFkcykgYWRzLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgYWRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNwb25zb3IiKTsgaWYgKGFkcykgYWRzLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgYWRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnJhdGVfYm94Iik7IGlmIChhZHMpIGFkcy5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgICAgIGFkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5ncmVlbiIpOyBpZiAoYWRzKSBhZHMuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAgICAgICAgICAgICAvLyA0LuaSreaUvuato+eJhwogICAgICAgICAgICAgICAgICAgIC8v5bey55+l57y66Zm3OiDoi6Xkvb/nlKhEcGxheWVyLCDliJkgY2hyb21lL3NhZmFyaSDmkq3mlL7mraPluLjvvIjml6Dms5XmlrDmoIfnrb7mkq3mlL7vvIzlj6/og73mnInpmZDliLbvvInvvIxraXdpIG0zdTjlnLDlnYDojrflj5bmiJDlip/vvIzkvYbmkq3mlL7lpLHotKXvvIEKICAgICAgICAgICAgICAgICAgICAvLyBwbGF5X3ZpZGVvKHZpZGVvVXJsLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucGxheWVyIiksIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImgyLnRpdGxlIikpO+ivpeaWueahiOWcqGtpd2krdGVtcGVybW9ua2V55LiL5peg5pWICiAgICAgICAgICAgICAgICAgICAgUGxheWVyanMoeyBpZDogImxheWVyIiwgZmlsZTogdmlkZW9VcmwsIGF1dG9wbGF5OiAxIH0pOy8vaWQ6ICJwbGF5ZXIiCiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChteV90aW1lcik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiW1RoZSBBViBQcm9uXeinhumikemhtemdou+8jOacquiOt+WPluWIsOWcsOWdgO+8jOe7p+e7reWwneivlS4uLiIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8qIOW/q+eMq++8jOWFvOWuueaJi+acuiArIFBDICovCiAgICAgICAgICAgIGVsc2UgaWYgKGxvY2F0aW9uLmhyZWYubWF0Y2goImh0dHBzOi8vLio/a20uKj8uY29tL3ZpZGVvQ29udGVudC8iKSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAvKiAxLueCueWHu+ivleeci++8iOS4jemcgOimge+8iSAqLwogICAgICAgICAgICAgICAgLyogMi7op6PmnpDnnJ/lrp7lnLDlnYAgKi8KICAgICAgICAgICAgICAgIHZpZGVvVXJsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3ZpZGVvQ29udGVudCIpPy5fX3Z1ZV9fPy5mb3JtYXRVcmw7CiAgICAgICAgICAgICAgICBpZiAodmlkZW9VcmwpIHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygi55yf5a6e5Zyw5Z2AOiIsIHZpZGVvVXJsKTsKICAgICAgICAgICAgICAgICAgICAvKiAzLuenu+mZpOW5v+WRiiAqLwogICAgICAgICAgICAgICAgICAgIGFkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5leGNoYW5nZUJnIik7IGlmIChhZHMgIT0gbnVsbCkgYWRzLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgLyogNC7mkq3mlL7mraPniYcgKi8KICAgICAgICAgICAgICAgICAgICBwbGF5X3ZpZGVvKHZpZGVvVXJsLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdmlkZW9Db250ZW50ID4gZGl2LnZpZGVvIil8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYuYmFja0ltZyIpLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYudmlkZW9UaXRsZSIpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiBwLm5hbWUiKSk7CiAgICAgICAgICAgICAgICAgICAgLyogNS7lgZzmraLlrprml7blmaggKi8KICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKG15X3RpbWVyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJb5b+r54yrXeinhumikemhtemdou+8jOacquiOt+WPluWIsOWcsOWdgO+8jOe7p+e7reWwneivlS4uLiIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8v57qi5p2P77yM5YW85a655omL5py6ICsgUEMKICAgICAgICAgICAgLyogZWxzZSBpZiAobG9jYXRpb24uaHJlZi5tYXRjaCgiaHR0cHM6Ly8uKj8uaHguKj8uY29tLyMvbW92ZXMvcGxheXZpZGVvLyIpICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIGxldCBsb2dpbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdi5wbGF5X3ZpZGVvX3dkbF8yXzIiKTsKICAgICAgICAgICAgICAgIHNoaWthbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdi5zaGlrYW4iKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYub25fcGxheSIpOwogICAgICAgICAgICAgICAgcGxheWVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIGRpdiNtc2UiKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYucGxheV92aWRlb18xIGRpdiIpOwogICAgICAgICAgICAgICAgaWYobG9naW4pewogICAgICAgICAgICAgICAgICAgIC8vIDAu55m75b2VIG9yIOazqOWGjAogICAgICAgICAgICAgICAgICAgIGxvZ2luLmNsaWNrKCk7CiAgICAgICAgICAgICAgICAgICAgZG9fbG9naW4oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNoaWthbikgewogICAgICAgICAgICAgICAgICAgIC8vIDEu54K55Ye76K+V55yLCiAgICAgICAgICAgICAgICAgICAgc2hpa2FuLmNsaWNrKCk7IGNvbnNvbGUubG9nKCLngrnlh7vor5XnnIvvvIEiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBsYXllcj8uX192dWVfXz8ucGxheVVybCkgewogICAgICAgICAgICAgICAgICAgIC8vIDIu6Kej5p6Q55yf5a6e5Zyw5Z2ACiAgICAgICAgICAgICAgICAgICAgbGV0IHZpZGVvVXJsID0gcGxheWVyLl9fdnVlX18ucGxheVVybC5zcGxpdCgnJnRpbWUnKVswXTsKICAgICAgICAgICAgICAgICAgICBsZXQgcmUgPSB2aWRlb1VybC5zcGxpdCgiLyIpWzJdOwogICAgICAgICAgICAgICAgICAgIHZpZGVvVXJsID0gdmlkZW9VcmwucmVwbGFjZShyZSArICcvc2hpa2Fuc2hpcGluJywgJ2pzY2RuLmt1bmt1bmhvbWUueHl6Jyk7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIuecn+WunuWcsOWdgDoiLCB2aWRlb1VybCk7CiAgICAgICAgICAgICAgICAgICAgLy8gMy7np7vpmaTor5XnnIsKICAgICAgICAgICAgICAgICAgICBwbGF5ZXIuX192dWVfXy5wbGF5ZXI/Lmhscz8uZGVzdHJveSgpOwogICAgICAgICAgICAgICAgICAgIC8vIDQu5pKt5pS+5q2j54mHCiAgICAgICAgICAgICAgICAgICAgcGxheV92aWRlbyh2aWRlb1VybCwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiIGRpdiNtc2UiKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYucGxheV92aWRlb18xIGRpdi5kcGxheWVyIiksIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdi5tb3ZlX25hbWUiKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYucGxheV9tYWluXzEiKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gNS7lgZzmraLlrprml7blmagKICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKG15X3RpbWVyKTsgY29uc29sZS5sb2coIuWBnOatouWumuaXtuWZqO+8gSIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlvnuqLmnY9d6KeG6aKR6aG16Z2i77yM5pyq6I635Y+W5Yiw5Zyw5Z2A77yM57un57ut5bCd6K+VLi4uIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0qLwogICAgICAgICAgICAvL+e6ouadj++8jOaJi+acuuefreinhumikQogICAgICAgICAgICAvKmVsc2UgaWYgKGxvY2F0aW9uLmhyZWYubWF0Y2goImh0dHBzOi8vLio/LyMvc2hvdFZpZGVvTGlzdCIpICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHBsYXllciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdi5zaG91dF9saXN0Iik7CiAgICAgICAgICAgICAgICBpZighZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYnV0dG9uI3BvamllIikpewogICAgICAgICAgICAgICAgICAgIC8vIDEuIOaYvuekuuWcsOWdgAogICAgICAgICAgICAgICAgICAgIHZhciBteWRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgICAgIG15ZGl2LmlubmVySFRNTCA9IGA8cCBpZD0ibXlfYWRkX2RpemhpIiBzdHlsZT0iY29sb3I6cmVkO2ZvbnQtc2l6ZToxNHB4Ij48YnV0dG9uIGlkPSJwb2ppZSI+54K55q2k56C06KejPC9idXR0b24+5ZCO77yM6KeG6aKR5qCH6aKY5YmN5Lya5Ye6546w4oCc4pyU4oCd5a2X5qC377yM54K55Ye75qCH6aKY5bCG5omT5byA5paw6aG16Z2i55yL6KeG6aKR77yBPC9wPmA7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2LnZhbi1uYXYtYmFyX19jb250ZW50IikuYWZ0ZXIobXlkaXYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZihwbGF5ZXIgJiYgcGxheWVyLl9fdnVlX18ucGxheUxpc3QxKXsKICAgICAgICAgICAgICAgICAgICAvLyAyLueCueino+egtOinowogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiNwb2ppZSIpLm9uY2xpY2sgPSBmdW5jdGlvbigpewogICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmlkZW9VcmxfbGlzdCA9IHBsYXllci5fX3Z1ZV9fLnBsYXlMaXN0MTsgY29uc29sZS5sb2coIuebtOaSreWcsOWdgDoiLCB2aWRlb1VybF9saXN0KTsKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRpdmxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuYm94X2xlZnQgZGl2LmJveF9wdWJsaWMgZGl2LmJveF9wdWJsaWNfMV8yICIpOwogICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuID0gKHZpZGVvVXJsX2xpc3QubGVuZ3RoID4gZGl2bGlzdC5sZW5ndGgpID8gZGl2bGlzdC5sZW5ndGggOiB2aWRlb1VybF9saXN0Lmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGl2bGlzdFtpXS5pbm5lckhUTUwgPSBgPHA+PGEgaHJlZj0iaHR0cHM6Ly9qc2Nkbi5sb3JkemhhbmcueHl6LyR7dmlkZW9VcmxfbGlzdFtpXS5zbn0vMTAwMDBrYi9obHMvaW5kZXgubTN1OCIgdGFyZ2V0PSJfYmxhbmsiPuKclCR7ZGl2bGlzdFtpXS5pbm5lclRleHR9PC9hPjwvcD5gOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWPs+i+ueeahAogICAgICAgICAgICAgICAgICAgICAgICB2aWRlb1VybF9saXN0ID0gcGxheWVyLl9fdnVlX18ucGxheUxpc3QyOyBjb25zb2xlLmxvZygi55u05pKt5Zyw5Z2AOiIsIHZpZGVvVXJsX2xpc3QpOwogICAgICAgICAgICAgICAgICAgICAgICBkaXZsaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGl2LmJveF9yaWdodCBkaXYuYm94X3B1YmxpYyBkaXYuYm94X3B1YmxpY18xXzIgIik7CiAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9ICh2aWRlb1VybF9saXN0Lmxlbmd0aCA+IGRpdmxpc3QubGVuZ3RoKSA/IGRpdmxpc3QubGVuZ3RoIDogdmlkZW9VcmxfbGlzdC5sZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGl2bGlzdFtpXS5pbm5lckhUTUwgPSBgPHA+PGEgaHJlZj0iaHR0cHM6Ly9qc2Nkbi5sb3JkemhhbmcueHl6LyR7dmlkZW9VcmxfbGlzdFtpXS5zbn0vMTAwMDBrYi9obHMvaW5kZXgubTN1OCIgdGFyZ2V0PSJfYmxhbmsiPuKclCR7ZGl2bGlzdFtpXS5pbm5lclRleHR9PC9hPjwvcD5gOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAvLyAzLuWBnOatouWumuaXtuWZqAogICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwobXlfdGltZXIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9ICovCiAgICAgICAgICAgIC8qIOWQq+e+nuiNieinhumikSDvvIzlhbzlrrnmiYvmnLogKyBQQyAqLwogICAgICAgICAgICBlbHNlIGlmIChsb2NhdGlvbi5ocmVmLm1hdGNoKCIvcGxheS92aWRlby8iKSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAvLyAyLuino+mZpOivleeci+mZkOWItgogICAgICAgICAgICAgICAgdmFyIG9iaiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ByZUluZm8nKSk7Ly/op6PpmaQgcGMg5qyh5pWw6ZmQ5Yi2CiAgICAgICAgICAgICAgICBpZihvYmopewogICAgICAgICAgICAgICAgICAgIG9iai5wcmVOdW0gPSAxMDA7CiAgICAgICAgICAgICAgICAgICAgb2JqLmNvdW50ID0gMDsKICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgicHJlSW5mbyIsSlNPTi5zdHJpbmdpZnkob2JqKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgb2JqMiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RyeVBsYXlOdW0nKSk7Ly/op6PpmaQgaDUg5qyh5pWw6ZmQ5Yi2CiAgICAgICAgICAgICAgICBpZihvYmoyKXsKICAgICAgICAgICAgICAgICAgICBvYmoyLm51bSA9IC05MDsKICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgidHJ5UGxheU51bSIsSlNPTi5zdHJpbmdpZnkob2JqMikpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIG9iajMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd2aXNpdG9yU2hvcnRMaW1pdCcpKTsvL+ino+mZpCBoNSDnn63op4bpopEg5qyh5pWw6ZmQ5Yi2CiAgICAgICAgICAgICAgICBpZihvYmozKXsKICAgICAgICAgICAgICAgICAgICBvYmozLmNvdW50ID0gLTkwOwogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ2aXNpdG9yU2hvcnRMaW1pdCIsSlNPTi5zdHJpbmdpZnkob2JqMykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc2hpa2FuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2LnRyeSBkaXYuZy1mbGV4LWpjYyIpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdi5jdXJzb3ItcG9pbnRlci5mbGV4LWNlbnRlci5zcGFjZS14LTEiKTsgLyog5YmN6Z2i5Li65omL5py644CC5ZCO6Z2i5Li6UEMgKi8KICAgICAgICAgICAgICAgIGxldCB2aWRlb1VybCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJyZWFsX3ZpZGVvX3VybCIpOwogICAgICAgICAgICAgICAgaWYgKHZpZGVvVXJsKSB7CiAgICAgICAgICAgICAgICAgICAgLy8zLuenu+mZpOW5v+WRigogICAgICAgICAgICAgICAgICAgIGFkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdi5yZWxhdGl2ZS5iZy1vdmVybGF5ID4gYSIpOwogICAgICAgICAgICAgICAgICAgIGlmIChhZHMgIT0gbnVsbCkgYWRzLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgLy80LuaYvuekuuWcsOWdgAogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJ2aWRlb1VybDoiLHZpZGVvVXJsKTsKICAgICAgICAgICAgICAgICAgICBzaG93X3ZpZGVvVXJsKHZpZGVvVXJsLCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYuZy1tLXQtOC5nLWZsZXgudGl0bGUiKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJoMi50ZXh0LWJhc2UuYXJ0aWNsZS10aXRsZSIpLCAxKTsKICAgICAgICAgICAgICAgICAgICAvLzUu5YGc5q2i5a6a5pe25ZmoCiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oInJlYWxfdmlkZW9fdXJsIik7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIuWBnOatouWumuaXtuWZqO+8gSIpOwogICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwobXlfdGltZXIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAoc2hpa2FuKSB7CiAgICAgICAgICAgICAgICAgICAgLyogMS7ngrnlh7vor5XnnIsgKi8KICAgICAgICAgICAgICAgICAgICBzaGlrYW4uY2xpY2soKTsgY29uc29sZS5sb2coIueCueWHu+ivleeci++8gSIpOyBzaGlrYW4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzaGlrYW4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlvlkKvnvp7ojYld6KeG6aKR6aG16Z2i77yM5pyq6I635Y+W5Yiw5Zyw5Z2A77yM57un57ut5bCd6K+VLi4uIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy/lkKvnvp7ojYnvvIxQQ+err++8jOebtOaSrQogICAgICAgICAgICAvKiBlbHNlIGlmIChsb2NhdGlvbi5ocmVmLm1hdGNoKCIvbGl2ZS8iKSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBwbGF5ZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYuVmlkZW9BdXRoQWRtaW5CZyIpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiNsaXZlUGxheWVyIik7CiAgICAgICAgICAgICAgICB2aWRlb1VybCA9IHBsYXllci5fX3Z1ZV9fLnZpZGVvVXJsIHx8IHBsYXllci5fX3Z1ZV9fLnZpZGVvQ29udGVudC5wdWxsOyBjb25zb2xlLmxvZygi55u05pKt5Zyw5Z2AOiIsIHZpZGVvVXJsKTsKICAgICAgICAgICAgICAgIHBsYXlfdmlkZW8odmlkZW9VcmwsIHBsYXllciwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2LnVzZXJJbmZvIHAubmFtZSIpKTsKICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwobXlfdGltZXIpOwogICAgICAgICAgICB9Ki8KICAgICAgICAgICAgLy/lkKvnvp7ojYnvvIzmiYvmnLrnq6/vvIznm7Tmkq0KICAgICAgICAgICAgLyplbHNlIGlmIChsb2NhdGlvbi5ocmVmLm1hdGNoKCIvL2g1Lio/L2xpdmUiKSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBwbGF5ZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYjcHVibGljTGl2ZUxpc3RNb2R1bGUiKTsKICAgICAgICAgICAgICAgIGxldCB2aWRlb1VybF9saXN0ID0gcGxheWVyLl9fdnVlX18ubGlzdDsgY29uc29sZS5sb2coIuebtOaSreWcsOWdgDoiLCB2aWRlb1VybF9saXN0KTsKICAgICAgICAgICAgICAgIGxldCBkaXZsaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidWwubGl2ZUxpc3RCZyBsaSAuYm90dG9tIik7CiAgICAgICAgICAgICAgICBsZXQgbGVuID0gKHZpZGVvVXJsX2xpc3QubGVuZ3RoID4gZGl2bGlzdC5sZW5ndGgpID8gZGl2bGlzdC5sZW5ndGggOiB2aWRlb1VybF9saXN0Lmxlbmd0aDsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICBkaXZsaXN0W2ldLmlubmVySFRNTCArPSAnPHA+PGEgaHJlZj0iJyArIHZpZGVvVXJsX2xpc3RbaV0ucHVsbCArICciIHRhcmdldD0iX2JsYW5rIj4nICsgdmlkZW9VcmxfbGlzdFtpXS5wdWxsICsgJzwvYT48L3A+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwobXlfdGltZXIpOwogICAgICAgICAgICAgICAgLy8gMS4g5pi+56S65Zyw5Z2ACiAgICAgICAgICAgICAgICBteWRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgbXlkaXYuaW5uZXJIVE1MID0gJzxwIGlkPSJteV9hZGRfZGl6aGkiIHN0eWxlPSJjb2xvcjpyZWQ7Zm9udC1zaXplOjE0cHgiPuaPkOekuu+8muW9puelluS7rO+8jOivt+eCueWHu+WbvueJh+S4i+aWueeahOmTvuaOpeeci+egtOino+WQjueahOebtOaSreinhumike+8gTwvcD4nOwogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2LnRvcEJhbm5lckJnIikuYWZ0ZXIobXlkaXYpOwogICAgICAgICAgICB9Ki8KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgidmlwX2xldmVsIiwgJzEnKTsvLyDpurvosYZUVuOAgTkxVFYKICAgICAgICAgICAgICAgIC8vbG9jYWxTdG9yYWdlLnNldEl0ZW0oImZyZWVfcGxheXMiLCAnOTknKTsvLyDnpo/liKnlp6zns7vliJcKICAgICAgICAgICAgICAgIC8vY2xlYXJJbnRlcnZhbChteV90aW1lcik7IC8v6bq76LGGVFbmr4/mrKHliLfmlrDlkI7kvJrlsIZ2aXBfbGV2ZWzmm7TmlrDkuLow77yM5LiN6IO95YGc5q2i5a6a5pe25ZmoCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggKGVycikgewogICAgICAgICAgICBjb25zb2xlLmxvZyhgJHtlcnJ9YCk7CiAgICAgICAgICAgIHNob3dfZXJyX2xvZyhlcnIpOwogICAgICAgIH0KICAgIH0KCiAgICBsZXQgbXlfdGltZXIgPSBzZXRJbnRlcnZhbChnZXRfdmlkZW91cmwsIDIwMDApOwoKICAgIHZhciBvbGRocmVmID0gbG9jYXRpb24uaHJlZjsKICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAobG9jYXRpb24uaHJlZiAhPSBvbGRocmVmKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCLnm5HlkKzliLDlnLDlnYDlj5jljJYs5YaN5qyh5ZCv5Yqo44CQ6I635Y+W6KeG6aKR5a6a5pe25Zmo44CRISIpOwogICAgICAgICAgICBvbGRocmVmID0gbG9jYXRpb24uaHJlZjsKICAgICAgICAgICAgZXJyX2NudCA9IDA7CiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwobXlfdGltZXIpOwogICAgICAgICAgICBteV90aW1lciA9IHNldEludGVydmFsKGdldF92aWRlb3VybCwgMjAwMCk7CiAgICAgICAgfQogICAgICAgIGlmKHRvZGF5ICE9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2RheV9pc19zaG93JykgJiYgTWF0aC5hYnMobmV3IERhdGUoKS5nZXRNaW51dGVzKCkgLSBtaW4pID4gMTAgKXsvL+S7iuWkqeWcqOW9k+WJjeermeeCueayoeW8uei/h++8jOS4lOWcqOW9k+WJjemhtemdouWBnOeVmTEw5YiG6ZKf5Lul5LiK5pe2CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ0b2RheV9pc19zaG93IiwgdG9kYXkpOwogICAgICAgICAgICBjb25zb2xlLmxvZygi5pSv5oyB5L2c6ICF5by556qXISIpOwogICAgICAgICAgICBzaG93X3N1cHBvcnRfYXV0aG9yKCk7CiAgICAgICAgfQogICAgfSwgMTAwMCk7Cgp9KSgpOw==
Add Comment
Please, Sign In to add comment