RCT-463 ROCKET2012 second half of the year Soushuuhen

ID: RCT-463

Release Date: 2012-12-20

Length: 306min

Studio:

ROCKET

Label:

ROCKET

Series:

Rocket Half-Year Collection

Genre:

CompilationBig TitsRelativesDirty TalkOver 4 HoursHi-Def

Recommend

W3siaWQiOiJleG9jX2pfTV8zMDB4MTAwIiwiYWRzcG90Ijoial9NXzMwMHgxMDAiLCJ3ZWlnaHQiOiIzIiwiZmNhcCI6ZmFsc2UsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOiI3NjgiLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IGFzeW5jIHR5cGU9XCJhcHBsaWNhdGlvblwvamF2YXNjcmlwdFwiIHNyYz1cImh0dHBzOlwvXC9hLm1hZ3Nydi5jb21cL2FkLXByb3ZpZGVyLmpzXCI+PFwvc2NyaXB0PiBcclxuIDxpbnMgY2xhc3M9XCJlYXM2YTk3ODg4ZTEwXCIgZGF0YS16b25laWQ9XCIxMDI2MzEwXCI+PFwvaW5zPiBcclxuIDxzY3JpcHQ+KEFkUHJvdmlkZXIgPSB3aW5kb3cuQWRQcm92aWRlciB8fCBbXSkucHVzaCh7XCJzZXJ2ZVwiOiB7fX0pOzxcL3NjcmlwdD4ifSx7ImlkIjoianVpY19qX01fMzAweDEwMCIsImFkc3BvdCI6ImpfTV8zMDB4MTAwIiwid2VpZ2h0IjoiNSIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPGlmcmFtZSBib3JkZXI9MCBmcmFtZWJvcmRlcj0wIG1hcmdpbmhlaWdodD0wIG1hcmdpbndpZHRoPTAgd2lkdGg9MzAwIGhlaWdodD0xMDAgc2Nyb2xsaW5nPW5vIGFsbG93dHJhbnNwYXJlbmN5PXRydWUgc3JjPVwvXC9hZHNlcnZlci5qdWljeWFkcy5jb21cL2Fkc2hvdy5waHA/YWR6b25lPTQ1MTczOT48XC9pZnJhbWU+In1d

Sample Images

Recommend

W3siaWQiOiJleG9jX2pfTV8zMDB4MjUwIiwiYWRzcG90Ijoial9NXzMwMHgyNTAiLCJ3ZWlnaHQiOiIyIiwiZmNhcCI6ZmFsc2UsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOiI3NjgiLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IGFzeW5jIHR5cGU9XCJhcHBsaWNhdGlvblwvamF2YXNjcmlwdFwiIHNyYz1cImh0dHBzOlwvXC9hLm1hZ3Nydi5jb21cL2FkLXByb3ZpZGVyLmpzXCI+PFwvc2NyaXB0PiBcclxuIDxpbnMgY2xhc3M9XCJlYXM2YTk3ODg4ZTEwXCIgZGF0YS16b25laWQ9XCIxMDMxMDQyXCI+PFwvaW5zPiBcclxuIDxzY3JpcHQ+KEFkUHJvdmlkZXIgPSB3aW5kb3cuQWRQcm92aWRlciB8fCBbXSkucHVzaCh7XCJzZXJ2ZVwiOiB7fX0pOzxcL3NjcmlwdD4ifSx7ImlkIjoianVpY19qX01fMzAweDI1MCIsImFkc3BvdCI6ImpfTV8zMDB4MjUwIiwid2VpZ2h0IjoiMyIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPCEtLSBKdWljeUFkcyB2My4xIC0tPlxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCIgZGF0YS1jZmFzeW5jPVwiZmFsc2VcIiBhc3luYyBzcmM9XCJodHRwczpcL1wvcG93ZXJlZGJ5LmphZHMuY29cL2pzXC9qYWRzLmpzXCI+PFwvc2NyaXB0PlxyXG48aW5zIGlkPVwiMzcxNzI2XCIgZGF0YS13aWR0aD1cIjMwMFwiIGRhdGEtaGVpZ2h0PVwiMjUwXCI+PFwvaW5zPlxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCIgZGF0YS1jZmFzeW5jPVwiZmFsc2VcIiBhc3luYz4oYWRzYnlqdWljeSA9IHdpbmRvdy5hZHNieWp1aWN5IHx8IFtdKS5wdXNoKHsnYWR6b25lJzozNzE3MjZ9KTs8XC9zY3JpcHQ+XHJcbjwhLS1KdWljeUFkcyBFTkQtLT4ifV0=
W3siaWQiOiJjbGljX2pfUE9QVU5ERVIiLCJhZHNwb3QiOiJqX1BPUFVOREVSIiwid2VpZ2h0IjoiNyIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjpmYWxzZSwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdCB0eXBlPVwidGV4dFwvamF2YXNjcmlwdFwiPiFmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO2NvbnN0IHQ9XCJ6X2ZsZ2RhYmNwb2tyaW5ldXRtLlwvc1wiLGU9dFs0XSxuPXRbNl0sbz10WzddLHI9dFs4XSxzPXRbMTRdLGk9dFs1XSxjPXRbMTVdLGE9dFsxNl0sbD10WzEzXSx1PXRbMTBdLGg9dFsxMl0sZD10WzldLGc9dFsxN10sbT10WzE4XSxmPXRbMl0scD10WzNdLHc9dFswXSxiPXRbMV0sJD10WzIwXSx2PSguLi50KT0+dC5qb2luKFwiXCIpLEk9dihyLHApLFM9dihuLG8pLHk9dihpLGMsbyxhLGUpLEU9dihsLHMsZCxuLGUsYyksaz12KG8sbixzLHMsYyxoKSx4PXYoYixJLGIsUyxiLHksYiksaj12KGIsYiksQz12KHcsZixlLHAsdSxuLGksYyxpKSxOPXsyOnYoQyxkLHUsZCx0WzE2XSxkKSw5OnYoQyxrKSwxMDp2KEMsRSl9LE89dih3LGYsZSxyLHUsaSxjLHAsdSxuLGksYyxpKSxSPXsyOnYoTyx1LHMsSSxsLHIsdFsxMV0pLDk6dihPLGspLDEwOnYoTyxFKX0sXz12KHgsZyxsLG0sYyksQT12KHgsaSx1LG0sbixsLHMpLEQ9dihqLHIscyxlLGYsZSksVD12KGoscixzLGUsZixlLGosaSksTT12KEQsaixTKSxVPXYoRCxqLGMsYSksQj12KHRbMjFdLHIsaCxsLGQsZyksSj12KHRbMTldLHIsdSxtLCQpLFc9digkLGMscyksej12KGwsaSksVj12KGoscixzLGUsZixlLGosaCksSD1bXCJvb1wiLFwia2tcIixcImFhYVwiLFwiampqXCIsXCJmZXdoXCIsXCJhYXNoXCIsXCJxd2Rod1wiLFwid2Vnd2dzXCIsXCJoa2lpdXlyXCIsXCJuZmdyc3RkaFwiXSxLPTM2ZTUsUD0odCxlKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihlLXQrMSkpK3Q7ZnVuY3Rpb24gUSh0LGU9d2luZG93LG49ITEpe2xldCBvO3RyeXtpZihvPWVbdF0sIW8pcmV0dXJuITE7Y29uc3Qgbj1cIl9fc3RvcmFnZV90ZXN0X19cIjtyZXR1cm4gby5zZXRJdGVtKG4sbiksby5nZXRJdGVtKG4pLG8ucmVtb3ZlSXRlbShuKSwhMH1jYXRjaCh0KXtyZXR1cm4gQm9vbGVhbighbiYmZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBET01FeGNlcHRpb24mJigyMj09PXQuY29kZXx8MTAxND09PXQuY29kZXx8XCJRdW90YUV4Y2VlZGVkRXJyb3JcIj09PXQubmFtZXx8XCJOU19FUlJPUl9ET01fUVVPVEFfUkVBQ0hFRFwiPT09dC5uYW1lKX0odCkmJm8mJm8ubGVuZ3RoPjApfX1jb25zdCBxPXQ9PntpZihcIlwiPT09dCl0aHJvdyBuZXcgRXJyb3IoXCJLZXkgY2Fubm90IGJlIGVtcHR5XCIpfTtjbGFzcyBGe2NvbnN0cnVjdG9yKHQpe3RoaXMuc3RvcmFnZT10fWdldEl0ZW0odCl7cmV0dXJuIHRoaXMuc3RvcmFnZS5nZXRJdGVtKHQpfXNldEl0ZW0odCxlKXtxKHQpLHRoaXMuc3RvcmFnZS5zZXRJdGVtKHQsZSl9cmVtb3ZlSXRlbSh0KXt0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbSh0KX19Y2xhc3MgTHtjb25zdHJ1Y3Rvcih0KXt0aGlzLmRvYz10fWdldEl0ZW0odCl7Y29uc3QgZT1uZXcgUmVnRXhwKFwiKD86Xnw7IClcIit0LnJlcGxhY2UoXC8oW1xcLiQ/Knx7fVxcKFxcKVxcW1xcXVxcXFxcXFwvXFwrXl0pXC9nLFwiXFxcXCQxXCIpK1wiPShbXlwvO1wvXSopXCIpLmV4ZWModGhpcy5kb2MuY29va2llKTtyZXR1cm4gZT9kZWNvZGVVUklDb21wb25lbnQoZVsxXSk6bnVsbH1zZXRJdGVtKHQsZSl7cSh0KSx0aGlzLmRvYy5jb29raWU9YCR7dH09JHtlbmNvZGVVUklDb21wb25lbnQoZSl9OyBtYXgtYWdlPTM0NDcwMDAwOyBwYXRoPVwvO2B9cmVtb3ZlSXRlbSh0KXt0aGlzLmRvYy5jb29raWU9YCR7dH09MDsgbWF4LWFnZT0tMTsgcGF0aD1cLztgfX1jbGFzcyBHe2NvbnN0cnVjdG9yKHQpe3RoaXMud2luPXR9Z2V0SXRlbSh0KXtjb25zdCBlPXRoaXMud2luW3RdO3JldHVyblwib2JqZWN0XCI9PXR5cGVvZiBlP0pTT04uc3RyaW5naWZ5KGUpOnZvaWQgMCE9PWU/ZTpudWxsfXNldEl0ZW0odCxlKXtxKHQpLHRoaXMud2luW3RdPWV9cmVtb3ZlSXRlbSh0KXtkZWxldGUgdGhpcy53aW5bdF19fXZhciBYLFk7KHQ9Pntjb25zdCBlPVtuZXcgRyh0KV0sbj1cIm9uY29udGV4dHN0b3JlXCI7bGV0IG87UShcImxvY2FsU3RvcmFnZVwiLHQpJiZlLnB1c2gobmV3IEYodC5sb2NhbFN0b3JhZ2UpKSxRKFwic2Vzc2lvblN0b3JhZ2VcIix0KSYmZS5wdXNoKG5ldyBGKHQuc2Vzc2lvblN0b3JhZ2UpKSxmdW5jdGlvbih0PXdpbmRvdyl7dHJ5e3JldHVybiB0LmRvY3VtZW50LmNvb2tpZSx0Lm5hdmlnYXRvci5jb29raWVFbmFibGVkfWNhdGNoKHQpe3JldHVybiExfX0odCkmJmUucHVzaChuZXcgTCh0LmRvY3VtZW50KSl9KSh3aW5kb3cpLGZ1bmN0aW9uKHQpe3QuU0VVPVwic2V1XCIsdC5TTkM9XCJzbmNcIix0LlNTVD1cInNzdFwiLHQuU0tBPVwic2thXCJ9KFh8fChYPXt9KSksXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fXCIuc3BsaXQoXCJcIiksZnVuY3Rpb24odCl7dC5Wb2NhYnVsYXJ5PVwidHBtbWh2MThcIix0LldlaWdodHM9XCJ0cG1taHcxOFwifShZfHwoWT17fSkpO1kuVm9jYWJ1bGFyeSxZLldlaWdodHM7Y29uc3QgWj10PT57Y29uc3RbZV09dC5zcGxpdChcIlwvXC9cIik7bGV0W24sbyxyXT1mdW5jdGlvbih0LGUpe2xldFtuLG8sLi4ucl09dC5zcGxpdChlKTtyZXR1cm4gbz1bbywuLi5yXS5qb2luKGUpLFtuLG8sQm9vbGVhbihyLmxlbmd0aCldfSh0LFwiP1wiKTt2YXIgcztyJiZmdW5jdGlvbih0LGUsbil7dHJ5e3JldHVybiB0KCl9Y2F0Y2godCl7aWYoZSlyZXR1cm4gZSh0KX19KCgoKT0+e3Rocm93IG5ldyBFcnJvcihcIlRoZSBVUkwgY29udGFpbnMgdW5lbmNvZGVkIGNoYXJhY3RlcnMuXCIpfSksXCJmdW5jdGlvblwiPT10eXBlb2YgaGFuZGxlRXhjZXB0aW9uP3Q9PntoYW5kbGVFeGNlcHRpb24odCl9OnMpO2NvbnN0W2ksLi4uY109bi5yZXBsYWNlKFwvXmh0dHBzPzpcXFwvXFxcL1wvLFwiXCIpLnNwbGl0KFwiXC9cIik7cmV0dXJue3Byb3RvY29sOmUsb3JpZ2luOm4sZG9tYWluOmkscGF0aDpjLmpvaW4oXCJcL1wiKSxzZWFyY2g6b319LHR0PSgpPT57Y29uc3QgdD1IW1AoMCxILmxlbmd0aC0xKV0sZT0hUCgwLDEpPyh0PT57bGV0IGU9XCJcIjtmb3IobGV0IG49MDtuPHQ7bisrKWUrPVN0cmluZy5mcm9tQ2hhckNvZGUoUCg5NywxMjIpKTtyZXR1cm4gZX0pKFAoMiw2KSk6UCgxLDk5OTk5OSk7cmV0dXJuYCR7dH09JHtlfWB9LGV0PSh0LGUsbik9Pntjb25zdCBvPSgodCxlKT0+KGUrdCkuc3BsaXQoXCJcIikucmVkdWNlKCgodCxlKT0+MzEqdCtlLmNoYXJDb2RlQXQoMCkmMzM1NTQ0MzEpLDE5KSkodCxlKSxyPSh0PT57bGV0IGU9dCU3MTM4NztyZXR1cm4oKT0+ZT0oMjMyNTEqZSsxMjM0NSklNzEzODd9KShvKTtyZXR1cm4gbi5zcGxpdChcIlwiKS5tYXAoKHQ9PigodCxlKT0+e2NvbnN0IG49dC5jaGFyQ29kZUF0KDApLG89bjw5N3x8bj4xMjI/bjo5Nysobi05NytlKCkpJTI2LHI9U3RyaW5nLmZyb21DaGFyQ29kZShvKTtyZXR1cm5cImlcIj09PXI/citcImlcIjpyfSkodCxyKSkpLmpvaW4oXCJcIil9LG50PSh0LGUpPT57dD10LnJlcGxhY2UoYD8ke3p9PSR7ZX0mYCxcIj9cIikucmVwbGFjZShgPyR7en09JHtlfWAsXCI/XCIpLnJlcGxhY2UoYCYke3p9PSR7ZX1gLFwiXCIpO2xldHtkb21haW46bixzZWFyY2g6byxvcmlnaW46cn09Wih0KSxzPW8/by5zcGxpdChcIiZcIik6W107Y29uc3QgaT1zLmxlbmd0aD40P1swLDJdOls1LDldO3MucHVzaCguLi4oKHQsZSk9Pntjb25zdCBuPVtdLG89UCh0LGUpO2ZvcihsZXQgdD0wO3Q8bzt0Kyspbi5wdXNoKHR0KCkpO3JldHVybiBufSkoLi4uaSkpLHM9KHQ9Pntjb25zdCBlPVsuLi50XTtsZXQgbj1lLmxlbmd0aDtmb3IoOzAhPT1uOyl7Y29uc3QgdD1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqbik7bi0tLFtlW25dLGVbdF1dPVtlW3RdLGVbbl1dfXJldHVybiBlfSkocyk7Y29uc3QgYz1ldChlLG4scy5qb2luKFwiJlwiKSksYT1QKDAscy5sZW5ndGgpLGw9Yy5zcGxpdChcIiZcIik7cmV0dXJuIGwuc3BsaWNlKGEsMCxgaWQ9JHtlfWApLHIucmVwbGFjZShuLG4rVykrXCI/XCIrbC5qb2luKFwiJlwiKX0sb3Q9dD0+KHQ9PnQ+PTE3MzEyNzZlNiYmdDw9MTczMTc5NDRlNXx8dD49MTczMjQ4NTZlNSYmdDw9MTczMzAwNGU2KSh0KT9QKHQtSyx0K0spOnQscnQ9dD0+e2NvbnN0IGU9bmV3IFJlZ0V4cChfK1wiPShcXFxcZCspKHIpP1wiKS5leGVjKHQubG9jYXRpb24uaHJlZiksbj1lJiZlWzFdJiYrZVsxXTtyZXR1cm4gbiYmIWlzTmFOKG4pPyhudWxsPT1lP3ZvaWQgMDplWzJdKT9vdChuKTpuOm90KERhdGUubm93KCkpfSxzdD1cImNsYWJkZnJcIjtmdW5jdGlvbiBpdCh0KXtpZighdClyZXR1cm4gbnVsbDtjb25zdCBlPXt9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChuPT57Y29uc3Qgbz10W25dOyhmdW5jdGlvbih0KXtjb25zdCBlPW51bGw9PXQ/dm9pZCAwOnRbMF0sbj1udWxsPT10P3ZvaWQgMDp0WzFdO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlJiZOdW1iZXIuaXNGaW5pdGUobikmJm4+RGF0ZS5ub3coKX0pKG8pJiYoZVtuXT1vKX0pKSxlfWNvbnN0IGN0PSgoKT0+e3ZhciB0O2NvbnN0W2Usbl09ZnVuY3Rpb24oKXtpZihRKFwibG9jYWxTdG9yYWdlXCIpKXtjb25zdCB0PXdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdCk7cmV0dXJuW3Q/SlNPTi5wYXJzZSh0KTpudWxsLCExXX1yZXR1cm5bbnVsbCwhMF19KCksbz1udWxsIT09KHQ9aXQoZSkpJiZ2b2lkIDAhPT10P3Q6e307cmV0dXJuIG58fHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdCxKU09OLnN0cmluZ2lmeShvKSkse2dldDp0PT5vW3RdLHNldDoodCxlLHIpPT57Y29uc3Qgcz1bZSxEYXRlLm5vdygpKzFlMypyXTtvW3RdPXMsbnx8d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0LEpTT04uc3RyaW5naWZ5KG8pKX19fSkoKTtjb25zdCBhdD1bMSwzLDYsNSw4LDksMTAsMTEsMTIsMTMsMTRdO2xldCBsdDtjb25zdCB1dD1VaW50OEFycmF5O2xldCBodDtjbGFzcyBkdHtjb25zdHJ1Y3Rvcih0LGUsbixvLHIscyl7dGhpcy5pZD1lLHRoaXMudD1uLHRoaXMuYjZkPW8sdGhpcy52ZXI9cix0aGlzLmZidj1zLHRoaXMudG1yPW51bGwsdGhpcy5nZD10PT5odC53dS50aGVuKChlPT5lLnVybChodC5nZmNvKHQpKSkpLHRoaXMuYjZhYj10PT51dC5mcm9tKGF0b2IodCksKHQ9PnQuY2hhckNvZGVBdCgwKSkpLHRoaXMuZ2N1az0oKT0+YCR7aHQuaWR9JHtEfWAsdGhpcy5nZnU9dD0+YCR7ZnVuY3Rpb24odCxlKXtjb25zdCBuPW5ldyBSZWdFeHAoQStcIj0oW2EtejAtOS4tXSspJj9cIikuZXhlYyh0LmxvY2F0aW9uLmhyZWYpLG89biYmblsxXT9uWzFdOm51bGw7cmV0dXJuIGUmJm8/ZS5yZXBsYWNlKEosYC0ke299XC9gKTplfHxvfShsdCx0KX0/aWQ9JHtodC5pZH1gLHRoaXMuc2FzdD10PT4wIT09TnVtYmVyKHQpLGh0PXRoaXMsbHQ9dCx0aGlzLnd1PWh0Lml3YSgpLGx0W3RoaXMuaWQrVl09dGhpcy5pbnMoKSxodC5jY2x0KCksbHRbaHQuaWQrVV09bnR9aW4oKXt0aGlzLnNhc3QoaHQudCkmJiEwIT09bHRbUltodC50XV0mJihodC50bXImJmNsZWFyVGltZW91dChodC50bXIpLGh0LmFzdCgpKX1pbnMoKXtsdFt0aGlzLmdjZGsoKV09e307Y29uc3QgdD1hdC5tYXAoKHQ9Pmh0LmdkKHQpLnRoZW4oKGU9PihsdFtodC5nY2RrKCldW3RdPWUsZSkpKSkpO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKCh0PT4obHRbaHQuZ2N1aygpXT10LCEwKSkpfWNjbHQoKXtodC5zYXN0KGh0LnQpJiYodGhpcy50bXI9bHQuc2V0VGltZW91dCgoKCk9PiFsdFtOW2h0LnRdXSYmaHQuYXN0KCkpLDVlMykpfWdmY28odCl7Y29uc3R7bmF2aWdhdG9yOmV9PWx0LG49ZT9lLnVzZXJBZ2VudDpcIlwiLG89bHQubG9jYXRpb24uaG9zdG5hbWV8fFwiXCI7cmV0dXJuW2x0LmlubmVySGVpZ2h0LGx0LmlubmVyV2lkdGgsbHQuc2Vzc2lvblN0b3JhZ2U/MTowLHJ0KGx0KSwwLHQsby5zbGljZSgwLDEwMCksbi5zbGljZSgwLDE1KV0uam9pbihcIixcIil9YXN0KCl7aHQuc2FzdChodC50KSYmaHQuZ2QoaHQudCkudGhlbigodD0+e2x0W2h0LmlkK01dPWh0LnZlcjtjb25zdCBlPWx0LmRvY3VtZW50LG49ZS5jcmVhdGVFbGVtZW50KEIpLFtvXT1mdW5jdGlvbih0LGUpe2NvbnN0e2RvbWFpbjpuLHBhdGg6byxzZWFyY2g6cn09Wih0KSxzPWN0LmdldChuKTtyZXR1cm4gcz9bYCR7aT1zWzBdLChcL2h0dHBzPzpcXFwvXFxcL1wvLnRlc3QoaSk/XCJcIjpcImh0dHBzOlwvXC9cIikraX1cLyR7b30/JHtyfWAsITFdOlt0LCExXTt2YXIgaX0oaHQuZ2Z1KHQpKTtuLnNyYz1udChvLGh0LmlkKSxlLmhlYWQuYXBwZW5kQ2hpbGQobil9KSl9aXdhKCl7Y29uc3QgdD1XZWJBc3NlbWJseSxlPXQmJnQuaW5zdGFudGlhdGU7cmV0dXJuIGU/ZShodC5iNmFiKGh0LmI2ZCkse30pLnRoZW4oKCh7aW5zdGFuY2U6e2V4cG9ydHM6dH19KT0+e2NvbnN0IGU9dC5tZW1vcnksbj10LnVybCxvPW5ldyBUZXh0RW5jb2RlcixyPW5ldyBUZXh0RGVjb2RlcihcInV0Zi04XCIpO3JldHVybnt1cmw6dD0+e2NvbnN0IHM9by5lbmNvZGUodCksaT1uZXcgdXQoZS5idWZmZXIsMCxzLmxlbmd0aCk7aS5zZXQocyk7Y29uc3QgYz1pLmJ5dGVPZmZzZXQrcy5sZW5ndGgsYT1uKGkscy5sZW5ndGgsYyksbD1uZXcgdXQoZS5idWZmZXIsYyxhKTtyZXR1cm4gci5kZWNvZGUobCl9fX0pKTpQcm9taXNlLnJlc29sdmUodm9pZCAwKX1nY2RrKCl7cmV0dXJuYCR7dGhpcy5pZH0ke1R9YH19IWZ1bmN0aW9uKHQsZSxuLG8scixzKXtjb25zdCBpPW5ldyBkdCh3aW5kb3csXCIyMDQ3NDcwXCIsXCIyXCIsXCJBR0Z6YlFFQUFBQUJIQVZnQUFGXC9ZQU5cL2YzOEJmMkFEZjM5XC9BWDVnQVg4QVlBRlwvQVg4RENRZ0FBUUlCQUFNRUFBUUZBWEFCQVFFRkJnRUJnQUtBQWdZSkFYOEJRY0NJd0FJTEIyY0hCbTFsYlc5eWVRSUFBM1Z5YkFBREdWOWZhVzVrYVhKbFkzUmZablZ1WTNScGIyNWZkR0ZpYkdVQkFCQmZYMlZ5Y201dlgyeHZZMkYwYVc5dUFBY0pjM1JoWTJ0VFlYWmxBQVFNYzNSaFkydFNaWE4wYjNKbEFBVUtjM1JoWTJ0QmJHeHZZd0FHQ29jR0NDRUJBWDlCdUFoQnVBZ29BZ0JCRTJ4Qm9SeHFRWWZDMXk5d0lnQTJBZ0FnQUF1VEFRRUZmeEFBSUFFZ0FHdEJBV3B3SUFCcUlnUUVRRUVBSVFCQkF5RUJBMEFnQVVFRElBQkJBM0FpQnhzaEFSQUFJZ1pCRkhCQmtBaHFMUUFBSVFNQ2Z5QUZRUUFnQnh0RkJFQkJBQ0FHSUFGd0RRRWFJQVpCQm5CQmdBaHFMUUFBSVFNTFFRRUxJUVVnQUNBQ2FpQURRYXdJTFFBQWF6b0FBQ0FCUVFGcklRRWdBRUVCYWlJQUlBUkpEUUFMQ3lBQ0lBUnFDM0VDQTM4Q2ZnSkFJQUZCQUV3TkFBTkFJQVJCQVdvaEF5QUNJQVVnQUNBRWFpMEFBRUVzUm1vaUJVWUVRQ0FCSUFOTURRSURRQ0FBSUFOcU1BQUFJZ2RDTEZFTkF5QUdRZ3ArSUFkOFFqQjlJUVlnQTBFQmFpSURJQUZIRFFBTERBSUxJQU1oQkNBQklBTktEUUFMQ3lBR0M3Z0RBZ04rQjM4Z0FDQUJRUU1RQWlFRElBQWdBVUVGRUFJaEJVRzRDQ0FEUWJBSUtRTUFJZ1FnQXlBRVZCdEJxQWdvQWdBaUFFRXlhaUlCSUFGc1FlZ0hiSzJBSWdRZ0FFRU9haUlLSUFCQkJHc2dBMEtBZ1BIdHh6QlVJZ3NicllDbklBTkNcLzRcL01wXC9ZeFZrRVdkSEkyQWdBUUFCb1FBQm9nQWtMbzZOR0R0ODdPbHk4M0FBQkJCMEVLUVFnZ0EwS0EwTVdYZ3pKVUd5QURRb0NXb3AzbE1GUWlCaHRCQzBFTUlBWWJJQUpCQ0dvUUFTRUFFQUFhSXdCQkVHc2lBU1FBSUFCQkxqb0FBQ0FCUWVQZXRRTTJBZ3dnQUVFQmFpRUhRUUFoQUNBQlFReHFJZ3d0QUFBaUNBUkFBMEFnQUNBSGFpQUlPZ0FBSUF3Z0FFRUJhaUlBYWkwQUFDSUlEUUFMQ3lBQlFSQnFKQUFnQUNBSGFpRUJRYmdJSUFRZ0NxMkFJQVZDRzRaQ0FFS0FnSUFnUW9DQWdEQkNnSUNBQ0VLQWdJQVlJQVZDQ0ZFYlFvQ0FnQkpDZ0lEQURTQURRb0NJbDlxc01sUWJJQU5DZ0pETXBcL1l4VkJzZ0EwS0FtTWF1enpGVUd5QUdHeUFMRzRTRVBnSUFFQUFhUVFKQkJCQUFRUU53SWdBYklRWURRQ0FCUVM4NkFBQWdBQ0FKUmlFSElBWkJCU0FCUVFGcUVBRWhBU0FKUVFGcUlRa2dCMFVOQUFzZ0FTQUNhd3NFQUNNQUN3WUFJQUFrQUFzUUFDTUFJQUJyUVhCeElnQWtBQ0FBQ3dVQVFid0lDd3M3QXdCQmdBZ0xCcDZpcHF5eXRnQkJrQWdMRkorZ29hT2twYWVvcWFxcnJhNnZzTEd6dExXM0FFR29DQXNPQ2dBQUFEMEFBQURcL2h4b3dsUUU9XCIsXCI4XCIsXCIxLjAuNDAwXCIpO3dpbmRvd1tcInNtanRja3JuXCJdPSgpPT5pLmluKCl9KCl9KCk7PFwvc2NyaXB0PlxyXG48c2NyaXB0IGRhdGEtY2Zhc3luYz1cImZhbHNlXCIgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIiBzcmM9XCJcL1wvaXNvbGF0ZWRvdmVyY29tZXBhc3RlZC5jb21cL2Fhc1wvcjQ1ZFwvdmtpXC8yMDQ3NDY4XC8zZDkzMWQ1NC5qc1wiIGFzeW5jIG9uZXJyb3I9XCJzbWp0Y2tybigpXCI+PFwvc2NyaXB0PiJ9LHsiaWQiOiJleG9jX2pfUE9QVU5ERVIiLCJhZHNwb3QiOiJqX1BPUFVOREVSIiwid2VpZ2h0IjoiNiIsImZjYXAiOiIxIiwic2NoZWR1bGUiOmZhbHNlLCJtYXhXaWR0aCI6ZmFsc2UsIm1pbldpZHRoIjoiNzY4IiwidGltZXpvbmUiOmZhbHNlLCJleGNsdWRlIjpmYWxzZSwiZG9tYWluIjpmYWxzZSwiY29kZSI6IjxzY3JpcHQgdHlwZT1cImFwcGxpY2F0aW9uXC9qYXZhc2NyaXB0XCI+XHJcbihmdW5jdGlvbigpIHtcclxuXHJcbiAgICBcL1wvdmVyc2lvbiAxLjAuMFxyXG5cclxuICAgIHZhciBhZENvbmZpZyA9IHtcclxuICAgIFwiYWRzX2hvc3RcIjogXCJhLnBlbXNydi5jb21cIixcclxuICAgIFwic3luZGljYXRpb25faG9zdFwiOiBcInMucGVtc3J2LmNvbVwiLFxyXG4gICAgXCJpZHpvbmVcIjogMTAwODA5NCxcclxuICAgIFwicG9wdXBfZmFsbGJhY2tcIjogZmFsc2UsXHJcbiAgICBcInBvcHVwX2ZvcmNlXCI6IGZhbHNlLFxyXG4gICAgXCJjaHJvbWVfZW5hYmxlZFwiOiB0cnVlLFxyXG4gICAgXCJuZXdfdGFiXCI6IGZhbHNlLFxyXG4gICAgXCJmcmVxdWVuY3lfcGVyaW9kXCI6IDcyMCxcclxuICAgIFwiZnJlcXVlbmN5X2NvdW50XCI6IDEsXHJcbiAgICBcInRyaWdnZXJfbWV0aG9kXCI6IDMsXHJcbiAgICBcInRyaWdnZXJfY2xhc3NcIjogXCJcIixcclxuICAgIFwidHJpZ2dlcl9kZWxheVwiOiAwLFxyXG4gICAgXCJvbmx5X2lubGluZVwiOiBmYWxzZVxyXG59O1xyXG5cclxuaWYoIXdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPWRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbD1PYmplY3QucXVlcnlTZWxlY3RvckFsbD1mdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsUG9seWZpbGwocixjLGksaixhKXt2YXIgZD1kb2N1bWVudCxzPWQuY3JlYXRlU3R5bGVTaGVldCgpO2E9ZC5hbGw7Yz1bXTtyPXIucmVwbGFjZShcL1xcW2ZvclxcYlwvZ2ksXCJbaHRtbEZvclwiKS5zcGxpdChcIixcIik7Zm9yKGk9ci5sZW5ndGg7aS0tOyl7cy5hZGRSdWxlKHJbaV0sXCJrOnZcIik7Zm9yKGo9YS5sZW5ndGg7ai0tOyl7YVtqXS5jdXJyZW50U3R5bGUuayYmYy5wdXNoKGFbal0pfXMucmVtb3ZlUnVsZSgwKX1yZXR1cm4gY319dmFyIHBvcE1hZ2ljPXt2ZXJzaW9uOjEsY29va2llX25hbWU6XCJcIix1cmw6XCJcIixjb25maWc6e30sb3Blbl9jb3VudDowLHRvcDpudWxsLGJyb3dzZXI6bnVsbCx2ZW5vcl9sb2FkZWQ6ZmFsc2UsdmVub3I6ZmFsc2UsY29uZmlnVHBsOnthZHNfaG9zdDpcIlwiLHN5bmRpY2F0aW9uX2hvc3Q6XCJcIixpZHpvbmU6XCJcIixmcmVxdWVuY3lfcGVyaW9kOjcyMCxmcmVxdWVuY3lfY291bnQ6MSx0cmlnZ2VyX21ldGhvZDoxLHRyaWdnZXJfY2xhc3M6XCJcIixwb3B1cF9mb3JjZTpmYWxzZSxwb3B1cF9mYWxsYmFjazpmYWxzZSxjaHJvbWVfZW5hYmxlZDp0cnVlLG5ld190YWI6ZmFsc2UsY2F0OlwiXCIsdGFnczpcIlwiLGVsOlwiXCIsc3ViOlwiXCIsc3ViMjpcIlwiLHN1YjM6XCJcIixvbmx5X2lubGluZTpmYWxzZSx0cmlnZ2VyX2RlbGF5OjAsY29va2llY29uc2VudDp0cnVlfSxpbml0OmZ1bmN0aW9uKGNvbmZpZyl7aWYodHlwZW9mIGNvbmZpZy5pZHpvbmU9PT1cInVuZGVmaW5lZFwifHwhY29uZmlnLmlkem9uZSl7cmV0dXJufWlmKHR5cGVvZiBjb25maWdbXCJjdXN0b21UYXJnZXRpbmdcIl09PT1cInVuZGVmaW5lZFwiKXtjb25maWdbXCJjdXN0b21UYXJnZXRpbmdcIl09W119d2luZG93W1wiY3VzdG9tVGFyZ2V0aW5nXCJdPWNvbmZpZ1tcImN1c3RvbVRhcmdldGluZ1wiXXx8bnVsbDt2YXIgY3VzdG9tVGFyZ2V0aW5nPU9iamVjdC5rZXlzKGNvbmZpZ1tcImN1c3RvbVRhcmdldGluZ1wiXSkuZmlsdGVyKGZ1bmN0aW9uKGMpe3JldHVybiBjLnNlYXJjaChcImV4X1wiKT49MH0pO2lmKGN1c3RvbVRhcmdldGluZy5sZW5ndGgpe2N1c3RvbVRhcmdldGluZy5mb3JFYWNoKGZ1bmN0aW9uKGN0KXtyZXR1cm4gdGhpcy5jb25maWdUcGxbY3RdPW51bGx9LmJpbmQodGhpcykpfWZvcih2YXIga2V5IGluIHRoaXMuY29uZmlnVHBsKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuY29uZmlnVHBsLGtleSkpe2NvbnRpbnVlfWlmKHR5cGVvZiBjb25maWdba2V5XSE9PVwidW5kZWZpbmVkXCIpe3RoaXMuY29uZmlnW2tleV09Y29uZmlnW2tleV19ZWxzZXt0aGlzLmNvbmZpZ1trZXldPXRoaXMuY29uZmlnVHBsW2tleV19fWlmKHR5cGVvZiB0aGlzLmNvbmZpZy5pZHpvbmU9PT1cInVuZGVmaW5lZFwifHx0aGlzLmNvbmZpZy5pZHpvbmU9PT1cIlwiKXtyZXR1cm59aWYodGhpcy5jb25maWcub25seV9pbmxpbmUhPT10cnVlKXt0aGlzLmxvYWRIb3N0ZWQoKX10aGlzLmFkZEV2ZW50VG9FbGVtZW50KHdpbmRvdyxcImxvYWRcIix0aGlzLnByZXBhcmVQb3ApfSxnZXRDb3VudEZyb21Db29raWU6ZnVuY3Rpb24oKXtpZighdGhpcy5jb25maWcuY29va2llY29uc2VudCl7cmV0dXJuIDB9dmFyIHNob3duQ29va2llPXBvcE1hZ2ljLmdldENvb2tpZShwb3BNYWdpYy5jb29raWVfbmFtZSk7dmFyIGN0cj10eXBlb2Ygc2hvd25Db29raWU9PT1cInVuZGVmaW5lZFwiPzA6cGFyc2VJbnQoc2hvd25Db29raWUpO2lmKGlzTmFOKGN0cikpe2N0cj0wfXJldHVybiBjdHJ9LGdldExhc3RPcGVuZWRUaW1lRnJvbUNvb2tpZTpmdW5jdGlvbigpe3ZhciBzaG93bkNvb2tpZT1wb3BNYWdpYy5nZXRDb29raWUocG9wTWFnaWMuY29va2llX25hbWUpO3ZhciBkZWxheT1udWxsO2lmKHR5cGVvZiBzaG93bkNvb2tpZSE9PVwidW5kZWZpbmVkXCIpe3ZhciB2YWx1ZT1zaG93bkNvb2tpZS5zcGxpdChcIjtcIilbMV07ZGVsYXk9dmFsdWU+MD9wYXJzZUludCh2YWx1ZSk6MH1pZihpc05hTihkZWxheSkpe2RlbGF5PW51bGx9cmV0dXJuIGRlbGF5fSxzaG91bGRTaG93OmZ1bmN0aW9uKCl7aWYocG9wTWFnaWMub3Blbl9jb3VudD49cG9wTWFnaWMuY29uZmlnLmZyZXF1ZW5jeV9jb3VudCl7cmV0dXJuIGZhbHNlfXZhciBjdHI9cG9wTWFnaWMuZ2V0Q291bnRGcm9tQ29va2llKCk7Y29uc3QgbGFzdF9vcGVuZWRfdGltZT1wb3BNYWdpYy5nZXRMYXN0T3BlbmVkVGltZUZyb21Db29raWUoKTtjb25zdCBjdXJyZW50X3RpbWU9TWF0aC5mbG9vcihEYXRlLm5vdygpXC8xZTMpO2NvbnN0IG1heGltdW1EZWxheVRpbWU9bGFzdF9vcGVuZWRfdGltZStwb3BNYWdpYy5jb25maWcudHJpZ2dlcl9kZWxheTtpZihsYXN0X29wZW5lZF90aW1lJiZtYXhpbXVtRGVsYXlUaW1lPmN1cnJlbnRfdGltZSl7cmV0dXJuIGZhbHNlfXBvcE1hZ2ljLm9wZW5fY291bnQ9Y3RyO3JldHVybiEoY3RyPj1wb3BNYWdpYy5jb25maWcuZnJlcXVlbmN5X2NvdW50KX0sdmVub3JTaG91bGRTaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHBvcE1hZ2ljLnZlbm9yX2xvYWRlZCYmcG9wTWFnaWMudmVub3I9PT1cIjBcIn0sc2V0QXNPcGVuZWQ6ZnVuY3Rpb24oKXt2YXIgbmV3X2N0cj0xO2lmKHBvcE1hZ2ljLm9wZW5fY291bnQhPT0wKXtuZXdfY3RyPXBvcE1hZ2ljLm9wZW5fY291bnQrMX1lbHNle25ld19jdHI9cG9wTWFnaWMuZ2V0Q291bnRGcm9tQ29va2llKCkrMX1jb25zdCBsYXN0X29wZW5lZF90aW1lPU1hdGguZmxvb3IoRGF0ZS5ub3coKVwvMWUzKTtpZihwb3BNYWdpYy5jb25maWcuY29va2llY29uc2VudCl7cG9wTWFnaWMuc2V0Q29va2llKHBvcE1hZ2ljLmNvb2tpZV9uYW1lLGAke25ld19jdHJ9OyR7bGFzdF9vcGVuZWRfdGltZX1gLHBvcE1hZ2ljLmNvbmZpZy5mcmVxdWVuY3lfcGVyaW9kKX19LGxvYWRIb3N0ZWQ6ZnVuY3Rpb24oKXt2YXIgaG9zdGVkU2NyaXB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7aG9zdGVkU2NyaXB0LnR5cGU9XCJhcHBsaWNhdGlvblwvamF2YXNjcmlwdFwiO2hvc3RlZFNjcmlwdC5hc3luYz10cnVlO2hvc3RlZFNjcmlwdC5zcmM9XCJcL1wvXCIrdGhpcy5jb25maWcuYWRzX2hvc3QrXCJcL3BvcHVuZGVyMTAwMC5qc1wiO2hvc3RlZFNjcmlwdC5pZD1cInBvcG1hZ2ljbGRyXCI7Zm9yKHZhciBrZXkgaW4gdGhpcy5jb25maWcpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5jb25maWcsa2V5KSl7Y29udGludWV9aWYoa2V5PT09XCJhZHNfaG9zdFwifHxrZXk9PT1cInN5bmRpY2F0aW9uX2hvc3RcIil7Y29udGludWV9aG9zdGVkU2NyaXB0LnNldEF0dHJpYnV0ZShcImRhdGEtZXhvLVwiK2tleSx0aGlzLmNvbmZpZ1trZXldKX12YXIgaW5zZXJ0QW5jaG9yPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYm9keVwiKS5pdGVtKDApO2lmKGluc2VydEFuY2hvci5maXJzdENoaWxkKXtpbnNlcnRBbmNob3IuaW5zZXJ0QmVmb3JlKGhvc3RlZFNjcmlwdCxpbnNlcnRBbmNob3IuZmlyc3RDaGlsZCl9ZWxzZXtpbnNlcnRBbmNob3IuYXBwZW5kQ2hpbGQoaG9zdGVkU2NyaXB0KX19LHByZXBhcmVQb3A6ZnVuY3Rpb24oKXtpZih0eXBlb2YgZXhvSnNQb3AxMDE9PT1cIm9iamVjdFwiJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhvSnNQb3AxMDEsXCJhZGRcIikpe3JldHVybn1wb3BNYWdpYy50b3A9c2VsZjtpZihwb3BNYWdpYy50b3AhPT1zZWxmKXt0cnl7aWYodG9wLmRvY3VtZW50LmxvY2F0aW9uLnRvU3RyaW5nKCkpe3BvcE1hZ2ljLnRvcD10b3B9fWNhdGNoKGVycil7fX1wb3BNYWdpYy5jb29raWVfbmFtZT1cInpvbmUtY2FwLVwiK3BvcE1hZ2ljLmNvbmZpZy5pZHpvbmU7aWYocG9wTWFnaWMuc2hvdWxkU2hvdygpKXt2YXIgeG1saHR0cD1uZXcgWE1MSHR0cFJlcXVlc3Q7eG1saHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZih4bWxodHRwLnJlYWR5U3RhdGU9PVhNTEh0dHBSZXF1ZXN0LkRPTkUpe3BvcE1hZ2ljLnZlbm9yX2xvYWRlZD10cnVlO2lmKHhtbGh0dHAuc3RhdHVzPT0yMDApe3BvcE1hZ2ljLnZlbm9yPXhtbGh0dHAucmVzcG9uc2VUZXh0fWVsc2V7cG9wTWFnaWMudmVub3I9XCIwXCJ9fX07dmFyIHByb3RvY29sPWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sIT09XCJodHRwczpcIiYmZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2whPT1cImh0dHA6XCI/XCJodHRwczpcIjpkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbDt4bWxodHRwLm9wZW4oXCJHRVRcIixwcm90b2NvbCtcIlwvXC9cIitwb3BNYWdpYy5jb25maWcuc3luZGljYXRpb25faG9zdCtcIlwvdmVub3IucGhwXCIsdHJ1ZSk7dHJ5e3htbGh0dHAuc2VuZCgpfWNhdGNoKGVycm9yKXtwb3BNYWdpYy52ZW5vcl9sb2FkZWQ9dHJ1ZX19cG9wTWFnaWMuYnVpbGRVcmwoKTtwb3BNYWdpYy5icm93c2VyPXBvcE1hZ2ljLmJyb3dzZXJEZXRlY3Rvci5kZXRlY3RCcm93c2VyKG5hdmlnYXRvci51c2VyQWdlbnQpO2lmKCFwb3BNYWdpYy5jb25maWcuY2hyb21lX2VuYWJsZWQmJihwb3BNYWdpYy5icm93c2VyLm5hbWU9PT1cImNocm9tZVwifHxwb3BNYWdpYy5icm93c2VyLm5hbWU9PT1cImNyaW9zXCIpKXtyZXR1cm59dmFyIHBvcE1ldGhvZD1wb3BNYWdpYy5nZXRQb3BNZXRob2QocG9wTWFnaWMuYnJvd3Nlcik7cG9wTWFnaWMuYWRkRXZlbnQoXCJjbGlja1wiLHBvcE1ldGhvZCl9LGdldFBvcE1ldGhvZDpmdW5jdGlvbihicm93c2VySW5mbyl7aWYocG9wTWFnaWMuY29uZmlnLnBvcHVwX2ZvcmNlKXtyZXR1cm4gcG9wTWFnaWMubWV0aG9kcy5wb3B1cH1pZihwb3BNYWdpYy5jb25maWcucG9wdXBfZmFsbGJhY2smJmJyb3dzZXJJbmZvLm5hbWU9PT1cImNocm9tZVwiJiZicm93c2VySW5mby52ZXJzaW9uPj02OCYmIWJyb3dzZXJJbmZvLmlzTW9iaWxlKXtyZXR1cm4gcG9wTWFnaWMubWV0aG9kcy5wb3B1cH1pZihicm93c2VySW5mby5pc01vYmlsZSl7cmV0dXJuIHBvcE1hZ2ljLm1ldGhvZHMuZGVmYXVsdH1pZihicm93c2VySW5mby5uYW1lPT09XCJjaHJvbWVcIil7cmV0dXJuIHBvcE1hZ2ljLm1ldGhvZHMuY2hyb21lVGFifXJldHVybiBwb3BNYWdpYy5tZXRob2RzLmRlZmF1bHR9LGJ1aWxkVXJsOmZ1bmN0aW9uKCl7dmFyIHByb3RvY29sPWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sIT09XCJodHRwczpcIiYmZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2whPT1cImh0dHA6XCI/XCJodHRwczpcIjpkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbDt2YXIgcD10b3A9PT1zZWxmP2RvY3VtZW50LlVSTDpkb2N1bWVudC5yZWZlcnJlcjt2YXIgc2NyaXB0X2luZm89e3R5cGU6XCJpbmxpbmVcIixuYW1lOlwicG9wTWFnaWNcIix2ZXI6dGhpcy52ZXJzaW9ufTt2YXIgZW5jb2RlU2NyaXB0SW5mbz1mdW5jdGlvbihzY3JpcHRfaW5mbyl7dmFyIHJlc3VsdD1zY3JpcHRfaW5mb1tcInR5cGVcIl0rXCJ8XCIrc2NyaXB0X2luZm9bXCJuYW1lXCJdK1wifFwiK3NjcmlwdF9pbmZvW1widmVyXCJdO3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYnRvYShyZXN1bHQpKX07dmFyIGN1c3RvbVRhcmdldGluZ1BhcmFtcz1cIlwiO2lmKGN1c3RvbVRhcmdldGluZyYmT2JqZWN0LmtleXMoY3VzdG9tVGFyZ2V0aW5nKS5sZW5ndGgpe3ZhciBjdXN0b21UYXJnZXRpbmdLZXlzPXR5cGVvZiBjdXN0b21UYXJnZXRpbmc9PT1cIm9iamVjdFwiP09iamVjdC5rZXlzKGN1c3RvbVRhcmdldGluZyk6Y3VzdG9tVGFyZ2V0aW5nO3ZhciB2YWx1ZTtjdXN0b21UYXJnZXRpbmdLZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KXtpZih0eXBlb2YgY3VzdG9tVGFyZ2V0aW5nPT09XCJvYmplY3RcIil7dmFsdWU9Y3VzdG9tVGFyZ2V0aW5nW2tleV19ZWxzZSBpZihBcnJheS5pc0FycmF5KGN1c3RvbVRhcmdldGluZykpe3ZhbHVlPXNjcmlwdEVsLmdldEF0dHJpYnV0ZShrZXkpfXZhciBrZXlXaXRob3V0RXhvUHJlZml4PWtleS5yZXBsYWNlKFwiZGF0YS1leG8tXCIsXCJcIik7Y3VzdG9tVGFyZ2V0aW5nUGFyYW1zKz1gJiR7a2V5V2l0aG91dEV4b1ByZWZpeH09JHt2YWx1ZX1gfSl9dGhpcy51cmw9cHJvdG9jb2wrXCJcL1wvXCIrdGhpcy5jb25maWcuc3luZGljYXRpb25faG9zdCtcIlwvc3BsYXNoLnBocFwiK1wiP2NhdD1cIit0aGlzLmNvbmZpZy5jYXQrXCImaWR6b25lPVwiK3RoaXMuY29uZmlnLmlkem9uZStcIiZ0eXBlPThcIitcIiZwPVwiK2VuY29kZVVSSUNvbXBvbmVudChwKStcIiZzdWI9XCIrdGhpcy5jb25maWcuc3ViKyh0aGlzLmNvbmZpZy5zdWIyIT09XCJcIj9cIiZzdWIyPVwiK3RoaXMuY29uZmlnLnN1YjI6XCJcIikrKHRoaXMuY29uZmlnLnN1YjMhPT1cIlwiP1wiJnN1YjM9XCIrdGhpcy5jb25maWcuc3ViMzpcIlwiKStcIiZibG9jaz0xXCIrXCImZWw9XCIrdGhpcy5jb25maWcuZWwrXCImdGFncz1cIit0aGlzLmNvbmZpZy50YWdzK1wiJmNvb2tpZWNvbnNlbnQ9XCIrdGhpcy5jb25maWcuY29va2llY29uc2VudCtcIiZzY3JfaW5mbz1cIitlbmNvZGVTY3JpcHRJbmZvKHNjcmlwdF9pbmZvKStjdXN0b21UYXJnZXRpbmdQYXJhbXN9LGFkZEV2ZW50VG9FbGVtZW50OmZ1bmN0aW9uKG9iaix0eXBlLGZuKXtpZihvYmouYWRkRXZlbnRMaXN0ZW5lcil7b2JqLmFkZEV2ZW50TGlzdGVuZXIodHlwZSxmbixmYWxzZSl9ZWxzZSBpZihvYmouYXR0YWNoRXZlbnQpe29ialtcImVcIit0eXBlK2ZuXT1mbjtvYmpbdHlwZStmbl09ZnVuY3Rpb24oKXtvYmpbXCJlXCIrdHlwZStmbl0od2luZG93LmV2ZW50KX07b2JqLmF0dGFjaEV2ZW50KFwib25cIit0eXBlLG9ialt0eXBlK2ZuXSl9ZWxzZXtvYmpbXCJvblwiK3R5cGVdPW9ialtcImVcIit0eXBlK2ZuXX19LGFkZEV2ZW50OmZ1bmN0aW9uKHR5cGUsZm4pe3ZhciB0YXJnZXRFbGVtZW50cztpZihwb3BNYWdpYy5jb25maWcudHJpZ2dlcl9tZXRob2Q9PVwiM1wiKXt0YXJnZXRFbGVtZW50cz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiYVwiKTtmb3IoaT0wO2k8dGFyZ2V0RWxlbWVudHMubGVuZ3RoO2krKyl7cG9wTWFnaWMuYWRkRXZlbnRUb0VsZW1lbnQodGFyZ2V0RWxlbWVudHNbaV0sdHlwZSxmbil9cmV0dXJufWlmKHBvcE1hZ2ljLmNvbmZpZy50cmlnZ2VyX21ldGhvZD09XCIyXCImJnBvcE1hZ2ljLmNvbmZpZy50cmlnZ2VyX21ldGhvZCE9XCJcIil7dmFyIHRyaWdnZXJfY2xhc3Nlczt2YXIgdHJpZ2dlcl9jbGFzc2VzX2ZpbmFsPVtdO2lmKHBvcE1hZ2ljLmNvbmZpZy50cmlnZ2VyX2NsYXNzLmluZGV4T2YoXCIsXCIpPT09LTEpe3RyaWdnZXJfY2xhc3Nlcz1wb3BNYWdpYy5jb25maWcudHJpZ2dlcl9jbGFzcy5zcGxpdChcIiBcIil9ZWxzZXt2YXIgdHJpbW1lZF90cmlnZ2VyX2NsYXNzZXM9cG9wTWFnaWMuY29uZmlnLnRyaWdnZXJfY2xhc3MucmVwbGFjZShcL1xcc1wvZyxcIlwiKTt0cmlnZ2VyX2NsYXNzZXM9dHJpbW1lZF90cmlnZ2VyX2NsYXNzZXMuc3BsaXQoXCIsXCIpfWZvcih2YXIgaT0wO2k8dHJpZ2dlcl9jbGFzc2VzLmxlbmd0aDtpKyspe2lmKHRyaWdnZXJfY2xhc3Nlc1tpXSE9PVwiXCIpe3RyaWdnZXJfY2xhc3Nlc19maW5hbC5wdXNoKFwiLlwiK3RyaWdnZXJfY2xhc3Nlc1tpXSl9fXRhcmdldEVsZW1lbnRzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodHJpZ2dlcl9jbGFzc2VzX2ZpbmFsLmpvaW4oXCIsIFwiKSk7Zm9yKGk9MDtpPHRhcmdldEVsZW1lbnRzLmxlbmd0aDtpKyspe3BvcE1hZ2ljLmFkZEV2ZW50VG9FbGVtZW50KHRhcmdldEVsZW1lbnRzW2ldLHR5cGUsZm4pfXJldHVybn1wb3BNYWdpYy5hZGRFdmVudFRvRWxlbWVudChkb2N1bWVudCx0eXBlLGZuKX0sc2V0Q29va2llOmZ1bmN0aW9uKG5hbWUsdmFsdWUsdHRsX21pbnV0ZXMpe2lmKCF0aGlzLmNvbmZpZy5jb29raWVjb25zZW50KXtyZXR1cm4gZmFsc2V9dHRsX21pbnV0ZXM9cGFyc2VJbnQodHRsX21pbnV0ZXMsMTApO3ZhciBub3dfZGF0ZT1uZXcgRGF0ZTtub3dfZGF0ZS5zZXRNaW51dGVzKG5vd19kYXRlLmdldE1pbnV0ZXMoKStwYXJzZUludCh0dGxfbWludXRlcykpO3ZhciBjX3ZhbHVlPWVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkrXCI7IGV4cGlyZXM9XCIrbm93X2RhdGUudG9VVENTdHJpbmcoKStcIjsgcGF0aD1cL1wiO2RvY3VtZW50LmNvb2tpZT1uYW1lK1wiPVwiK2NfdmFsdWV9LGdldENvb2tpZTpmdW5jdGlvbihuYW1lKXtpZighdGhpcy5jb25maWcuY29va2llY29uc2VudCl7cmV0dXJuIGZhbHNlfXZhciBpLHgseSxjb29raWVzQXJyYXk9ZG9jdW1lbnQuY29va2llLnNwbGl0KFwiO1wiKTtmb3IoaT0wO2k8Y29va2llc0FycmF5Lmxlbmd0aDtpKyspe3g9Y29va2llc0FycmF5W2ldLnN1YnN0cigwLGNvb2tpZXNBcnJheVtpXS5pbmRleE9mKFwiPVwiKSk7eT1jb29raWVzQXJyYXlbaV0uc3Vic3RyKGNvb2tpZXNBcnJheVtpXS5pbmRleE9mKFwiPVwiKSsxKTt4PXgucmVwbGFjZShcL15cXHMrfFxccyskXC9nLFwiXCIpO2lmKHg9PT1uYW1lKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHkpfX19LHJhbmRTdHI6ZnVuY3Rpb24obGVuZ3RoLHBvc3NpYmxlQ2hhcnMpe3ZhciB0ZXh0PVwiXCI7dmFyIHBvc3NpYmxlPXBvc3NpYmxlQ2hhcnN8fFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlcIjtmb3IodmFyIGk9MDtpPGxlbmd0aDtpKyspe3RleHQrPXBvc3NpYmxlLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqcG9zc2libGUubGVuZ3RoKSl9cmV0dXJuIHRleHR9LGlzVmFsaWRVc2VyRXZlbnQ6ZnVuY3Rpb24oZXZlbnQpe2lmKFwiaXNUcnVzdGVkXCJpbiBldmVudCYmZXZlbnQuaXNUcnVzdGVkJiZwb3BNYWdpYy5icm93c2VyLm5hbWUhPT1cImllXCImJnBvcE1hZ2ljLmJyb3dzZXIubmFtZSE9PVwic2FmYXJpXCIpe3JldHVybiB0cnVlfWVsc2V7cmV0dXJuIGV2ZW50LnNjcmVlblghPTAmJmV2ZW50LnNjcmVlblkhPTB9fSxpc1ZhbGlkSHJlZjpmdW5jdGlvbihocmVmKXtpZih0eXBlb2YgaHJlZj09PVwidW5kZWZpbmVkXCJ8fGhyZWY9PVwiXCIpe3JldHVybiBmYWxzZX12YXIgZW1wdHlfcmVmPVwvXFxzP2phdmFzY3JpcHRcXHM/OlwvaTtyZXR1cm4hZW1wdHlfcmVmLnRlc3QoaHJlZil9LGZpbmRMaW5rVG9PcGVuOmZ1bmN0aW9uKGNsaWNrZWRFbGVtZW50KXt2YXIgdGFyZ2V0PWNsaWNrZWRFbGVtZW50O3ZhciBsb2NhdGlvbj1mYWxzZTt0cnl7dmFyIGJyZWFrQ3RyPTA7d2hpbGUoYnJlYWtDdHI8MjAmJiF0YXJnZXQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSYmdGFyZ2V0IT09ZG9jdW1lbnQmJnRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09XCJodG1sXCIpe3RhcmdldD10YXJnZXQucGFyZW50Tm9kZTticmVha0N0cisrfXZhciBlbGVtZW50VGFyZ2V0QXR0cj10YXJnZXQuZ2V0QXR0cmlidXRlKFwidGFyZ2V0XCIpO2lmKCFlbGVtZW50VGFyZ2V0QXR0cnx8ZWxlbWVudFRhcmdldEF0dHIuaW5kZXhPZihcIl9ibGFua1wiKT09PS0xKXtsb2NhdGlvbj10YXJnZXQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKX19Y2F0Y2goZXJyKXt9aWYoIXBvcE1hZ2ljLmlzVmFsaWRIcmVmKGxvY2F0aW9uKSl7bG9jYXRpb249ZmFsc2V9cmV0dXJuIGxvY2F0aW9ufHx3aW5kb3cubG9jYXRpb24uaHJlZn0sZ2V0UHVJZDpmdW5jdGlvbigpe3JldHVyblwib2tfXCIrTWF0aC5mbG9vcig4OTk5OTk5OSpNYXRoLnJhbmRvbSgpKzFlNyl9LGJyb3dzZXJEZXRlY3Rvcjp7YnJvd3NlckRlZmluaXRpb25zOltbXCJmaXJlZm94XCIsXC9GaXJlZm94XFxcLyhbMC05Ll0rKSg/Olxcc3wkKVwvXSxbXCJvcGVyYVwiLFwvT3BlcmFcXFwvKFswLTkuXSspKD86XFxzfCQpXC9dLFtcIm9wZXJhXCIsXC9PUFJcXFwvKFswLTkuXSspKDo/XFxzfCQpJFwvXSxbXCJlZGdlXCIsXC9FZGcoPzplfClcXFwvKFswLTkuX10rKVwvXSxbXCJpZVwiLFwvVHJpZGVudFxcXC83XFwuMC4qcnY6KFswLTkuXSspXFwpLipHZWNrbyRcL10sW1wiaWVcIixcL01TSUVcXHMoWzAtOS5dKyk7LipUcmlkZW50XFxcL1s0LTddLjBcL10sW1wiaWVcIixcL01TSUVcXHMoN1xcLjApXC9dLFtcInNhZmFyaVwiLFwvVmVyc2lvblxcXC8oWzAtOS5fXSspLipTYWZhcmlcL10sW1wiY2hyb21lXCIsXC8oPyFDaHJvbS4qRWRnKD86ZXwpKUNocm9tKD86ZXxpdW0pXFxcLyhbMC05Ll0rKSg6P1xcc3wkKVwvXSxbXCJjaHJvbWVcIixcLyg/IUNocm9tLipPUFIpQ2hyb20oPzplfGl1bSlcXFwvKFswLTkuXSspKDo/XFxzfCQpXC9dLFtcImJiMTBcIixcL0JCMTA7XFxzVG91Y2guKlZlcnNpb25cXFwvKFswLTkuXSspXC9dLFtcImFuZHJvaWRcIixcL0FuZHJvaWRcXHMoWzAtOS5dKylcL10sW1wiaW9zXCIsXC9WZXJzaW9uXFxcLyhbMC05Ll9dKykuKk1vYmlsZS4qU2FmYXJpLipcL10sW1wieWFuZGV4YnJvd3NlclwiLFwvWWFCcm93c2VyXFxcLyhbMC05Ll9dKylcL10sW1wiY3Jpb3NcIixcL0NyaU9TXFxcLyhbMC05Ll0rKSg6P1xcc3wkKVwvXV0sZGV0ZWN0QnJvd3NlcjpmdW5jdGlvbih1c2VyQWdlbnQpe3ZhciBpc01vYmlsZT11c2VyQWdlbnQubWF0Y2goXC9BbmRyb2lkfEJsYWNrQmVycnl8aVBob25lfGlQYWR8aVBvZHxPcGVyYSBNaW5pfElFTW9iaWxlfFdlYk9TfFdpbmRvd3MgUGhvbmVcL2kpO2Zvcih2YXIgaSBpbiB0aGlzLmJyb3dzZXJEZWZpbml0aW9ucyl7dmFyIGRlZmluaXRpb249dGhpcy5icm93c2VyRGVmaW5pdGlvbnNbaV07aWYoZGVmaW5pdGlvblsxXS50ZXN0KHVzZXJBZ2VudCkpe3ZhciBtYXRjaD1kZWZpbml0aW9uWzFdLmV4ZWModXNlckFnZW50KTt2YXIgdmVyc2lvbj1tYXRjaCYmbWF0Y2hbMV0uc3BsaXQoXC9bLl9dXC8pLnNsaWNlKDAsMyk7dmFyIHZlcnNpb25UYWlscz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh2ZXJzaW9uLDEpLmpvaW4oXCJcIil8fFwiMFwiO2lmKHZlcnNpb24mJnZlcnNpb24ubGVuZ3RoPDMpe0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHZlcnNpb24sdmVyc2lvbi5sZW5ndGg9PT0xP1swLDBdOlswXSl9cmV0dXJue25hbWU6ZGVmaW5pdGlvblswXSx2ZXJzaW9uOnZlcnNpb24uam9pbihcIi5cIiksdmVyc2lvbk51bWJlcjpwYXJzZUZsb2F0KHZlcnNpb25bMF0rXCIuXCIrdmVyc2lvblRhaWxzKSxpc01vYmlsZTppc01vYmlsZX19fXJldHVybntuYW1lOlwib3RoZXJcIix2ZXJzaW9uOlwiMS4wXCIsdmVyc2lvbk51bWJlcjoxLGlzTW9iaWxlOmlzTW9iaWxlfX19LG1ldGhvZHM6e2RlZmF1bHQ6ZnVuY3Rpb24odHJpZ2dlcmVkRXZlbnQpe2lmKCFwb3BNYWdpYy5zaG91bGRTaG93KCl8fCFwb3BNYWdpYy52ZW5vclNob3VsZFNob3coKXx8IXBvcE1hZ2ljLmlzVmFsaWRVc2VyRXZlbnQodHJpZ2dlcmVkRXZlbnQpKXJldHVybiB0cnVlO3ZhciBjbGlja2VkRWxlbWVudD10cmlnZ2VyZWRFdmVudC50YXJnZXR8fHRyaWdnZXJlZEV2ZW50LnNyY0VsZW1lbnQ7dmFyIGhyZWY9cG9wTWFnaWMuZmluZExpbmtUb09wZW4oY2xpY2tlZEVsZW1lbnQpO3dpbmRvdy5vcGVuKGhyZWYsXCJfYmxhbmtcIik7cG9wTWFnaWMuc2V0QXNPcGVuZWQoKTtwb3BNYWdpYy50b3AuZG9jdW1lbnQubG9jYXRpb249cG9wTWFnaWMudXJsO2lmKHR5cGVvZiB0cmlnZ2VyZWRFdmVudC5wcmV2ZW50RGVmYXVsdCE9PVwidW5kZWZpbmVkXCIpe3RyaWdnZXJlZEV2ZW50LnByZXZlbnREZWZhdWx0KCk7dHJpZ2dlcmVkRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9cmV0dXJuIHRydWV9LGNocm9tZVRhYjpmdW5jdGlvbihldmVudCl7aWYoIXBvcE1hZ2ljLnNob3VsZFNob3coKXx8IXBvcE1hZ2ljLnZlbm9yU2hvdWxkU2hvdygpfHwhcG9wTWFnaWMuaXNWYWxpZFVzZXJFdmVudChldmVudCkpcmV0dXJuIHRydWU7aWYodHlwZW9mIGV2ZW50LnByZXZlbnREZWZhdWx0IT09XCJ1bmRlZmluZWRcIil7ZXZlbnQucHJldmVudERlZmF1bHQoKTtldmVudC5zdG9wUHJvcGFnYXRpb24oKX1lbHNle3JldHVybiB0cnVlfXZhciBhPXRvcC53aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7dmFyIHRhcmdldD1ldmVudC50YXJnZXR8fGV2ZW50LnNyY0VsZW1lbnQ7YS5ocmVmPXBvcE1hZ2ljLmZpbmRMaW5rVG9PcGVuKHRhcmdldCk7ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJib2R5XCIpWzBdLmFwcGVuZENoaWxkKGEpO3ZhciBlPW5ldyBNb3VzZUV2ZW50KFwiY2xpY2tcIix7YnViYmxlczp0cnVlLGNhbmNlbGFibGU6dHJ1ZSx2aWV3OndpbmRvdyxzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAsY3RybEtleTp0cnVlLGFsdEtleTpmYWxzZSxzaGlmdEtleTpmYWxzZSxtZXRhS2V5OnRydWUsYnV0dG9uOjB9KTtlLnByZXZlbnREZWZhdWx0PXVuZGVmaW5lZDthLmRpc3BhdGNoRXZlbnQoZSk7YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpO3dpbmRvdy5vcGVuKHBvcE1hZ2ljLnVybCxcIl9zZWxmXCIpO3BvcE1hZ2ljLnNldEFzT3BlbmVkKCl9LHBvcHVwOmZ1bmN0aW9uKHRyaWdnZXJlZEV2ZW50KXtpZighcG9wTWFnaWMuc2hvdWxkU2hvdygpfHwhcG9wTWFnaWMudmVub3JTaG91bGRTaG93KCl8fCFwb3BNYWdpYy5pc1ZhbGlkVXNlckV2ZW50KHRyaWdnZXJlZEV2ZW50KSlyZXR1cm4gdHJ1ZTt2YXIgd2luT3B0aW9ucz1cIlwiO2lmKHBvcE1hZ2ljLmNvbmZpZy5wb3B1cF9mYWxsYmFjayYmIXBvcE1hZ2ljLmNvbmZpZy5wb3B1cF9mb3JjZSl7dmFyIGhlaWdodD1NYXRoLm1heChNYXRoLnJvdW5kKHdpbmRvdy5pbm5lckhlaWdodCouOCksMzAwKTt2YXIgd2lkdGg9TWF0aC5tYXgoTWF0aC5yb3VuZCh3aW5kb3cuaW5uZXJXaWR0aCouNyksMzAwKTt2YXIgdG9wPXdpbmRvdy5zY3JlZW5ZKzEwMDt2YXIgbGVmdD13aW5kb3cuc2NyZWVuWCsxMDA7d2luT3B0aW9ucz1cIm1lbnViYXI9MSxyZXNpemFibGU9MSx3aWR0aD1cIit3aWR0aCtcIixoZWlnaHQ9XCIraGVpZ2h0K1wiLHRvcD1cIit0b3ArXCIsbGVmdD1cIitsZWZ0fXZhciBwcmVQb3BVcmw9ZG9jdW1lbnQubG9jYXRpb24uaHJlZjt2YXIgcG9wV2luPXdpbmRvdy5vcGVuKHByZVBvcFVybCxwb3BNYWdpYy5nZXRQdUlkKCksd2luT3B0aW9ucyk7c2V0VGltZW91dChmdW5jdGlvbigpe3BvcFdpbi5sb2NhdGlvbi5ocmVmPXBvcE1hZ2ljLnVybH0sMjAwKTtwb3BNYWdpYy5zZXRBc09wZW5lZCgpO2lmKHR5cGVvZiB0cmlnZ2VyZWRFdmVudC5wcmV2ZW50RGVmYXVsdCE9PVwidW5kZWZpbmVkXCIpe3RyaWdnZXJlZEV2ZW50LnByZXZlbnREZWZhdWx0KCk7dHJpZ2dlcmVkRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9fX19OyAgICBwb3BNYWdpYy5pbml0KGFkQ29uZmlnKTtcclxufSkoKTtcclxuXHJcblxyXG48XC9zY3JpcHQ+In0seyJpZCI6ImV4b21fal9QT1BVTkRFUiIsImFkc3BvdCI6ImpfUE9QVU5ERVIiLCJ3ZWlnaHQiOiI2IiwiZmNhcCI6IjIiLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdCBzcmM9XCJcL1wvc3luZGljYXRpb24uZXhvY2xpY2suY29tXC9zcGxhc2gucGhwP2lkem9uZT0xMDI2MzEyJnR5cGU9MTFcIj48XC9zY3JpcHQ+XHJcbjxzY3JpcHQ+XHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHR5cGVvZiBleG9VcmwgIT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgIGV4b1VybCA9IGV4b1VybC5yZXBsYWNlKCdodHRwOlwvXC8nLCAnaHR0cHM6XC9cLycpO1xyXG4gICAgfVxyXG4gICAgJChcImFcIikuYmluZChcImNsaWNrXCIsIGZ1bmN0aW9uKGV2ZW50KSB7XHJcbiAgICAgICAgZXhvTW9iaWxlUG9wKCk7XHJcbiAgICAgICAgJCh0aGlzKS51bmJpbmQoXCJjbGlja1wiKTtcclxuICAgIH0pO1xyXG59KTtcclxuPFwvc2NyaXB0PiJ9XQ==