Help
RSS
API
Feed
Maltego
Contact
Domain > 91bl1.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-05-05
154.207.77.22
(
ClassC
)
2025-07-29
156.255.123.66
(
ClassC
)
2025-09-25
154.207.77.94
(
ClassC
)
2026-02-03
154.207.127.49
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Tue, 03 Feb 2026 01:55:01 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveserver: cloudflarecf-cache-status: DYNAMICNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Report-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sBL90z6nnW44OA5vf6EtMRUY0mm3SMLGMqYxMLVi6QTC%2FB51FbFJoVZ3h7YP2tDk8ObST0JIxlq3547%2BqI%2Bqj66j11fZ%2BVG4%3D}}CF-RAY: 9c7e4db8fa719976-PDXalt-svc: h3:443; ma86400 script>Base64{_keyStr:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/,encode:function(a){var d,c0;for(aBase64._utf8_encode(a);ca.length;){var ba.charCodeAt(c++);var ea.charCodeAt(c++);var fa.charCodeAt(c++);var gb>>2;b(b&3)4|e>>4;var h(e&15)2|f>>6;var kf&63;isNaN(e)?hk64:isNaN(f)&&(k64);dd+Base64._keyStr.charAt(g)+Base64._keyStr.charAt(b)+Base64._keyStr.charAt(h)+Base64._keyStr.charAt(k)}return d},decode:function(a){var d,c0;for(aa.replace(/^A-Za-z0-9\+\//g,);ca.length;){var bBase64._keyStr.indexOf(a.charAt(c++));var eBase64._keyStr.indexOf(a.charAt(c++));var fBase64._keyStr.indexOf(a.charAt(c++));var gBase64._keyStr.indexOf(a.charAt(c++));bb2|e>>4;e(e&15)4|f>>2;var h(f&3)6|g;d+String.fromCharCode(b);64!f&&(d+String.fromCharCode(e));64!g&&(d+String.fromCharCode(h))}return dBase64._utf8_decode(d)},_utf8_encode:function(a){aa.replace(/\\r\\n/g,\n);for(var d,c0;ca.length;c++){var ba.charCodeAt(c);128>b?d+String.fromCharCode(b):(127b&&2048>b?d+String.fromCharCode(b>>6|192):(d+String.fromCharCode(b>>12|224),d+String.fromCharCode(b>>6&63|128)),d+String.fromCharCode(b&63|128))}return d},_utf8_decode:function(a){for(var d,c0,b,e,f;ca.length;)ba.charCodeAt(c),128>b?(d+String.fromCharCode(b),c++):191b&&224>b?(ea.charCodeAt(c+1),d+String.fromCharCode((b&31)6|e&63),c+2):(ea.charCodeAt(c+1),fa.charCodeAt(c+2),d+String.fromCharCode((b&15)12|(e&63)6|f&63),c+3);return d}};/script>noscript>error ../noscript>script>document.write(Base64.decode(PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KPGh0bWw+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlLGNocm9tZT0xIiAvPgogICAgPG1ldGEgbmFtZT0icmVuZGVyZXIiIGNvbnRlbnQ9IndlYmtpdCIgLz4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT0wIiAvPgogICAgPHRpdGxlPjkx54iG5paZIC0g5ZCD55Oc54iG5paZ5Z+65ZywPC90aXRsZT4gICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9Ijkx54iG5paZ44CBOTHlkIPnk5zjgIE5MTHniIbmlpnjgIHlkIPnk5zniIbmlpnjgIHlkIPnk5znvZHnq5njgIHmipbpn7Png63nk5zjgIHnvZHnu5zniIbmlpks44CB54Ot54K55LqL5Lu244CB5aix5LmQ5paw6Ze7LOOAgeekvuS8muWlh+mXuyzjgIHpu5HmlpnkuI3miZPng4rjgIHpu5HmlpnlkIPnk5zjgIE5MeeIhuaWmeWFpeWPo+OAgeWQg+eTnOm7keaWmeOAgee9kee6oum7keaWmeOAgeWPjeW3ruagoeWbrSIgLz4gICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ijkx54iG5paZ572R772c5YWo572R5pu05paw5pyA5b+r5pS25b2V5pyA5YWo55qE5YWN6LS55ZCD55Oc54iG5paZ572R56uZ77yB5q+P5pel5a6e5pe25pu05paw5oqW6Z+z54Ot55Oc44CB5b6u5Y2a54iG5paZ44CB5piO5pif5YWr5Y2m44CB572R57qi5aGM5oi/44CB5Y+N5beu6buR5paZ44CB5qCh5Zut5LiR6Ze7562J54Ot6Zeo5aSn55Oc77yM5YWz5rOoOTHniIbmlpnvvIzpu5HmlpnmsLjkuI3mlq3moaPvvIzku47mraTlkIPnk5zmsLjov5zpooblhYjng63mkJzjgIIiIC8+ICAgIDxtZXRhIG5hbWU9InJlZmVycmVyIiBjb250ZW50PSJuby1yZWZlcnJlciI+ICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSIvZmF2aWNvbi5pY28/dj0xIj4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovLzkxYmxhMS5jb20vIiAvPgogICAgPGJhc2UgdGFyZ2V0PSJfYmxhbmsiIC8+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgICogewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQogICAgICAgIGJvZHkgewogICAgICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMyYTJhICFpbXBvcnRhbnQ7CiAgICAgICAgfQogICAgICAgIC5iZyB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBtaW4taGVpZ2h0OiA5MHZoOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMnZ3OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmJveCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQogICAgICAgIC5sb2dvIHsKICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAubG9nbyBpbWcgewogICAgICAgICAgICB3aWR0aDogNjAlOwogICAgICAgIH0KICAgICAgICAubGlzdCB7CiAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMyJTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gMDsKICAgICAgICB9CiAgICAgICAgLmxpc3QgYSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZDFkMWQ7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmExMGU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEzcHg7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDc1cHg7CiAgICAgICAgfQogICAgICAgIC5saXN0IGEgaW1nIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgfQogICAgICAgIC5saXN0IGEgLnRleHQgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgLypoZWlnaHQ6IDEwMCU7Ki8KICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgcGFkZGluZzogNnB4IDA7CiAgICAgICAgICAgIGNvbG9yOiAjZmZhMTBlOwogICAgICAgIH0KICAgICAgICAubGlzdCBhIC50ZXh0IC5idG5UaXRsZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgfQogICAgICAgIC5saXN0IGEgLnRleHQgLmJ0bkxpbmsgewogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIC5lbWFpbC1ib3ggc3BhbiB7CiAgICAgICAgICAgIGNvbG9yOiAjZmZhMTBlOwogICAgICAgICAgICAvKmZvbnQtd2VpZ2h0OiBib2xkOyovCiAgICAgICAgfQogICAgICAgIC5lbWFpbC1ib3ggYSB7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIH0KICAgICAgICAuZW1haWwtYm94IHAgewogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIH0KICAgICAgICAuZm9vdGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIH0KICAgICAgICAubm90aWZ5IHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiA0NXB4OwogICAgICAgICAgICB6LWluZGV4OiAxMTA7CiAgICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgICBwYWRkaW5nOiA1cHggMHB4OwogICAgICAgICAgICB0b3A6IDBweDsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgICAgIH0KICAgICAgICAjbG9hZC13cmFwIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICAgICAgICAgd2lkdGg6IDkwJTsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgICAgICBjb2xvcjogIzIxMWYxZjsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbjogMjBweCBhdXRvOwogICAgICAgIH0KICAgICAgICAuY29udGFjdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QgYSB7CiAgICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QgaW1nIHsKICAgICAgICAgICAgd2lkdGg6IDIuMzVyZW07CiAgICAgICAgfQogICAgICAgIC5lbWFpbC1ib3ggewogICAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgICAgcGFkZGluZzogMC41cmVtOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImltYWdlcy9iZy5wbmciKTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07CiAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlOwogICAgICAgICAgICBtYXJnaW46IDdweCBhdXRvIDM1cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CgoKICAgICAgICAjYXBwLWJ0bnMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICB3aWR0aDogOTYlOwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgICNhcHAtYnRucyBhIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDQ7CiAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gMTBweCkgLyAyKTsKICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDE4cHggMDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgfQogICAgICAgICNhcHAtYnRucyBhOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICAgIH0KICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgICAgICAgICAgLmJnIHsKICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDUwcHg7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgI2xvYWQtd3JhcCB7YmFja2dyb3VuZDogI2ZmZjt3aWR0aDo5MCU7cGFkZGluZzoxMHB4IDAgO2NvbG9yOiAjMjExRjFGO21hcmdpbjogMCBhdXRvO2JvcmRlci1yYWRpdXM6IDVweDt0ZXh0LWFsaWduOiBjZW50ZXJ9CiAgICA8L3N0eWxlPgogICAgPHNjcmlwdCBzcmM9Ii4vanMvVnguanM/dD12OCI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxkaXYgY2xhc3M9ImJnIj4KICAgIDxkaXYgY2xhc3M9J2JveCc+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9nbyI+PGltZyBzcmM9Ii9pbWFnZXMvbG9nby5wbmc/dj0xIiAgYWx0PSIiLz48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0IiBpZD0ibGlzdC13cmFwIiBzdHlsZT0iZGlzcGxheTogZmxleCI+CiAgICAgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5UaXRsZSI+OTHniIbmlpkt57q/6LevPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuTGluayI+LjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+IDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0blRpdGxlIj45MeeIhuaWmS3nur/ot688L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5MaW5rIj4uPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4gPC9hPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuVGl0bGUiPjkx54iG5paZLee6v+i3rzwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bkxpbmsiPi48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iYXBwLWJ0bnMiPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPuS4i+i9vTkx54iG5paZQXBwPC9hPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPk1E57K+6YCJ56aP5YipPC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWJveCI+CiAgICAgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSI+CiAgICAgICAgICAgICAgICA8cD7lj5HpgIHku7vmhI/mtojmga/liLDpgq7nrrHvvIzoh6rliqjojrflj5Y5MeeIhuaWmeacgOaWsDwvcD4KICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgIOOAkOWFjee/u+WimeOAkeWcsOWdgO+8mjxzcGFuPmNoaWd1YXRpYW50YW5nQGdtYWlsLmNvbTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QiIGlkPSJjb250YWN0TGlzdCI+CiAgICAgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgPjxpbWcgYWx0PSIiIHNyYz0iL2ltYWdlcy9ib29rLnBuZyIgLz48c3Bhbj7lm57lrrbnmoTot688L3NwYW4+PC9hPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPjxpbWcgYWx0PSIiIHNyYz0iL2ltYWdlcy94LnBuZyIgLz48c3Bhbj7lrpjmlrnmjqjnibk8L3NwYW4+PC9hPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPjxpbWcgYWx0PSIiIHNyYz0iL2ltYWdlcy9xcS5wbmciIC8+PHNwYW4+5a6Y5pa5UVHnvqQ8L3NwYW4+PC9hPgo8IS0tICAgICAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj48aW1nIGFsdD0iIiBzcmM9Ii9pbWFnZXMvZ2l0aHViLnBuZyIgLz48c3Bhbj7lnLDlnYDlj5HluIPpobU8L3NwYW4+PC9hPi0tPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPjxpbWcgYWx0PSIiIHNyYz0iL2ltYWdlcy90ZWxlZ3JhbS5wbmciIC8+PHNwYW4+5a6Y5pa5VEfnvqQ8L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSdmb290ZXInPgogICAgICAgIDxwPuacrOermeWPquS4uua1t+WkluWNjuS6uuaPkOS+m+acjeWKoe+8jOmdnuazleW+i+WFgeiuuOWcsOWMuuS7peWPijE45bKB5Lul5LiL55So5oi356aB5q2i6K6/6Zeu77yBPC9wPiAgICAgICAgPHA+JmNvcHk7IDIwMjYgOTHniIbmlpkgLSDlkIPnk5zniIbmlpnln7rlnLAgPGEgaHJlZj0iaHR0cHM6Ly85MWJsYy5jb20iIHN0eWxlPSJjb2xvcjojZmZmOyI+aHR0cHM6Ly85MWJsYy5jb208L2E+IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD4KICAgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ibm90aWZ5Ij7lvZPliY3pobXor7fmiKrlm77kv53lrZjvvIzku6XlhY3otbDkuKI8L2Rpdj4KPC9ib2R5PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2h0bWwiIGlkPSJ0ZW1wbGV0Ij4KICAgIDxhIGhyZWY9IiR7dXJsfSI+CiAgICAgICAgPGRpdiBjbGFzcz0idGV4dCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0blRpdGxlIj4ke3RleHR9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bkxpbmsiPiR7dXJsX2hvc3R9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2E+Cjwvc2NyaXB0Pgo8c2NyaXB0ID4KICAgIHZhciBiYXNlVGltZSA9IHBhcnNlSW50KCgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gNzIwMDAwMCkgKyAiIiwgMTApLGxpbmVBcnk9W10sYmFja3VwTGluZT1bXQogICAgICAgIHdvcmRzID0gJ2FiYW5kb24sYWJpbGl0eSxhYmxlLGFib3ZlLGFicm9hZCxhYnNlbmNlLGFic29yYixhYnVzZSxhY2NlcHQsYWNjZXNzLGFjY291bnQsYWNjdXNlLGFjaGlldmUsYWNpZCxhY3F1aXJlLGFjcm9zcyxhY3QsYWN0aW9uLGFjdGl2ZSxhY3RvcixhY3RyZXNzLGFjdHVhbCxhZCxhZGFwdCxhZGQsYWRkcmVzcyxhZGp1c3QsYWRtaXJlLGFkbWl0LGFkb3B0LGFkdWx0LGFkdmFuY2UsYWR2aWNlLGFkdmlzZSxhZHZpc2VyLGFmZmFpcixhZmZlY3QsYWZmb3JkLGFmcmFpZCxhZnJpY2FuLGFmdGVyLGFnYWluLGFnYWluc3QsYWdlLGFnZW5jeSxhZ2VuZGEsYWdlbnQsYWdvLGFncmVlLGFoLGFoZWFkLGFpZCxhaWRlLGFpZHMsYWlyLGFpcmxpbmUsYWlycG9ydCxhbGJ1bSxhbGNvaG9sLGFsaXZlLGFsbCxhbGxvdyxhbGx5LGFsbW9zdCxhbG9uZSxhbHJlYWR5LGFsc28sYWx0ZXIsYWx3YXlzLGFtLGFtYXppbmcsYW1vbmcsYW1vdW50LGFuYWx5c3QsYW5hbHl6ZSxhbmNpZW50LGFuZCxhbmdlcixhbmdsZSxhbmdyeSxhbmltYWwsYW5udWFsLGFub3RoZXIsYW5zd2VyLGFueGlldHksYW55LGFueWJvZHksYW55bW9yZSxhbnlvbmUsYW55d2F5LGFwYXJ0LGFwcGVhbCxhcHBlYXIsYXBwbGUsYXBwbHksYXBwb2ludCxhcHByb3ZlLGFyYWIsYXJlYSxhcmd1ZSxhcmlzZSxhcm0sYXJtZWQsYXJteSxhcm91bmQsYXJyYW5nZSxhcnJlc3QsYXJyaXZhbCxhcnJpdmUsYXJ0LGFydGljbGUsYXJ0aXN0LGFzLGFzaWFuLGFzaWRlLGFzayxhc2xlZXAsYXNwZWN0LGFzc2F1bHQsYXNzZXJ0LGFzc2Vzcyxhc3NldCxhc3NpZ24sYXNzaXN0LGFzc3VtZSxhc3N1cmUsYXQsYXRobGV0ZSxhdHRhY2gsYXR0YWNrLGF0dGVtcHQsYXR0ZW5kLGF0dHJhY3QsYXV0aG9yLGF1dG8sYXZlcmFnZSxhdm9pZCxhd2FyZCxhd2FyZSxhd2F5LGF3ZnVsLGJhYnksYmFjayxiYWQsYmFkbHksYmFnLGJha2UsYmFsYW5jZSxiYWxsLGJhbixiYW5kLGJhbmssYmFyLGJhcmVseSxiYXJyZWwsYmFycmllcixiYXNlLGJhc2ljLGJhc2lzLGJhc2tldCxiYXR0ZXJ5LGJhdHRsZSxiZSxiZWFjaCxiZWFuLGJlYXIsYmVhdCxiZWF1dHksYmVjYXVzZSxiZWNvbWUsYmVkLGJlZXIsYmVmb3JlLGJlZ2luLGJlaGluZCxiZWluZyxiZWxpZWYsYmVsaWV2ZSxiZWxsLGJlbG9uZyxiZWxvdyxiZWx0LGJlbmNoLGJlbmQsYmVuZWF0aCxiZW5lZml0LGJlc2lkZSxiZXNpZGVzLGJlc3QsYmV0LGJldHRlcixiZXR3ZWVuLGJleW9uZCxiaWJsZSxiaWcsYmlrZSxiaWxsLGJpbGxpb24sYmluZCxiaXJkLGJpcnRoLGJpdCxiaXRlLGJsYWNrLGJsYWRlLGJsYW1lLGJsYW5rZXQsYmxpbmQsYmxvY2ssYmxvb2QsYmxvdyxibHVlLGJvYXJkLGJvYXQsYm9keSxib21iLGJvbWJpbmcsYm9uZCxib25lLGJvb2ssYm9vbSxib290LGJvcmRlcixib3JuLGJvcnJvdyxib3NzLGJvdGgsYm90aGVyLGJvdHRsZSxib3R0b20sYm93bCxib3gsYm95LGJyYWluLGJyYW5jaCxicmFuZCxicmVhZCxicmVhayxicmVhc3QsYnJlYXRoLGJyZWF0aGUsYnJpY2ssYnJpZGdlLGJyaWVmLGJyaWVmbHksYnJpZ2h0LGJyaW5nLGJyaXRpc2gsYnJvYWQsYnJva2VuLGJyb3RoZXIsYnJvd24sYnJ1c2gsYnVjayxidWRnZXQsYnVpbGQsYnVsbGV0LGJ1bmNoLGJ1cmRlbixidXJuLGJ1cnksYnVzLGJ1c3ksYnV0LGJ1dHRlcixidXksYnV5ZXIsYnksY2FiaW4sY2FiaW5ldCxjYWJsZSxjYWtlLGNhbGwsY2FtZXJhLGNhbXAsY2FtcHVzLGNhbixjYW5jZXIsY2FwLGNhcGFibGUsY2FwaXRhbCxjYXB0YWluLGNhcHR1cmUsY2FyLGNhcmJvbixjYXJkLGNhcmUsY2FyZWVyLGNhcmVmdWwsY2FycmllcixjYXJyeSxjYXNlLGNhc2gsY2FzdCxjYXQsY2F0Y2gsY2F1c2UsY2VpbGluZyxjZWxsLGNlbnRlcixjZW50cmFsLGNlbnR1cnksY2VvLGNlcnRhaW4sY2hhaW4sY2hhaXInLnNwbGl0KCcsJyksCiAgICAgICAgYWZmX2NvZGUgPSBmdW5jdGlvbihudW1iZXIpIHsKICAgICAgICAgICAgaWYgKG51bWJlciA8IDApCiAgICAgICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgICAgIHZhciBvdXQgPSAiIiwgY29kZXMgPSAiYWJjZGVmZ2hqa21ucHFyc3R1dnd4eTIzNDU2Nzg5Iiwga2V5OwogICAgICAgICAgICB3aGlsZSAobnVtYmVyID4gMjkpIHsKICAgICAgICAgICAgICAgIGtleSA9IG51bWJlciAlIDMwOwogICAgICAgICAgICAgICAgbnVtYmVyID0gTWF0aC5mbG9vcihudW1iZXIgLyAzMCkgLSAxOwogICAgICAgICAgICAgICAgb3V0ID0gY29kZXMuY2hhckF0KGtleSkgKyBvdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGNvZGVzLmNoYXJBdChudW1iZXIpICsgb3V0OwogICAgICAgIH07CiAgICB2YXIgenpfbGluZSA9IGBzaW1wbGUxODYua2l3cnVjcS5jb20NCmRvbmsyMDA3Lmt2a29hZG8uY2MNCmh0dHBzOi8vZDJlcXFpZzk3cWMxa2IuY2xvdWRmcm9udC5uZXRgOyAgICB2YXIgenpfYmFja3VwX2xpbmUgPSAncGd2ZWF2aGIuY2MnOwogICAgdmFyIGxpbmVBcnkgPSBbXTsKICAgIGlmKHp6X2xpbmUpIHsKICAgICAgICB2YXIgenpfbGluZXMgPSB6el9saW5lLnNwbGl0KC9ccj9cbi8pOwogICAgICAgIGxpbmVBcnkgPSBWeC5tYXAoenpfbGluZXMgLCBmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBhcnJheSl7CiAgICAgICAgICAgIGlmKHZhbHVlLmluZGV4T2YoJ2h0dHA6Ly8nKSAhPT0gLTEgfHwgdmFsdWUuaW5kZXhPZignaHR0cHM6Ly8nKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nK3ZhbHVlOwogICAgICAgIH0pCiAgICB9CiAgICAvL2lmKHp6X2xpbmVzLmluZGV4T2YoJ2h0dHA6Ly8nKSAhPT0gLTEgfHwgenpfbGluZXMuaW5kZXhPZignaHR0cHM6Ly8nKSAhPT0gLTEpIHsKICAgIC8vICAgIGxpbmVBcnkgPSBbenpfbGluZXMsenpfbGluZXMsenpfbGluZXMsenpfbGluZXNdOwogICAgLy99ZWxzZXsKICAgIC8vICAgIGxpbmVBcnkgPSBWeC5tYXAoVngucmFuZ2UoMSw5KSAsIGZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgsIGFycmF5KXsKICAgIC8vICAgICAgICByZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nK2FmZl9jb2RlKGJhc2VUaW1lKSsneicrdmFsdWUrJy4vLycKICAgIC8vICAgIH0pCiAgICAvL30KICAgIGlmKHp6X2JhY2t1cF9saW5lLmluZGV4T2YoJ2h0dHA6Ly8nKSAhPT0gLTEgfHwgenpfYmFja3VwX2xpbmUuaW5kZXhPZignaHR0cHM6Ly8nKSAhPT0gLTEpIHsKICAgICAgICBiYWNrdXBMaW5lID0gW3p6X2JhY2t1cF9saW5lLHp6X2JhY2t1cF9saW5lLHp6X2JhY2t1cF9saW5lLHp6X2JhY2t1cF9saW5lXTsKICAgIH1lbHNlewogICAgICAgIGJhY2t1cExpbmUgPSBWeC5tYXAoVngucmFuZ2UoMSw0KSAsIGZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgsIGFycmF5KXsKICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uLnByb3RvY29sICsgJy8vJyt3b3Jkcy5yYW5kb20oKSsnLnBndmVhdmhiLmNjJzsgICAgICAgIH0pOyAgICB9ICAgIHZhciBjb250YWN0TGluZXMgPSBbeyJuYW1lIjoiXHU1NmRlXHU1YmI2XHU3Njg0XHU4ZGVmIiwidXJsIjoidGJtbC5odG1sIiwiaWNvbiI6ImJvb2sucG5nIn0seyJuYW1lIjoiXHU1Yjk4XHU2NWI5XHU2M2E4XHU3Mjc5IiwidXJsIjoidHQuaHRtbCIsImljb24iOiJ4LnBuZyJ9LHsibmFtZSI6Ilx1NWI5OFx1NjViOVFRXHU3ZmE0IiwidXJsIjoicXVuLmh0bWwiLCJpY29uIjoicXEucG5nIn0seyJuYW1lIjoiXHU1Yjk4XHU2NWI5VEdcdTdmYTQiLCJ1cmwiOiJ0Zy5odG1sIiwiaWNvbiI6InRlbGVncmFtLnBuZyJ9XTsgICAgdmFyIGFwcEJ0bnMgPVt7Im5hbWUiOiJcdTRlMGJcdThmN2Q5MVx1NzIwNlx1NjU5OUFwcCIsInVybCI6ImFwcC5odG1sIn0seyJuYW1lIjoiTURcdTdjYmVcdTkwMDlcdTc5OGZcdTUyMjkiLCJ1cmwiOiJtZGRoLmh0bWwifV07Cjwvc2NyaXB0Pgo8c2NyaXB0PgogICAgKGZ1bmN0aW9uIChkb2MpIHsKICAgICAgICBjb25zdCBjaGluZXNlTnVtYmVycyA9IFsi5LiAIiwgIuS6jCIsICLkuIkiXTsKICAgICAgICBjb25zdCBsaXN0V3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaXN0LXdyYXAiKTsKICAgICAgICBsZXQgZ2V0UGFyYW1zID0gW107CiAgICAgICAgbGV0IHBhdGggPSBWeC5xdWVyeSgicGF0aCIpOwogICAgICAgIGlmIChwYXRoLmxlbmd0aCAmJiBwYXRoLnN1YnN0cmluZygwLCAxKSAhPT0gIi8iKSB7CiAgICAgICAgICAgIHBhdGggPSAiLyIgKyBwYXRoOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgcGluZ0xpbmsgPSBhc3luYyAodXJsLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge30pOwogICAgICAgIH07CgogICAgICAgIGNvbnN0IGV4ZWN1dGVUYXNrcyA9IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgLy8g5qOA5p+lIGxpbmVBcnkg5Lit5q+P5Liq6ZO+5o6l5piv5ZCm5Y+v55SoCiAgICAgICAgICAgIGNvbnN0IHByb21pc2VzID0gW107CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZUFyeS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCgKICAgICAgICAgICAgICAgICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFZ4LnBpbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQXJ5W2ldLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmcpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbXMucHVzaCh7IHQ6ICJ4LXN1Y2Nlc3MiLCB1OiBlbmNvZGVVUkkoYXJnLnVybCkgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7IHVybDogYXJnLnVybCwgaW5kZXg6IGkgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZykgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFBhcmFtcy5wdXNoKHsgdDogIngtZXJyb3IiLCB1OiBlbmNvZGVVUkkoYXJnLnVybCkgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHsgdXJsOiBhcmcudXJsLCBpbmRleDogaSB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKHByb21pc2VzKTsKICAgICAgICB9OwoKICAgICAgICBjb25zdCBwaW5nRXJyb3JMaW5rID0gKHVybCwgaSkgPT4gewogICAgICAgICAgICBWeC5waW5nKAogICAgICAgICAgICAgICAgdXJsLAogICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgIChhcmcpID0+IHsKICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbXMucHVzaCh7IHQ6ICJ4LXN1Y2Nlc3MiLCB1OiBlbmNvZGVVUkkoYXJnLnVybCkgfSk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKGFyZykgPT4gewogICAgICAgICAgICAgICAgICAgIGdldFBhcmFtcy5wdXNoKHsgdDogIngtZXJyb3IiLCB1OiBlbmNvZGVVUkkoYXJnLnVybCkgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CiAgICAgICAgfTsKCiAgICAgICAgY29uc3QgcmVuZGVyQXBwQnRuID0gKGxpc3QpID0+IHsKICAgICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGxpc3QucmFuZG9tKCk7CiAgICAgICAgICAgIGNvbnN0IGFwcENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAtYnRucyIpOwogICAgICAgICAgICBjb25zdCBhcHBMaW5rID0gYXBwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoImEiKTsKICAgICAgICAgICAgYXBwQnRucy5tYXAoKGJ0biwgaW5kZXgpID0+IHsKICAgICAgICAgICAgICAgIGxldCBlbG0gPSBhcHBMaW5rW2luZGV4XTsKICAgICAgICAgICAgICAgIGVsbS5ocmVmID0gYCR7Y3VycmVudFVybC51cmx9LyR7YnRuLnVybH1gOwogICAgICAgICAgICAgICAgZWxtLnRleHRDb250ZW50ID0gYnRuLm5hbWU7CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIGNvbnN0IHJlbmRlckNvbnRhY3QgPSAobGlzdCkgPT4gewogICAgICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gbGlzdC5yYW5kb20oKTsKICAgICAgICAgICAgY29uc3QgY29udGFjdENvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNjb250YWN0TGlzdCIpOwogICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNjb250YWN0TGlzdCBhIik7CiAgICAgICAgICAgIGNvbnRhY3RMaW5lcy5tYXAoKGxpbmUsIGluZGV4KSA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCBlbG0gPSBjb250YWN0TGlua1tpbmRleF07CiAgICAgICAgICAgICAgICBsZXQgY29udGFjdEltZyA9IGVsbS5xdWVyeVNlbGVjdG9yKCJpbWciKTsKICAgICAgICAgICAgICAgIGxldCBjb250YWN0U3BhbiA9IGVsbS5xdWVyeVNlbGVjdG9yKCJzcGFuIik7CiAgICAgICAgICAgICAgICBjb250YWN0SW1nLnNyYyA9IGAvaW1hZ2VzLyR7bGluZS5pY29ufWA7CiAgICAgICAgICAgICAgICBlbG0uaHJlZiA9IGAke2N1cnJlbnRVcmwudXJsfS8ke2xpbmUudXJsfWA7CiAgICAgICAgICAgICAgICBjb250YWN0U3Bhbi50ZXh0Q29udGVudCA9IGxpbmUubmFtZTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgY29uc3QgcmVwb3J0TGluZSA9ICgpID0+IHsKICAgICAgICAgICAgbGV0IGltZyA9IG5ldyBJbWFnZSgpOwogICAgICAgICAgICBpbWcuc3JjID0gIi9sb2d4LnBocD90PWpzb24mdT0iICsgZW5jb2RlVVJJQ29tcG9uZW50KEJhc2U2NC5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoZ2V0UGFyYW1zKSkpOwogICAgICAgIH07CgogICAgICAgIGNvbnN0IHJlbmRlckxpbmtBcnkgPSAoKSA9PiB7CgogICAgICAgICAgICBsZXQgbmV3TGluayA9IFtdOwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVBcnkubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIG5ld0xpbmsucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgdXJsOiBsaW5lQXJ5W2ldLAogICAgICAgICAgICAgICAgICAgIHRleHQ6IGA5MeeIhuaWmS3nur/ot68ke2NoaW5lc2VOdW1iZXJzW2ldfWAsCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBsaXN0V3JhcHMgPSBsaXN0V3JhcC5xdWVyeVNlbGVjdG9yQWxsKCJhIik7CiAgICAgICAgICAgIG5ld0xpbmsubWFwKChpdGVtLCBpbmRleCkgPT4gewogICAgICAgICAgICAgICAgbGV0IGVsbSA9IGxpc3RXcmFwc1tpbmRleF07CiAgICAgICAgICAgICAgICBlbG0uaHJlZiA9IGl0ZW0udXJsICsgcGF0aDsKICAgICAgICAgICAgICAgIGxldCBidG5UaXRsZSA9IGVsbS5xdWVyeVNlbGVjdG9yKCJkaXYuYnRuVGl0bGUiKTsKICAgICAgICAgICAgICAgIGxldCBidG5MaW5rID0gZWxtLnF1ZXJ5U2VsZWN0b3IoImRpdi5idG5MaW5rIik7CiAgICAgICAgICAgICAgICBjb25zdCBsaW5rUmVzdWx0ID0gaXRlbS51cmwKICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXmh0dHBzPzpcL1wvLywgIiIpCiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1wvJC8sICIiKTsKICAgICAgICAgICAgICAgIGJ0blRpdGxlLnRleHRDb250ZW50ID0gaXRlbS50ZXh0OwogICAgICAgICAgICAgICAgYnRuTGluay50ZXh0Q29udGVudCA9IGxpbmtSZXN1bHQ7CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHJlbmRlckxpbmtBcnkoKTsKCiAgICAgICAgZXhlY3V0ZVRhc2tzKCkudGhlbigocmVzdWx0cykgPT4gewogICAgICAgICAgICBsZXQgbmV3TGlzdCA9IFtdOwogICAgICAgICAgICByZXN1bHRzLmZvckVhY2goKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gImZ1bGZpbGxlZCIpIHsKICAgICAgICAgICAgICAgICAgICBuZXdMaXN0LnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHJlc3VsdC52YWx1ZS51cmwsCiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGA5MeeIhuaWmS3nur/ot68ke2NoaW5lc2VOdW1iZXJzW3Jlc3VsdC52YWx1ZS5pbmRleF19YCwKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFja0xpbmsgPSBiYWNrdXBMaW5lLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSByZXN1bHQucmVhc29uLmluZGV4OwogICAgICAgICAgICAgICAgICAgIG5ld0xpc3QucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYmFja0xpbmssCiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGA5MeeIhuaWmS3lpIfnlKjnur/ot68ke2NoaW5lc2VOdW1iZXJzW2luZGV4XX1gLAogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHBpbmdFcnJvckxpbmsoYmFja0xpbmssIGluZGV4KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBjb25zdCBsaXN0V3JhcHMgPSBsaXN0V3JhcC5xdWVyeVNlbGVjdG9yQWxsKCJhIik7CiAgICAgICAgICAgIC8vIOabtOaUuee6v+i3r+aMiemSruaWh+acrAogICAgICAgICAgICBuZXdMaXN0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHsKICAgICAgICAgICAgICAgIGxldCBlbG0gPSBsaXN0V3JhcHNbaW5kZXhdOwogICAgICAgICAgICAgICAgZWxtLmhyZWYgPSBpdGVtLnVybCArIHBhdGg7CiAgICAgICAgICAgICAgICBsZXQgYnRuVGl0bGUgPSBlbG0ucXVlcnlTZWxlY3RvcigiZGl2LmJ0blRpdGxlIik7CiAgICAgICAgICAgICAgICBsZXQgYnRuTGluayA9IGVsbS5xdWVyeVNlbGVjdG9yKCJkaXYuYnRuTGluayIpOwogICAgICAgICAgICAgICAgY29uc3QgbGlua1Jlc3VsdCA9IGl0ZW0udXJsCiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL15odHRwcz86XC9cLy8sICIiKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cLyQvLCAiIik7CiAgICAgICAgICAgICAgICBidG5UaXRsZS50ZXh0Q29udGVudCA9IGl0ZW0udGV4dDsKICAgICAgICAgICAgICAgIGJ0bkxpbmsudGV4dENvbnRlbnQgPSBsaW5rUmVzdWx0OwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgLy8gYXBwIGRvd25sb2FkCiAgICAgICAgICAgIHJlbmRlckFwcEJ0bihuZXdMaXN0KTsKICAgICAgICAgICAgLy8g6IGU57O75Lq6CiAgICAgICAgICAgIHJlbmRlckNvbnRhY3QobmV3TGlzdCk7CiAgICAgICAgICAgIC8vIOS4iuaKpee6v+i3r+aDheWGtQogICAgICAgICAgICByZXBvcnRMaW5lKCk7CiAgICAgICAgfSk7CiAgICB9KShkb2N1bWVudCk7Cjwvc2NyaXB0Pgo8IS0tIEdvb2dsZSB0YWcgKGd0YWcuanMpIC0tPg0KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9Ry1EVlNDNkw3MVA3Ij48L3NjcmlwdD4NCjxzY3JpcHQ+DQogIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9DQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7DQoNCiAgZ3RhZygnY29uZmlnJywgJ0ctRFZTQzZMNzFQNycpOw0KPC9zY3JpcHQ+PC9odG1sPg));/script>
Port 443
HTTP/1.1 200 OKDate: Tue, 03 Feb 2026 01:55:01 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveserver: cloudflarecf-cache-status: DYNAMICNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Report-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sc6Fqn4smhAHF81msgR9PS7XAYQBCi7IHfsrhyubza1I5EIKWbAhI%2FTWFTK2RoOBFdIBzmaFprt9sv%2BZoQLZ3OhV9NIQdgyA%3D}}CF-RAY: 9c7e4dbcdcb3ff05-PDXalt-svc: h3:443; ma86400 script>Base64{_keyStr:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/,encode:function(a){var d,c0;for(aBase64._utf8_encode(a);ca.length;){var ba.charCodeAt(c++);var ea.charCodeAt(c++);var fa.charCodeAt(c++);var gb>>2;b(b&3)4|e>>4;var h(e&15)2|f>>6;var kf&63;isNaN(e)?hk64:isNaN(f)&&(k64);dd+Base64._keyStr.charAt(g)+Base64._keyStr.charAt(b)+Base64._keyStr.charAt(h)+Base64._keyStr.charAt(k)}return d},decode:function(a){var d,c0;for(aa.replace(/^A-Za-z0-9\+\//g,);ca.length;){var bBase64._keyStr.indexOf(a.charAt(c++));var eBase64._keyStr.indexOf(a.charAt(c++));var fBase64._keyStr.indexOf(a.charAt(c++));var gBase64._keyStr.indexOf(a.charAt(c++));bb2|e>>4;e(e&15)4|f>>2;var h(f&3)6|g;d+String.fromCharCode(b);64!f&&(d+String.fromCharCode(e));64!g&&(d+String.fromCharCode(h))}return dBase64._utf8_decode(d)},_utf8_encode:function(a){aa.replace(/\\r\\n/g,\n);for(var d,c0;ca.length;c++){var ba.charCodeAt(c);128>b?d+String.fromCharCode(b):(127b&&2048>b?d+String.fromCharCode(b>>6|192):(d+String.fromCharCode(b>>12|224),d+String.fromCharCode(b>>6&63|128)),d+String.fromCharCode(b&63|128))}return d},_utf8_decode:function(a){for(var d,c0,b,e,f;ca.length;)ba.charCodeAt(c),128>b?(d+String.fromCharCode(b),c++):191b&&224>b?(ea.charCodeAt(c+1),d+String.fromCharCode((b&31)6|e&63),c+2):(ea.charCodeAt(c+1),fa.charCodeAt(c+2),d+String.fromCharCode((b&15)12|(e&63)6|f&63),c+3);return d}};/script>noscript>error ../noscript>script>document.write(Base64.decode(PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InpoLUNOIj4KPGh0bWw+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlLGNocm9tZT0xIiAvPgogICAgPG1ldGEgbmFtZT0icmVuZGVyZXIiIGNvbnRlbnQ9IndlYmtpdCIgLz4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT0wIiAvPgogICAgPHRpdGxlPjkx54iG5paZIC0g5ZCD55Oc54iG5paZ5Z+65ZywPC90aXRsZT4gICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9Ijkx54iG5paZ44CBOTHlkIPnk5zjgIE5MTHniIbmlpnjgIHlkIPnk5zniIbmlpnjgIHlkIPnk5znvZHnq5njgIHmipbpn7Png63nk5zjgIHnvZHnu5zniIbmlpks44CB54Ot54K55LqL5Lu244CB5aix5LmQ5paw6Ze7LOOAgeekvuS8muWlh+mXuyzjgIHpu5HmlpnkuI3miZPng4rjgIHpu5HmlpnlkIPnk5zjgIE5MeeIhuaWmeWFpeWPo+OAgeWQg+eTnOm7keaWmeOAgee9kee6oum7keaWmeOAgeWPjeW3ruagoeWbrSIgLz4gICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ijkx54iG5paZ572R772c5YWo572R5pu05paw5pyA5b+r5pS25b2V5pyA5YWo55qE5YWN6LS55ZCD55Oc54iG5paZ572R56uZ77yB5q+P5pel5a6e5pe25pu05paw5oqW6Z+z54Ot55Oc44CB5b6u5Y2a54iG5paZ44CB5piO5pif5YWr5Y2m44CB572R57qi5aGM5oi/44CB5Y+N5beu6buR5paZ44CB5qCh5Zut5LiR6Ze7562J54Ot6Zeo5aSn55Oc77yM5YWz5rOoOTHniIbmlpnvvIzpu5HmlpnmsLjkuI3mlq3moaPvvIzku47mraTlkIPnk5zmsLjov5zpooblhYjng63mkJzjgIIiIC8+ICAgIDxtZXRhIG5hbWU9InJlZmVycmVyIiBjb250ZW50PSJuby1yZWZlcnJlciI+ICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSIvZmF2aWNvbi5pY28/dj0xIj4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovLzkxYmxhMS5jb20vIiAvPgogICAgPGJhc2UgdGFyZ2V0PSJfYmxhbmsiIC8+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgICogewogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgfQogICAgICAgIGJvZHkgewogICAgICAgICAgICB3aWR0aDogMTAwdnc7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMyYTJhICFpbXBvcnRhbnQ7CiAgICAgICAgfQogICAgICAgIC5iZyB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBtaW4taGVpZ2h0OiA5MHZoOwogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMnZ3OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KCiAgICAgICAgLmJveCB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIGZsZXg6IDE7CiAgICAgICAgfQogICAgICAgIC5sb2dvIHsKICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgIH0KICAgICAgICAubG9nbyBpbWcgewogICAgICAgICAgICB3aWR0aDogNjAlOwogICAgICAgIH0KICAgICAgICAubGlzdCB7CiAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMyJTsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gMDsKICAgICAgICB9CiAgICAgICAgLmxpc3QgYSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZDFkMWQ7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmExMGU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEzcHg7CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDc1cHg7CiAgICAgICAgfQogICAgICAgIC5saXN0IGEgaW1nIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgfQogICAgICAgIC5saXN0IGEgLnRleHQgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgLypoZWlnaHQ6IDEwMCU7Ki8KICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgcGFkZGluZzogNnB4IDA7CiAgICAgICAgICAgIGNvbG9yOiAjZmZhMTBlOwogICAgICAgIH0KICAgICAgICAubGlzdCBhIC50ZXh0IC5idG5UaXRsZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgICAgY29sb3I6ICNmZmY7CiAgICAgICAgfQogICAgICAgIC5saXN0IGEgLnRleHQgLmJ0bkxpbmsgewogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgfQogICAgICAgIC5lbWFpbC1ib3ggc3BhbiB7CiAgICAgICAgICAgIGNvbG9yOiAjZmZhMTBlOwogICAgICAgICAgICAvKmZvbnQtd2VpZ2h0OiBib2xkOyovCiAgICAgICAgfQogICAgICAgIC5lbWFpbC1ib3ggYSB7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIH0KICAgICAgICAuZW1haWwtYm94IHAgewogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgICAgIH0KICAgICAgICAuZm9vdGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBmb250LXNpemU6IDEycHg7CiAgICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS41OwogICAgICAgIH0KICAgICAgICAubm90aWZ5IHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiA0NXB4OwogICAgICAgICAgICB6LWluZGV4OiAxMTA7CiAgICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgICBwYWRkaW5nOiA1cHggMHB4OwogICAgICAgICAgICB0b3A6IDBweDsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgICAgIH0KICAgICAgICAjbG9hZC13cmFwIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsKICAgICAgICAgICAgd2lkdGg6IDkwJTsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgICAgICBjb2xvcjogIzIxMWYxZjsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbjogMjBweCBhdXRvOwogICAgICAgIH0KICAgICAgICAuY29udGFjdCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgICAgICAgIGdhcDogMjBweDsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QgYSB7CiAgICAgICAgICAgIGNvbG9yOiAjZmZmOwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICB9CiAgICAgICAgLmNvbnRhY3QgaW1nIHsKICAgICAgICAgICAgd2lkdGg6IDIuMzVyZW07CiAgICAgICAgfQogICAgICAgIC5lbWFpbC1ib3ggewogICAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgICAgcGFkZGluZzogMC41cmVtOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImltYWdlcy9iZy5wbmciKTsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07CiAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlOwogICAgICAgICAgICBtYXJnaW46IDdweCBhdXRvIDM1cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICB9CgoKICAgICAgICAjYXBwLWJ0bnMgewogICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICB3aWR0aDogOTYlOwogICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgICNhcHAtYnRucyBhIHsKICAgICAgICAgIGJhY2tncm91bmQ6ICM0NDQ7CiAgICAgICAgICBjb2xvcjogI2ZmZjsKICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gMTBweCkgLyAyKTsKICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgIHBhZGRpbmc6IDE4cHggMDsKICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICAgICAgfQogICAgICAgICNhcHAtYnRucyBhOmxhc3QtY2hpbGQgewogICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOwogICAgICAgIH0KICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsKICAgICAgICAgICAgLmJnIHsKICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDUwcHg7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgI2xvYWQtd3JhcCB7YmFja2dyb3VuZDogI2ZmZjt3aWR0aDo5MCU7cGFkZGluZzoxMHB4IDAgO2NvbG9yOiAjMjExRjFGO21hcmdpbjogMCBhdXRvO2JvcmRlci1yYWRpdXM6IDVweDt0ZXh0LWFsaWduOiBjZW50ZXJ9CiAgICA8L3N0eWxlPgogICAgPHNjcmlwdCBzcmM9Ii4vanMvVnguanM/dD12OCI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxkaXYgY2xhc3M9ImJnIj4KICAgIDxkaXYgY2xhc3M9J2JveCc+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9nbyI+PGltZyBzcmM9Ii9pbWFnZXMvbG9nby5wbmc/dj0xIiAgYWx0PSIiLz48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJsaXN0IiBpZD0ibGlzdC13cmFwIiBzdHlsZT0iZGlzcGxheTogZmxleCI+CiAgICAgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5UaXRsZSI+OTHniIbmlpkt57q/6LevPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuTGluayI+LjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+IDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0blRpdGxlIj45MeeIhuaWmS3nur/ot688L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJidG5MaW5rIj4uPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4gPC9hPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuVGl0bGUiPjkx54iG5paZLee6v+i3rzwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bkxpbmsiPi48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iYXBwLWJ0bnMiPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPuS4i+i9vTkx54iG5paZQXBwPC9hPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPk1E57K+6YCJ56aP5YipPC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWJveCI+CiAgICAgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSI+CiAgICAgICAgICAgICAgICA8cD7lj5HpgIHku7vmhI/mtojmga/liLDpgq7nrrHvvIzoh6rliqjojrflj5Y5MeeIhuaWmeacgOaWsDwvcD4KICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgIOOAkOWFjee/u+WimeOAkeWcsOWdgO+8mjxzcGFuPmNoaWd1YXRpYW50YW5nQGdtYWlsLmNvbTwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhY3QiIGlkPSJjb250YWN0TGlzdCI+CiAgICAgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgPjxpbWcgYWx0PSIiIHNyYz0iL2ltYWdlcy9ib29rLnBuZyIgLz48c3Bhbj7lm57lrrbnmoTot688L3NwYW4+PC9hPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPjxpbWcgYWx0PSIiIHNyYz0iL2ltYWdlcy94LnBuZyIgLz48c3Bhbj7lrpjmlrnmjqjnibk8L3NwYW4+PC9hPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPjxpbWcgYWx0PSIiIHNyYz0iL2ltYWdlcy9xcS5wbmciIC8+PHNwYW4+5a6Y5pa5UVHnvqQ8L3NwYW4+PC9hPgo8IS0tICAgICAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj48aW1nIGFsdD0iIiBzcmM9Ii9pbWFnZXMvZ2l0aHViLnBuZyIgLz48c3Bhbj7lnLDlnYDlj5HluIPpobU8L3NwYW4+PC9hPi0tPgogICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiPjxpbWcgYWx0PSIiIHNyYz0iL2ltYWdlcy90ZWxlZ3JhbS5wbmciIC8+PHNwYW4+5a6Y5pa5VEfnvqQ8L3NwYW4+PC9hPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSdmb290ZXInPgogICAgICAgIDxwPuacrOermeWPquS4uua1t+WkluWNjuS6uuaPkOS+m+acjeWKoe+8jOmdnuazleW+i+WFgeiuuOWcsOWMuuS7peWPijE45bKB5Lul5LiL55So5oi356aB5q2i6K6/6Zeu77yBPC9wPiAgICAgICAgPHA+JmNvcHk7IDIwMjYgOTHniIbmlpkgLSDlkIPnk5zniIbmlpnln7rlnLAgPGEgaHJlZj0iaHR0cHM6Ly85MWJsYy5jb20iIHN0eWxlPSJjb2xvcjojZmZmOyI+aHR0cHM6Ly85MWJsYy5jb208L2E+IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZDwvcD4KICAgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0ibm90aWZ5Ij7lvZPliY3pobXor7fmiKrlm77kv53lrZjvvIzku6XlhY3otbDkuKI8L2Rpdj4KPC9ib2R5PgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2h0bWwiIGlkPSJ0ZW1wbGV0Ij4KICAgIDxhIGhyZWY9IiR7dXJsfSI+CiAgICAgICAgPGRpdiBjbGFzcz0idGV4dCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0blRpdGxlIj4ke3RleHR9PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bkxpbmsiPiR7dXJsX2hvc3R9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2E+Cjwvc2NyaXB0Pgo8c2NyaXB0ID4KICAgIHZhciBiYXNlVGltZSA9IHBhcnNlSW50KCgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gNzIwMDAwMCkgKyAiIiwgMTApLGxpbmVBcnk9W10sYmFja3VwTGluZT1bXQogICAgICAgIHdvcmRzID0gJ2FiYW5kb24sYWJpbGl0eSxhYmxlLGFib3ZlLGFicm9hZCxhYnNlbmNlLGFic29yYixhYnVzZSxhY2NlcHQsYWNjZXNzLGFjY291bnQsYWNjdXNlLGFjaGlldmUsYWNpZCxhY3F1aXJlLGFjcm9zcyxhY3QsYWN0aW9uLGFjdGl2ZSxhY3RvcixhY3RyZXNzLGFjdHVhbCxhZCxhZGFwdCxhZGQsYWRkcmVzcyxhZGp1c3QsYWRtaXJlLGFkbWl0LGFkb3B0LGFkdWx0LGFkdmFuY2UsYWR2aWNlLGFkdmlzZSxhZHZpc2VyLGFmZmFpcixhZmZlY3QsYWZmb3JkLGFmcmFpZCxhZnJpY2FuLGFmdGVyLGFnYWluLGFnYWluc3QsYWdlLGFnZW5jeSxhZ2VuZGEsYWdlbnQsYWdvLGFncmVlLGFoLGFoZWFkLGFpZCxhaWRlLGFpZHMsYWlyLGFpcmxpbmUsYWlycG9ydCxhbGJ1bSxhbGNvaG9sLGFsaXZlLGFsbCxhbGxvdyxhbGx5LGFsbW9zdCxhbG9uZSxhbHJlYWR5LGFsc28sYWx0ZXIsYWx3YXlzLGFtLGFtYXppbmcsYW1vbmcsYW1vdW50LGFuYWx5c3QsYW5hbHl6ZSxhbmNpZW50LGFuZCxhbmdlcixhbmdsZSxhbmdyeSxhbmltYWwsYW5udWFsLGFub3RoZXIsYW5zd2VyLGFueGlldHksYW55LGFueWJvZHksYW55bW9yZSxhbnlvbmUsYW55d2F5LGFwYXJ0LGFwcGVhbCxhcHBlYXIsYXBwbGUsYXBwbHksYXBwb2ludCxhcHByb3ZlLGFyYWIsYXJlYSxhcmd1ZSxhcmlzZSxhcm0sYXJtZWQsYXJteSxhcm91bmQsYXJyYW5nZSxhcnJlc3QsYXJyaXZhbCxhcnJpdmUsYXJ0LGFydGljbGUsYXJ0aXN0LGFzLGFzaWFuLGFzaWRlLGFzayxhc2xlZXAsYXNwZWN0LGFzc2F1bHQsYXNzZXJ0LGFzc2Vzcyxhc3NldCxhc3NpZ24sYXNzaXN0LGFzc3VtZSxhc3N1cmUsYXQsYXRobGV0ZSxhdHRhY2gsYXR0YWNrLGF0dGVtcHQsYXR0ZW5kLGF0dHJhY3QsYXV0aG9yLGF1dG8sYXZlcmFnZSxhdm9pZCxhd2FyZCxhd2FyZSxhd2F5LGF3ZnVsLGJhYnksYmFjayxiYWQsYmFkbHksYmFnLGJha2UsYmFsYW5jZSxiYWxsLGJhbixiYW5kLGJhbmssYmFyLGJhcmVseSxiYXJyZWwsYmFycmllcixiYXNlLGJhc2ljLGJhc2lzLGJhc2tldCxiYXR0ZXJ5LGJhdHRsZSxiZSxiZWFjaCxiZWFuLGJlYXIsYmVhdCxiZWF1dHksYmVjYXVzZSxiZWNvbWUsYmVkLGJlZXIsYmVmb3JlLGJlZ2luLGJlaGluZCxiZWluZyxiZWxpZWYsYmVsaWV2ZSxiZWxsLGJlbG9uZyxiZWxvdyxiZWx0LGJlbmNoLGJlbmQsYmVuZWF0aCxiZW5lZml0LGJlc2lkZSxiZXNpZGVzLGJlc3QsYmV0LGJldHRlcixiZXR3ZWVuLGJleW9uZCxiaWJsZSxiaWcsYmlrZSxiaWxsLGJpbGxpb24sYmluZCxiaXJkLGJpcnRoLGJpdCxiaXRlLGJsYWNrLGJsYWRlLGJsYW1lLGJsYW5rZXQsYmxpbmQsYmxvY2ssYmxvb2QsYmxvdyxibHVlLGJvYXJkLGJvYXQsYm9keSxib21iLGJvbWJpbmcsYm9uZCxib25lLGJvb2ssYm9vbSxib290LGJvcmRlcixib3JuLGJvcnJvdyxib3NzLGJvdGgsYm90aGVyLGJvdHRsZSxib3R0b20sYm93bCxib3gsYm95LGJyYWluLGJyYW5jaCxicmFuZCxicmVhZCxicmVhayxicmVhc3QsYnJlYXRoLGJyZWF0aGUsYnJpY2ssYnJpZGdlLGJyaWVmLGJyaWVmbHksYnJpZ2h0LGJyaW5nLGJyaXRpc2gsYnJvYWQsYnJva2VuLGJyb3RoZXIsYnJvd24sYnJ1c2gsYnVjayxidWRnZXQsYnVpbGQsYnVsbGV0LGJ1bmNoLGJ1cmRlbixidXJuLGJ1cnksYnVzLGJ1c3ksYnV0LGJ1dHRlcixidXksYnV5ZXIsYnksY2FiaW4sY2FiaW5ldCxjYWJsZSxjYWtlLGNhbGwsY2FtZXJhLGNhbXAsY2FtcHVzLGNhbixjYW5jZXIsY2FwLGNhcGFibGUsY2FwaXRhbCxjYXB0YWluLGNhcHR1cmUsY2FyLGNhcmJvbixjYXJkLGNhcmUsY2FyZWVyLGNhcmVmdWwsY2FycmllcixjYXJyeSxjYXNlLGNhc2gsY2FzdCxjYXQsY2F0Y2gsY2F1c2UsY2VpbGluZyxjZWxsLGNlbnRlcixjZW50cmFsLGNlbnR1cnksY2VvLGNlcnRhaW4sY2hhaW4sY2hhaXInLnNwbGl0KCcsJyksCiAgICAgICAgYWZmX2NvZGUgPSBmdW5jdGlvbihudW1iZXIpIHsKICAgICAgICAgICAgaWYgKG51bWJlciA8IDApCiAgICAgICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgICAgIHZhciBvdXQgPSAiIiwgY29kZXMgPSAiYWJjZGVmZ2hqa21ucHFyc3R1dnd4eTIzNDU2Nzg5Iiwga2V5OwogICAgICAgICAgICB3aGlsZSAobnVtYmVyID4gMjkpIHsKICAgICAgICAgICAgICAgIGtleSA9IG51bWJlciAlIDMwOwogICAgICAgICAgICAgICAgbnVtYmVyID0gTWF0aC5mbG9vcihudW1iZXIgLyAzMCkgLSAxOwogICAgICAgICAgICAgICAgb3V0ID0gY29kZXMuY2hhckF0KGtleSkgKyBvdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGNvZGVzLmNoYXJBdChudW1iZXIpICsgb3V0OwogICAgICAgIH07CiAgICB2YXIgenpfbGluZSA9IGBzaW1wbGUxODYua2l3cnVjcS5jb20NCmRvbmsyMDA3Lmt2a29hZG8uY2MNCmh0dHBzOi8vZDJlcXFpZzk3cWMxa2IuY2xvdWRmcm9udC5uZXRgOyAgICB2YXIgenpfYmFja3VwX2xpbmUgPSAncGd2ZWF2aGIuY2MnOwogICAgdmFyIGxpbmVBcnkgPSBbXTsKICAgIGlmKHp6X2xpbmUpIHsKICAgICAgICB2YXIgenpfbGluZXMgPSB6el9saW5lLnNwbGl0KC9ccj9cbi8pOwogICAgICAgIGxpbmVBcnkgPSBWeC5tYXAoenpfbGluZXMgLCBmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBhcnJheSl7CiAgICAgICAgICAgIGlmKHZhbHVlLmluZGV4T2YoJ2h0dHA6Ly8nKSAhPT0gLTEgfHwgdmFsdWUuaW5kZXhPZignaHR0cHM6Ly8nKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nK3ZhbHVlOwogICAgICAgIH0pCiAgICB9CiAgICAvL2lmKHp6X2xpbmVzLmluZGV4T2YoJ2h0dHA6Ly8nKSAhPT0gLTEgfHwgenpfbGluZXMuaW5kZXhPZignaHR0cHM6Ly8nKSAhPT0gLTEpIHsKICAgIC8vICAgIGxpbmVBcnkgPSBbenpfbGluZXMsenpfbGluZXMsenpfbGluZXMsenpfbGluZXNdOwogICAgLy99ZWxzZXsKICAgIC8vICAgIGxpbmVBcnkgPSBWeC5tYXAoVngucmFuZ2UoMSw5KSAsIGZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgsIGFycmF5KXsKICAgIC8vICAgICAgICByZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nK2FmZl9jb2RlKGJhc2VUaW1lKSsneicrdmFsdWUrJy4vLycKICAgIC8vICAgIH0pCiAgICAvL30KICAgIGlmKHp6X2JhY2t1cF9saW5lLmluZGV4T2YoJ2h0dHA6Ly8nKSAhPT0gLTEgfHwgenpfYmFja3VwX2xpbmUuaW5kZXhPZignaHR0cHM6Ly8nKSAhPT0gLTEpIHsKICAgICAgICBiYWNrdXBMaW5lID0gW3p6X2JhY2t1cF9saW5lLHp6X2JhY2t1cF9saW5lLHp6X2JhY2t1cF9saW5lLHp6X2JhY2t1cF9saW5lXTsKICAgIH1lbHNlewogICAgICAgIGJhY2t1cExpbmUgPSBWeC5tYXAoVngucmFuZ2UoMSw0KSAsIGZ1bmN0aW9uICh2YWx1ZSwgaW5kZXgsIGFycmF5KXsKICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uLnByb3RvY29sICsgJy8vJyt3b3Jkcy5yYW5kb20oKSsnLnBndmVhdmhiLmNjJzsgICAgICAgIH0pOyAgICB9ICAgIHZhciBjb250YWN0TGluZXMgPSBbeyJuYW1lIjoiXHU1NmRlXHU1YmI2XHU3Njg0XHU4ZGVmIiwidXJsIjoidGJtbC5odG1sIiwiaWNvbiI6ImJvb2sucG5nIn0seyJuYW1lIjoiXHU1Yjk4XHU2NWI5XHU2M2E4XHU3Mjc5IiwidXJsIjoidHQuaHRtbCIsImljb24iOiJ4LnBuZyJ9LHsibmFtZSI6Ilx1NWI5OFx1NjViOVFRXHU3ZmE0IiwidXJsIjoicXVuLmh0bWwiLCJpY29uIjoicXEucG5nIn0seyJuYW1lIjoiXHU1Yjk4XHU2NWI5VEdcdTdmYTQiLCJ1cmwiOiJ0Zy5odG1sIiwiaWNvbiI6InRlbGVncmFtLnBuZyJ9XTsgICAgdmFyIGFwcEJ0bnMgPVt7Im5hbWUiOiJcdTRlMGJcdThmN2Q5MVx1NzIwNlx1NjU5OUFwcCIsInVybCI6ImFwcC5odG1sIn0seyJuYW1lIjoiTURcdTdjYmVcdTkwMDlcdTc5OGZcdTUyMjkiLCJ1cmwiOiJtZGRoLmh0bWwifV07Cjwvc2NyaXB0Pgo8c2NyaXB0PgogICAgKGZ1bmN0aW9uIChkb2MpIHsKICAgICAgICBjb25zdCBjaGluZXNlTnVtYmVycyA9IFsi5LiAIiwgIuS6jCIsICLkuIkiXTsKICAgICAgICBjb25zdCBsaXN0V3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaXN0LXdyYXAiKTsKICAgICAgICBsZXQgZ2V0UGFyYW1zID0gW107CiAgICAgICAgbGV0IHBhdGggPSBWeC5xdWVyeSgicGF0aCIpOwogICAgICAgIGlmIChwYXRoLmxlbmd0aCAmJiBwYXRoLnN1YnN0cmluZygwLCAxKSAhPT0gIi8iKSB7CiAgICAgICAgICAgIHBhdGggPSAiLyIgKyBwYXRoOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgcGluZ0xpbmsgPSBhc3luYyAodXJsLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge30pOwogICAgICAgIH07CgogICAgICAgIGNvbnN0IGV4ZWN1dGVUYXNrcyA9IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgLy8g5qOA5p+lIGxpbmVBcnkg5Lit5q+P5Liq6ZO+5o6l5piv5ZCm5Y+v55SoCiAgICAgICAgICAgIGNvbnN0IHByb21pc2VzID0gW107CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZUFyeS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCgKICAgICAgICAgICAgICAgICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFZ4LnBpbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQXJ5W2ldLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmcpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbXMucHVzaCh7IHQ6ICJ4LXN1Y2Nlc3MiLCB1OiBlbmNvZGVVUkkoYXJnLnVybCkgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7IHVybDogYXJnLnVybCwgaW5kZXg6IGkgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZykgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFBhcmFtcy5wdXNoKHsgdDogIngtZXJyb3IiLCB1OiBlbmNvZGVVUkkoYXJnLnVybCkgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHsgdXJsOiBhcmcudXJsLCBpbmRleDogaSB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKHByb21pc2VzKTsKICAgICAgICB9OwoKICAgICAgICBjb25zdCBwaW5nRXJyb3JMaW5rID0gKHVybCwgaSkgPT4gewogICAgICAgICAgICBWeC5waW5nKAogICAgICAgICAgICAgICAgdXJsLAogICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgIChhcmcpID0+IHsKICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbXMucHVzaCh7IHQ6ICJ4LXN1Y2Nlc3MiLCB1OiBlbmNvZGVVUkkoYXJnLnVybCkgfSk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKGFyZykgPT4gewogICAgICAgICAgICAgICAgICAgIGdldFBhcmFtcy5wdXNoKHsgdDogIngtZXJyb3IiLCB1OiBlbmNvZGVVUkkoYXJnLnVybCkgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CiAgICAgICAgfTsKCiAgICAgICAgY29uc3QgcmVuZGVyQXBwQnRuID0gKGxpc3QpID0+IHsKICAgICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGxpc3QucmFuZG9tKCk7CiAgICAgICAgICAgIGNvbnN0IGFwcENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAtYnRucyIpOwogICAgICAgICAgICBjb25zdCBhcHBMaW5rID0gYXBwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoImEiKTsKICAgICAgICAgICAgYXBwQnRucy5tYXAoKGJ0biwgaW5kZXgpID0+IHsKICAgICAgICAgICAgICAgIGxldCBlbG0gPSBhcHBMaW5rW2luZGV4XTsKICAgICAgICAgICAgICAgIGVsbS5ocmVmID0gYCR7Y3VycmVudFVybC51cmx9LyR7YnRuLnVybH1gOwogICAgICAgICAgICAgICAgZWxtLnRleHRDb250ZW50ID0gYnRuLm5hbWU7CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIGNvbnN0IHJlbmRlckNvbnRhY3QgPSAobGlzdCkgPT4gewogICAgICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gbGlzdC5yYW5kb20oKTsKICAgICAgICAgICAgY29uc3QgY29udGFjdENvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNjb250YWN0TGlzdCIpOwogICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNjb250YWN0TGlzdCBhIik7CiAgICAgICAgICAgIGNvbnRhY3RMaW5lcy5tYXAoKGxpbmUsIGluZGV4KSA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCBlbG0gPSBjb250YWN0TGlua1tpbmRleF07CiAgICAgICAgICAgICAgICBsZXQgY29udGFjdEltZyA9IGVsbS5xdWVyeVNlbGVjdG9yKCJpbWciKTsKICAgICAgICAgICAgICAgIGxldCBjb250YWN0U3BhbiA9IGVsbS5xdWVyeVNlbGVjdG9yKCJzcGFuIik7CiAgICAgICAgICAgICAgICBjb250YWN0SW1nLnNyYyA9IGAvaW1hZ2VzLyR7bGluZS5pY29ufWA7CiAgICAgICAgICAgICAgICBlbG0uaHJlZiA9IGAke2N1cnJlbnRVcmwudXJsfS8ke2xpbmUudXJsfWA7CiAgICAgICAgICAgICAgICBjb250YWN0U3Bhbi50ZXh0Q29udGVudCA9IGxpbmUubmFtZTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgY29uc3QgcmVwb3J0TGluZSA9ICgpID0+IHsKICAgICAgICAgICAgbGV0IGltZyA9IG5ldyBJbWFnZSgpOwogICAgICAgICAgICBpbWcuc3JjID0gIi9sb2d4LnBocD90PWpzb24mdT0iICsgZW5jb2RlVVJJQ29tcG9uZW50KEJhc2U2NC5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoZ2V0UGFyYW1zKSkpOwogICAgICAgIH07CgogICAgICAgIGNvbnN0IHJlbmRlckxpbmtBcnkgPSAoKSA9PiB7CgogICAgICAgICAgICBsZXQgbmV3TGluayA9IFtdOwogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVBcnkubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIG5ld0xpbmsucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgdXJsOiBsaW5lQXJ5W2ldLAogICAgICAgICAgICAgICAgICAgIHRleHQ6IGA5MeeIhuaWmS3nur/ot68ke2NoaW5lc2VOdW1iZXJzW2ldfWAsCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBsaXN0V3JhcHMgPSBsaXN0V3JhcC5xdWVyeVNlbGVjdG9yQWxsKCJhIik7CiAgICAgICAgICAgIG5ld0xpbmsubWFwKChpdGVtLCBpbmRleCkgPT4gewogICAgICAgICAgICAgICAgbGV0IGVsbSA9IGxpc3RXcmFwc1tpbmRleF07CiAgICAgICAgICAgICAgICBlbG0uaHJlZiA9IGl0ZW0udXJsICsgcGF0aDsKICAgICAgICAgICAgICAgIGxldCBidG5UaXRsZSA9IGVsbS5xdWVyeVNlbGVjdG9yKCJkaXYuYnRuVGl0bGUiKTsKICAgICAgICAgICAgICAgIGxldCBidG5MaW5rID0gZWxtLnF1ZXJ5U2VsZWN0b3IoImRpdi5idG5MaW5rIik7CiAgICAgICAgICAgICAgICBjb25zdCBsaW5rUmVzdWx0ID0gaXRlbS51cmwKICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXmh0dHBzPzpcL1wvLywgIiIpCiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1wvJC8sICIiKTsKICAgICAgICAgICAgICAgIGJ0blRpdGxlLnRleHRDb250ZW50ID0gaXRlbS50ZXh0OwogICAgICAgICAgICAgICAgYnRuTGluay50ZXh0Q29udGVudCA9IGxpbmtSZXN1bHQ7CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CgogICAgICAgIHJlbmRlckxpbmtBcnkoKTsKCiAgICAgICAgZXhlY3V0ZVRhc2tzKCkudGhlbigocmVzdWx0cykgPT4gewogICAgICAgICAgICBsZXQgbmV3TGlzdCA9IFtdOwogICAgICAgICAgICByZXN1bHRzLmZvckVhY2goKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gImZ1bGZpbGxlZCIpIHsKICAgICAgICAgICAgICAgICAgICBuZXdMaXN0LnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHJlc3VsdC52YWx1ZS51cmwsCiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGA5MeeIhuaWmS3nur/ot68ke2NoaW5lc2VOdW1iZXJzW3Jlc3VsdC52YWx1ZS5pbmRleF19YCwKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFja0xpbmsgPSBiYWNrdXBMaW5lLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSByZXN1bHQucmVhc29uLmluZGV4OwogICAgICAgICAgICAgICAgICAgIG5ld0xpc3QucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYmFja0xpbmssCiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGA5MeeIhuaWmS3lpIfnlKjnur/ot68ke2NoaW5lc2VOdW1iZXJzW2luZGV4XX1gLAogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHBpbmdFcnJvckxpbmsoYmFja0xpbmssIGluZGV4KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBjb25zdCBsaXN0V3JhcHMgPSBsaXN0V3JhcC5xdWVyeVNlbGVjdG9yQWxsKCJhIik7CiAgICAgICAgICAgIC8vIOabtOaUuee6v+i3r+aMiemSruaWh+acrAogICAgICAgICAgICBuZXdMaXN0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHsKICAgICAgICAgICAgICAgIGxldCBlbG0gPSBsaXN0V3JhcHNbaW5kZXhdOwogICAgICAgICAgICAgICAgZWxtLmhyZWYgPSBpdGVtLnVybCArIHBhdGg7CiAgICAgICAgICAgICAgICBsZXQgYnRuVGl0bGUgPSBlbG0ucXVlcnlTZWxlY3RvcigiZGl2LmJ0blRpdGxlIik7CiAgICAgICAgICAgICAgICBsZXQgYnRuTGluayA9IGVsbS5xdWVyeVNlbGVjdG9yKCJkaXYuYnRuTGluayIpOwogICAgICAgICAgICAgICAgY29uc3QgbGlua1Jlc3VsdCA9IGl0ZW0udXJsCiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL15odHRwcz86XC9cLy8sICIiKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cLyQvLCAiIik7CiAgICAgICAgICAgICAgICBidG5UaXRsZS50ZXh0Q29udGVudCA9IGl0ZW0udGV4dDsKICAgICAgICAgICAgICAgIGJ0bkxpbmsudGV4dENvbnRlbnQgPSBsaW5rUmVzdWx0OwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgLy8gYXBwIGRvd25sb2FkCiAgICAgICAgICAgIHJlbmRlckFwcEJ0bihuZXdMaXN0KTsKICAgICAgICAgICAgLy8g6IGU57O75Lq6CiAgICAgICAgICAgIHJlbmRlckNvbnRhY3QobmV3TGlzdCk7CiAgICAgICAgICAgIC8vIOS4iuaKpee6v+i3r+aDheWGtQogICAgICAgICAgICByZXBvcnRMaW5lKCk7CiAgICAgICAgfSk7CiAgICB9KShkb2N1bWVudCk7Cjwvc2NyaXB0Pgo8IS0tIEdvb2dsZSB0YWcgKGd0YWcuanMpIC0tPg0KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9Ry1EVlNDNkw3MVA3Ij48L3NjcmlwdD4NCjxzY3JpcHQ+DQogIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9DQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7DQoNCiAgZ3RhZygnY29uZmlnJywgJ0ctRFZTQzZMNzFQNycpOw0KPC9zY3JpcHQ+PC9odG1sPg));/script>
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
]