tx · C7SL7nYkGMuz2u7xC79zToiLY64sJa12eUW7cAW8u1co
3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ: -0.04991700 Waves
2019.12.03 19:45 [792756] data 3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ > SELF 0.00000000 Waves
3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ: qwe?runtime.js?2?2: "base64:YXRlKWk9UmVmbGVjdC5kZWNvcmF0ZShlLHQsbixyKTtlbHNlIGZvcih2YXIgYz1lLmxlbmd0aC0xO2M+PTA7Yy0tKShvPWVbY10pJiYoaT0oYTwzP28oaSk6YT4zP28odCxuLGkpOm8odCxuKSl8fGkpO3JldHVybiBhPjMmJmkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4saSksaX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4scil7dChuLHIsZSl9fWZ1bmN0aW9uIHUoZSx0KXtpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhKXJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGUsdCl9ZnVuY3Rpb24gbChlLHQsbixyKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24obyxhKXtmdW5jdGlvbiBpKGUpe3RyeXtzKHIubmV4dChlKSl9Y2F0Y2godCl7YSh0KX19ZnVuY3Rpb24gYyhlKXt0cnl7cyhyLnRocm93KGUpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBzKGUpe2UuZG9uZT9vKGUudmFsdWUpOm5ldyBuKChmdW5jdGlvbih0KXt0KGUudmFsdWUpfSkpLnRoZW4oaSxjKX1zKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KSl9ZnVuY3Rpb24gZihlLHQpe3ZhciBuLHIsbyxhLGk9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGE9e25leHQ6YygwKSx0aHJvdzpjKDEpLHJldHVybjpjKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoYVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxhO2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBmdW5jdGlvbihhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2k7KXRyeXtpZihuPTEsciYmKG89MiZhWzBdP3IucmV0dXJuOmFbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixhWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihhPVsyJmFbMF0sby52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6bz1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gaS5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTppLmxhYmVsKysscj1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPWkub3BzLnBvcCgpLGkudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEobz0obz1pLnRyeXMpLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdKSYmKDY9PT1hWzBdfHwyPT09YVswXSkpe2k9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFvfHxhWzFdPm9bMF0mJmFbMV08b1szXSkpe2kubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmaS5sYWJlbDxvWzFdKXtpLmxhYmVsPW9bMV0sbz1hO2JyZWFrfWlmKG8mJmkubGFiZWw8b1syXSl7aS5sYWJlbD1vWzJdLGkub3BzLnB1c2goYSk7YnJlYWt9b1syXSYmaS5vcHMucG9wKCksaS50cnlzLnBvcCgpO2NvbnRpbnVlfWE9dC5jYWxsKGUsaSl9Y2F0Y2goYyl7YT1bNixjXSxyPTB9ZmluYWxseXtuPW89MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0oW2EsY10pfX19ZnVuY3Rpb24gcChlLHQpe2Zvcih2YXIgbiBpbiBlKXQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPWVbbl0pfWZ1bmN0aW9uIGgoZSl7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdLG49MDtyZXR1cm4gdD90LmNhbGwoZSk6e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSYmbj49ZS5sZW5ndGgmJihlPXZvaWQgMCkse3ZhbHVlOmUmJmVbbisrXSxkb25lOiFlfX19fWZ1bmN0aW9uIGQoZSx0KXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIGU7dmFyIHIsbyxhPW4uY2FsbChlKSxpPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT10fHx0LS0gPjApJiYhKHI9YS5uZXh0KCkpLmRvbmU7KWkucHVzaChyLnZhbHVlKX1jYXRjaChjKXtvPXtlcnJvcjpjfX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYobj1hLnJldHVybikmJm4uY2FsbChhKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIGl9ZnVuY3Rpb24gdigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllPWUuY29uY2F0KGQoYXJndW1lbnRzW3RdKSk7cmV0dXJuIGV9ZnVuY3Rpb24geSgpe2Zvcih2YXIgZT0wLHQ9MCxuPWFyZ3VtZW50cy5sZW5ndGg7dDxuO3QrKyllKz1hcmd1bWVudHNbdF0ubGVuZ3RoO3ZhciByPUFycmF5KGUpLG89MDtmb3IodD0wO3Q8bjt0KyspZm9yKHZhciBhPWFyZ3VtZW50c1t0XSxpPTAsYz1hLmxlbmd0aDtpPGM7aSsrLG8rKylyW29dPWFbaV07cmV0dXJuIHJ9ZnVuY3Rpb24gZyhlKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGc/KHRoaXMudj1lLHRoaXMpOm5ldyBnKGUpfWZ1bmN0aW9uIF8oZSx0LG4pe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgcixvPW4uYXBwbHkoZSx0fHxbXSksYT1bXTtyZXR1cm4gcj17fSxpKCJuZXh0IiksaSgidGhyb3ciKSxpKCJyZXR1cm4iKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyO2Z1bmN0aW9uIGkoZSl7b1tlXSYmKHJbZV09ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLHIpe2EucHVzaChbZSx0LG4scl0pPjF8fGMoZSx0KX0pKX0pfWZ1bmN0aW9uIGMoZSx0KXt0cnl7KG49b1tlXSh0KSkudmFsdWUgaW5zdGFuY2VvZiBnP1Byb21pc2UucmVzb2x2ZShuLnZhbHVlLnYpLnRoZW4ocyx1KTpsKGFbMF1bMl0sbil9Y2F0Y2gocil7bChhWzBdWzNdLHIpfXZhciBufWZ1bmN0aW9uIHMoZSl7YygibmV4dCIsZSl9ZnVuY3Rpb24gdShlKXtjKCJ0aHJvdyIsZSl9ZnVuY3Rpb24gbChlLHQpe2UodCksYS5zaGlmdCgpLGEubGVuZ3RoJiZjKGFbMF1bMF0sYVswXVsxXSl9fWZ1bmN0aW9uIG0oZSl7dmFyIHQsbjtyZXR1cm4gdD17fSxyKCJuZXh0IikscigidGhyb3ciLChmdW5jdGlvbihlKXt0aHJvdyBlfSkpLHIoInJldHVybiIpLHRbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0O2Z1bmN0aW9uIHIocixvKXt0W3JdPWVbcl0/ZnVuY3Rpb24odCl7cmV0dXJuKG49IW4pP3t2YWx1ZTpnKGVbcl0odCkpLGRvbmU6InJldHVybiI9PT1yfTpvP28odCk6dH06b319ZnVuY3Rpb24gYihlKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIHQsbj1lW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTtyZXR1cm4gbj9uLmNhbGwoZSk6KGU9aChlKSx0PXt9LHIoIm5leHQiKSxyKCJ0aHJvdyIpLHIoInJldHVybiIpLHRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQpO2Z1bmN0aW9uIHIobil7dFtuXT1lW25dJiZmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7IWZ1bmN0aW9uKGUsdCxuLHIpe1Byb21pc2UucmVzb2x2ZShyKS50aGVuKChmdW5jdGlvbih0KXtlKHt2YWx1ZTp0LGRvbmU6bn0pfSksdCl9KHIsbywodD1lW25dKHQpKS5kb25lLHQudmFsdWUpfSkpfX19ZnVuY3Rpb24gayhlLHQpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJhdyIse3ZhbHVlOnR9KTplLnJhdz10LGV9ZnVuY3Rpb24gVChlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodFtuXT1lW25dKTtyZXR1cm4gdC5kZWZhdWx0PWUsdH1mdW5jdGlvbiB3KGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX19fSxbWzIsMF1dXSk7"
3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ: qwe?runtime.js?2?1: "base64:cmVwZW5kJiYodz1UW3Yoci5wcmVwZW5kKV09VFtyLnByZXBlbmRdKTt2YXIgQz1pP2Z1bmN0aW9uKGUpe2lmKCFTLmlzRXhpc3RpbmcpcmV0dXJuIHooZSksUC5jYWxsKFMudGFyZ2V0LFMuZXZlbnROYW1lLFMuY2FwdHVyZT9iOm0sUy5vcHRpb25zKX06ZnVuY3Rpb24oZSl7cmV0dXJuIHooZSksUC5jYWxsKFMudGFyZ2V0LFMuZXZlbnROYW1lLGUuaW52b2tlLFMub3B0aW9ucyl9LEk9aT9mdW5jdGlvbihlKXtpZighZS5pc1JlbW92ZWQpe3ZhciB0PVdbZS5ldmVudE5hbWVdLG49dm9pZCAwO3QmJihuPXRbZS5jYXB0dXJlP2w6Zl0pO3ZhciByPW4mJmUudGFyZ2V0W25dO2lmKHIpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspaWYocltvXT09PWUpe3Iuc3BsaWNlKG8sMSksZS5pc1JlbW92ZWQ9ITAsMD09PXIubGVuZ3RoJiYoZS5hbGxSZW1vdmVkPSEwLGUudGFyZ2V0W25dPW51bGwpO2JyZWFrfX1pZihlLmFsbFJlbW92ZWQpcmV0dXJuIEQuY2FsbChlLnRhcmdldCxlLmV2ZW50TmFtZSxlLmNhcHR1cmU/YjptLGUub3B0aW9ucyl9OmZ1bmN0aW9uKGUpe3JldHVybiBELmNhbGwoZS50YXJnZXQsZS5ldmVudE5hbWUsZS5pbnZva2UsZS5vcHRpb25zKX0sUj1yJiZyLmRpZmY/ci5kaWZmOmZ1bmN0aW9uKGUsdCl7dmFyIG49dHlwZW9mIHQ7cmV0dXJuImZ1bmN0aW9uIj09PW4mJmUuY2FsbGJhY2s9PT10fHwib2JqZWN0Ij09PW4mJmUub3JpZ2luYWxEZWxlZ2F0ZT09PXR9LHg9Wm9uZVtab25lLl9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKV0sTD1mdW5jdGlvbih0LG4scixvLGEscyl7cmV0dXJuIHZvaWQgMD09PWEmJihhPSExKSx2b2lkIDA9PT1zJiYocz0hMSksZnVuY3Rpb24oKXt2YXIgdT10aGlzfHxlLGg9YXJndW1lbnRzWzBdLGQ9YXJndW1lbnRzWzFdO2lmKCFkKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihFJiYidW5jYXVnaHRFeGNlcHRpb24iPT09aClyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIHY9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGQpe2lmKCFkLmhhbmRsZUV2ZW50KXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2PSEwfWlmKCFjfHxjKHQsZCx1LGFyZ3VtZW50cykpe3ZhciB5LGc9YXJndW1lbnRzWzJdO2lmKHgpZm9yKHZhciBtPTA7bTx4Lmxlbmd0aDttKyspaWYoaD09PXhbbV0pcmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBiPSExO3ZvaWQgMD09PWc/eT0hMTohMD09PWc/eT0hMDohMT09PWc/eT0hMTooeT0hIWcmJiEhZy5jYXB0dXJlLGI9ISFnJiYhIWcub25jZSk7dmFyIGssVD1ab25lLmN1cnJlbnQsdz1XW2hdO2lmKHcpaz13W3k/bDpmXTtlbHNle3ZhciBQPShPP08oaCk6aCkrZixEPShPP08oaCk6aCkrbCxaPXArUCxqPXArRDtXW2hdPXt9LFdbaF1bZl09WixXW2hdW2xdPWosaz15P2o6Wn12YXIgeixDPXVba10sST0hMTtpZihDKXtpZihJPSEwLF8pZm9yKG09MDttPEMubGVuZ3RoO20rKylpZihSKENbbV0sZCkpcmV0dXJufWVsc2UgQz11W2tdPVtdO3ZhciBNPXUuY29uc3RydWN0b3IubmFtZSxMPXFbTV07TCYmKHo9TFtoXSksenx8KHo9TStuKyhPP08oaCk6aCkpLFMub3B0aW9ucz1nLGImJihTLm9wdGlvbnMub25jZT0hMSksUy50YXJnZXQ9dSxTLmNhcHR1cmU9eSxTLmV2ZW50TmFtZT1oLFMuaXNFeGlzdGluZz1JO3ZhciBOPWk/Qjp2b2lkIDA7TiYmKE4udGFza0RhdGE9Uyk7dmFyIEY9VC5zY2hlZHVsZUV2ZW50VGFzayh6LGQsTixyLG8pO3JldHVybiBTLnRhcmdldD1udWxsLE4mJihOLnRhc2tEYXRhPW51bGwpLGImJihnLm9uY2U9ITApLChIfHwiYm9vbGVhbiIhPXR5cGVvZiBGLm9wdGlvbnMpJiYoRi5vcHRpb25zPWcpLEYudGFyZ2V0PXUsRi5jYXB0dXJlPXksRi5ldmVudE5hbWU9aCx2JiYoRi5vcmlnaW5hbERlbGVnYXRlPWQpLHM/Qy51bnNoaWZ0KEYpOkMucHVzaChGKSxhP3U6dm9pZCAwfX19O3JldHVybiBUW29dPUwoUCxkLEMsSSxrKSx3JiYoVFt5XT1MKHcsZywoZnVuY3Rpb24oZSl7cmV0dXJuIHcuY2FsbChTLnRhcmdldCxTLmV2ZW50TmFtZSxlLmludm9rZSxTLm9wdGlvbnMpfSksSSxrLCEwKSksVFthXT1mdW5jdGlvbigpe3ZhciB0LG49dGhpc3x8ZSxyPWFyZ3VtZW50c1swXSxvPWFyZ3VtZW50c1syXTt0PXZvaWQgMCE9PW8mJighMD09PW98fCExIT09byYmISFvJiYhIW8uY2FwdHVyZSk7dmFyIGE9YXJndW1lbnRzWzFdO2lmKCFhKXJldHVybiBELmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZighY3x8YyhELGEsbixhcmd1bWVudHMpKXt2YXIgaSxzPVdbcl07cyYmKGk9c1t0P2w6Zl0pO3ZhciB1PWkmJm5baV07aWYodSlmb3IodmFyIHA9MDtwPHUubGVuZ3RoO3ArKyl7dmFyIGg9dVtwXTtpZihSKGgsYSkpcmV0dXJuIHUuc3BsaWNlKHAsMSksaC5pc1JlbW92ZWQ9ITAsMD09PXUubGVuZ3RoJiYoaC5hbGxSZW1vdmVkPSEwLG5baV09bnVsbCksaC56b25lLmNhbmNlbFRhc2soaCksaz9uOnZvaWQgMH1yZXR1cm4gRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxUW3NdPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXN8fGUsbj1hcmd1bWVudHNbMF0scj1bXSxvPVkodCxPP08obik6biksYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgaT1vW2FdLGM9aS5vcmlnaW5hbERlbGVnYXRlP2kub3JpZ2luYWxEZWxlZ2F0ZTppLmNhbGxiYWNrO3IucHVzaChjKX1yZXR1cm4gcn0sVFt1XT1mdW5jdGlvbigpe3ZhciB0PXRoaXN8fGUsbj1hcmd1bWVudHNbMF07aWYobil7dmFyIHI9V1tuXTtpZihyKXt2YXIgbz1yW2ZdLGk9cltsXSxjPXRbb10scz10W2ldO2lmKGMpe3ZhciBwPWMuc2xpY2UoKTtmb3Iodj0wO3Y8cC5sZW5ndGg7disrKXRoaXNbYV0uY2FsbCh0aGlzLG4sKGg9cFt2XSkub3JpZ2luYWxEZWxlZ2F0ZT9oLm9yaWdpbmFsRGVsZWdhdGU6aC5jYWxsYmFjayxoLm9wdGlvbnMpfWlmKHMpZm9yKHA9cy5zbGljZSgpLHY9MDt2PHAubGVuZ3RoO3YrKyl7dmFyIGg7dGhpc1thXS5jYWxsKHRoaXMsbiwoaD1wW3ZdKS5vcmlnaW5hbERlbGVnYXRlP2gub3JpZ2luYWxEZWxlZ2F0ZTpoLmNhbGxiYWNrLGgub3B0aW9ucyl9fX1lbHNle2Zvcih2YXIgZD1PYmplY3Qua2V5cyh0KSx2PTA7djxkLmxlbmd0aDt2Kyspe3ZhciB5PWRbdl0sZz1VLmV4ZWMoeSksXz1nJiZnWzFdO18mJiJyZW1vdmVMaXN0ZW5lciIhPT1fJiZ0aGlzW3VdLmNhbGwodGhpcyxfKX10aGlzW3VdLmNhbGwodGhpcywicmVtb3ZlTGlzdGVuZXIiKX1pZihrKXJldHVybiB0aGlzfSxNKFRbb10sUCksTShUW2FdLEQpLGomJk0oVFt1XSxqKSxaJiZNKFRbc10sWiksITB9Zm9yKHZhciBUPVtdLHc9MDt3PHQubGVuZ3RoO3crKylUW3ddPWsodFt3XSxyKTtyZXR1cm4gVH1mdW5jdGlvbiBZKGUsdCl7dmFyIG49W107Zm9yKHZhciByIGluIGUpe3ZhciBvPVUuZXhlYyhyKSxhPW8mJm9bMV07aWYoYSYmKCF0fHxhPT09dCkpe3ZhciBpPWVbcl07aWYoaSlmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKyluLnB1c2goaVtjXSl9fXJldHVybiBufWZ1bmN0aW9uIEooZSx0KXt2YXIgbj1lLkV2ZW50O24mJm4ucHJvdG90eXBlJiZ0LnBhdGNoTWV0aG9kKG4ucHJvdG90eXBlLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt0W1ZdPSEwLGUmJmUuYXBwbHkodCxuKX19KSl9ZnVuY3Rpb24gSyhlLHQsbixyLG8pe3ZhciBhPVpvbmUuX19zeW1ib2xfXyhyKTtpZighdFthXSl7dmFyIGk9dFthXT10W3JdO3Rbcl09ZnVuY3Rpb24oYSxjLHMpe3JldHVybiBjJiZjLnByb3RvdHlwZSYmby5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbz1uKyIuIityKyI6OiIrdCxhPWMucHJvdG90eXBlO2lmKGEuaGFzT3duUHJvcGVydHkodCkpe3ZhciBpPWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsdCk7aSYmaS52YWx1ZT8oaS52YWx1ZT1lLndyYXBXaXRoQ3VycmVudFpvbmUoaS52YWx1ZSxvKSxlLl9yZWRlZmluZVByb3BlcnR5KGMucHJvdG90eXBlLHQsaSkpOmFbdF0mJihhW3RdPWUud3JhcFdpdGhDdXJyZW50Wm9uZShhW3RdLG8pKX1lbHNlIGFbdF0mJihhW3RdPWUud3JhcFdpdGhDdXJyZW50Wm9uZShhW3RdLG8pKX0pKSxpLmNhbGwodCxhLGMscyl9LGUuYXR0YWNoT3JpZ2luVG9QYXRjaGVkKHRbcl0saSl9fXZhciBRPVpvbmUuX19zeW1ib2xfXywkPU9iamVjdFtRKCJkZWZpbmVQcm9wZXJ0eSIpXT1PYmplY3QuZGVmaW5lUHJvcGVydHksZWU9T2JqZWN0W1EoImdldE93blByb3BlcnR5RGVzY3JpcHRvciIpXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHRlPU9iamVjdC5jcmVhdGUsbmU9USgidW5jb25maWd1cmFibGVzIik7ZnVuY3Rpb24gcmUoZSx0LG4pe3ZhciByPW4uY29uZmlndXJhYmxlO3JldHVybiBpZShlLHQsbj1hZShlLHQsbikscil9ZnVuY3Rpb24gb2UoZSx0KXtyZXR1cm4gZSYmZVtuZV0mJmVbbmVdW3RdfWZ1bmN0aW9uIGFlKGUsdCxuKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKG4pfHwobi5jb25maWd1cmFibGU9ITApLG4uY29uZmlndXJhYmxlfHwoZVtuZV18fE9iamVjdC5pc0Zyb3plbihlKXx8JChlLG5lLHt3cml0YWJsZTohMCx2YWx1ZTp7fX0pLGVbbmVdJiYoZVtuZV1bdF09ITApKSxufWZ1bmN0aW9uIGllKGUsdCxuLHIpe3RyeXtyZXR1cm4gJChlLHQsbil9Y2F0Y2goYSl7aWYoIW4uY29uZmlndXJhYmxlKXRocm93IGE7dm9pZCAwPT09cj9kZWxldGUgbi5jb25maWd1cmFibGU6bi5jb25maWd1cmFibGU9cjt0cnl7cmV0dXJuICQoZSx0LG4pfWNhdGNoKGEpe3ZhciBvPW51bGw7dHJ5e289SlNPTi5zdHJpbmdpZnkobil9Y2F0Y2goYSl7bz1uLnRvU3RyaW5nKCl9Y29uc29sZS5sb2coIkF0dGVtcHRpbmcgdG8gY29uZmlndXJlICciK3QrIicgd2l0aCBkZXNjcmlwdG9yICciK28rIicgb24gb2JqZWN0ICciK2UrIicgYW5kIGdvdCBlcnJvciwgZ2l2aW5nIHVwOiAiK2EpfX19dmFyIGNlPVsiYWJzb2x1dGVkZXZpY2VvcmllbnRhdGlvbiIsImFmdGVyaW5wdXQiLCJhZnRlcnByaW50IiwiYXBwaW5zdGFsbGVkIiwiYmVmb3JlaW5zdGFsbHByb21wdCIsImJlZm9yZXByaW50IiwiYmVmb3JldW5sb2FkIiwiZGV2aWNlbGlnaHQiLCJkZXZpY2Vtb3Rpb24iLCJkZXZpY2VvcmllbnRhdGlvbiIsImRldmljZW9yaWVudGF0aW9uYWJzb2x1dGUiLCJkZXZpY2Vwcm94aW1pdHkiLCJoYXNoY2hhbmdlIiwibGFuZ3VhZ2VjaGFuZ2UiLCJtZXNzYWdlIiwibW96YmVmb3JlcGFpbnQiLCJvZmZsaW5lIiwib25saW5lIiwicGFpbnQiLCJwYWdlc2hvdyIsInBhZ2VoaWRlIiwicG9wc3RhdGUiLCJyZWplY3Rpb25oYW5kbGVkIiwic3RvcmFnZSIsInVuaGFuZGxlZHJlamVjdGlvbiIsInVubG9hZCIsInVzZXJwcm94aW1pdHkiLCJ2cmRpc3BseWNvbm5lY3RlZCIsInZyZGlzcGxheWRpc2Nvbm5lY3RlZCIsInZyZGlzcGxheXByZXNlbnRjaGFuZ2UiXSxzZT1bImVuY3J5cHRlZCIsIndhaXRpbmdmb3JrZXkiLCJtc25lZWRrZXkiLCJtb3ppbnRlcnJ1cHRiZWdpbiIsIm1vemludGVycnVwdGVuZCJdLHVlPVsibG9hZCJdLGxlPVsiYmx1ciIsImVycm9yIiwiZm9jdXMiLCJsb2FkIiwicmVzaXplIiwic2Nyb2xsIiwibWVzc2FnZWVycm9yIl0sZmU9WyJib3VuY2UiLCJmaW5pc2giLCJzdGFydCJdLHBlPVsibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsInByb2dyZXNzIiwidGltZW91dCIsImxvYWRlbmQiLCJyZWFkeXN0YXRlY2hhbmdlIl0saGU9WyJ1cGdyYWRlbmVlZGVkIiwiY29tcGxldGUiLCJhYm9ydCIsInN1Y2Nlc3MiLCJlcnJvciIsImJsb2NrZWQiLCJ2ZXJzaW9uY2hhbmdlIiwiY2xvc2UiXSxkZT1bImNsb3NlIiwiZXJyb3IiLCJvcGVuIiwibWVzc2FnZSJdLHZlPVsiZXJyb3IiLCJtZXNzYWdlIl0seWU9WyJhYm9ydCIsImFuaW1hdGlvbmNhbmNlbCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImF1eGNsaWNrIiwiYmVmb3JlaW5wdXQiLCJibHVyIiwiY2FuY2VsIiwiY2FucGxheSIsImNhbnBsYXl0aHJvdWdoIiwiY2hhbmdlIiwiY29tcG9zaXRpb25zdGFydCIsImNvbXBvc2l0aW9udXBkYXRlIiwiY29tcG9zaXRpb25lbmQiLCJjdWVjaGFuZ2UiLCJjbGljayIsImNsb3NlIiwiY29udGV4dG1lbnUiLCJjdXJlY2hhbmdlIiwiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdlbnRlciIsImRyYWdleGl0IiwiZHJhZ2xlYXZlIiwiZHJhZ292ZXIiLCJkcm9wIiwiZHVyYXRpb25jaGFuZ2UiLCJlbXB0aWVkIiwiZW5kZWQiLCJlcnJvciIsImZvY3VzIiwiZm9jdXNpbiIsImZvY3Vzb3V0IiwiZ290cG9pbnRlcmNhcHR1cmUiLCJpbnB1dCIsImludmFsaWQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImxvYWQiLCJsb2Fkc3RhcnQiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtb3VzZWRvd24iLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIsIm1vdXNld2hlZWwiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBhdXNlIiwicGxheSIsInBsYXlpbmciLCJwb2ludGVyY2FuY2VsIiwicG9pbnRlcmRvd24iLCJwb2ludGVyZW50ZXIiLCJwb2ludGVybGVhdmUiLCJwb2ludGVybG9ja2NoYW5nZSIsIm1venBvaW50ZXJsb2NrY2hhbmdlIiwid2Via2l0cG9pbnRlcmxvY2tlcmNoYW5nZSIsInBvaW50ZXJsb2NrZXJyb3IiLCJtb3pwb2ludGVybG9ja2Vycm9yIiwid2Via2l0cG9pbnRlcmxvY2tlcnJvciIsInBvaW50ZXJtb3ZlIiwicG9pbnRvdXQiLCJwb2ludGVyb3ZlciIsInBvaW50ZXJ1cCIsInByb2dyZXNzIiwicmF0ZWNoYW5nZSIsInJlc2V0IiwicmVzaXplIiwic2Nyb2xsIiwic2Vla2VkIiwic2Vla2luZyIsInNlbGVjdCIsInNlbGVjdGlvbmNoYW5nZSIsInNlbGVjdHN0YXJ0Iiwic2hvdyIsInNvcnQiLCJzdGFsbGVkIiwic3VibWl0Iiwic3VzcGVuZCIsInRpbWV1cGRhdGUiLCJ2b2x1bWVjaGFuZ2UiLCJ0b3VjaGNhbmNlbCIsInRvdWNobW92ZSIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9uZW5kIiwid2FpdGluZyIsIndoZWVsIl0uY29uY2F0KFsid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciJdLFsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlZXJyb3IiXSxbInRvZ2dsZSJdLFsiYWZ0ZXJzY3JpcHRleGVjdXRlIiwiYmVmb3Jlc2NyaXB0ZXhlY3V0ZSIsIkRPTUNvbnRlbnRMb2FkZWQiLCJmcmVlemUiLCJmdWxsc2NyZWVuY2hhbmdlIiwibW96ZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtc2Z1bGxzY3JlZW5jaGFuZ2UiLCJmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtc2Z1bGxzY3JlZW5lcnJvciIsInJlYWR5c3RhdGVjaGFuZ2UiLCJ2aXNpYmlsaXR5Y2hhbmdlIiwicmVzdW1lIl0sY2UsWyJiZWZvcmVjb3B5IiwiYmVmb3JlY3V0IiwiYmVmb3JlcGFzdGUiLCJjb3B5IiwiY3V0IiwicGFzdGUiLCJkcmFnc3RhcnQiLCJsb2FkZW5kIiwiYW5pbWF0aW9uc3RhcnQiLCJzZWFyY2giLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0Iiwid2Via2l0YW5pbWF0aW9uZW5kIiwid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwid2Via2l0YW5pbWF0aW9uc3RhcnQiLCJ3ZWJraXR0cmFuc2l0aW9uZW5kIl0sWyJhY3RpdmF0ZSIsImFmdGVydXBkYXRlIiwiYXJpYXJlcXVlc3QiLCJiZWZvcmVhY3RpdmF0ZSIsImJlZm9yZWRlYWN0aXZhdGUiLCJiZWZvcmVlZGl0Zm9jdXMiLCJiZWZvcmV1cGRhdGUiLCJjZWxsY2hhbmdlIiwiY29udHJvbHNlbGVjdCIsImRhdGFhdmFpbGFibGUiLCJkYXRhc2V0Y2hhbmdlZCIsImRhdGFzZXRjb21wbGV0ZSIsImVycm9ydXBkYXRlIiwiZmlsdGVyY2hhbmdlIiwibGF5b3V0Y29tcGxldGUiLCJsb3NlY2FwdHVyZSIsIm1vdmUiLCJtb3ZlZW5kIiwibW92ZXN0YXJ0IiwicHJvcGVydHljaGFuZ2UiLCJyZXNpemVlbmQiLCJyZXNpemVzdGFydCIsInJvd2VudGVyIiwicm93ZXhpdCIsInJvd3NkZWxldGUiLCJyb3dzaW5zZXJ0ZWQiLCJjb21tYW5kIiwiY29tcGFzc25lZWRzY2FsaWJyYXRpb24iLCJkZWFjdGl2YXRlIiwiaGVscCIsIm1zY29udGVudHpvb20iLCJtc21hbmlwdWxhdGlvbnN0YXRlY2hhbmdlZCIsIm1zZ2VzdHVyZWNoYW5nZSIsIm1zZ2VzdHVyZWRvdWJsZXRhcCIsIm1zZ2VzdHVyZWVuZCIsIm1zZ2VzdHVyZWhvbGQiLCJtc2dlc3R1cmVzdGFydCIsIm1zZ2VzdHVyZXRhcCIsIm1zZ290cG9pbnRlcmNhcHR1cmUiLCJtc2luZXJ0aWFzdGFydCIsIm1zbG9zdHBvaW50ZXJjYXB0dXJlIiwibXNwb2ludGVyY2FuY2VsIiwibXNwb2ludGVyZG93biIsIm1zcG9pbnRlcmVudGVyIiwibXNwb2ludGVyaG92ZXIiLCJtc3BvaW50ZXJsZWF2ZSIsIm1zcG9pbnRlcm1vdmUiLCJtc3BvaW50ZXJvdXQiLCJtc3BvaW50ZXJvdmVyIiwibXNwb2ludGVydXAiLCJwb2ludGVyb3V0IiwibXNzaXRlbW9kZWp1bXBsaXN0aXRlbXJlbW92ZWQiLCJtc3RodW1ibmFpbGNsaWNrIiwic3RvcCIsInN0b3JhZ2Vjb21taXQiXSk7ZnVuY3Rpb24gZ2UoZSx0LG4pe2lmKCFufHwwPT09bi5sZW5ndGgpcmV0dXJuIHQ7dmFyIHI9bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldD09PWV9KSk7aWYoIXJ8fDA9PT1yLmxlbmd0aClyZXR1cm4gdDt2YXIgbz1yWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4tMT09PW8uaW5kZXhPZihlKX0pKX1mdW5jdGlvbiBfZShlLHQsbixyKXtlJiZqKGUsZ2UoZSx0LG4pLHIpfWZ1bmN0aW9uIG1lKGUsdCl7aWYoKCFFfHxTKSYmIVpvbmVbZS5zeW1ib2woInBhdGNoRXZlbnRzIildKXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYlNvY2tldCxvPXQuX19ab25lX2lnbm9yZV9vbl9wcm9wZXJ0aWVzO2lmKE8pe3ZhciBhPXdpbmRvdyxpPUY/W3t0YXJnZXQ6YSxpZ25vcmVQcm9wZXJ0aWVzOlsiZXJyb3IiXX1dOltdO19lKGEseWUuY29uY2F0KFsibWVzc2FnZWVycm9yIl0pLG8/by5jb25jYXQoaSk6byxuKGEpKSxfZShEb2N1bWVudC5wcm90b3R5cGUseWUsbyksdm9pZCAwIT09YS5TVkdFbGVtZW50JiZfZShhLlNWR0VsZW1lbnQucHJvdG90eXBlLHllLG8pLF9lKEVsZW1lbnQucHJvdG90eXBlLHllLG8pLF9lKEhUTUxFbGVtZW50LnByb3RvdHlwZSx5ZSxvKSxfZShIVE1MTWVkaWFFbGVtZW50LnByb3RvdHlwZSxzZSxvKSxfZShIVE1MRnJhbWVTZXRFbGVtZW50LnByb3RvdHlwZSxjZS5jb25jYXQobGUpLG8pLF9lKEhUTUxCb2R5RWxlbWVudC5wcm90b3R5cGUsY2UuY29uY2F0KGxlKSxvKSxfZShIVE1MRnJhbWVFbGVtZW50LnByb3RvdHlwZSx1ZSxvKSxfZShIVE1MSUZyYW1lRWxlbWVudC5wcm90b3R5cGUsdWUsbyk7dmFyIGM9YS5IVE1MTWFycXVlZUVsZW1lbnQ7YyYmX2UoYy5wcm90b3R5cGUsZmUsbyk7dmFyIHM9YS5Xb3JrZXI7cyYmX2Uocy5wcm90b3R5cGUsdmUsbyl9dmFyIHU9dC5YTUxIdHRwUmVxdWVzdDt1JiZfZSh1LnByb3RvdHlwZSxwZSxvKTt2YXIgbD10LlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7bCYmX2UobCYmbC5wcm90b3R5cGUscGUsbyksInVuZGVmaW5lZCIhPXR5cGVvZiBJREJJbmRleCYmKF9lKElEQkluZGV4LnByb3RvdHlwZSxoZSxvKSxfZShJREJSZXF1ZXN0LnByb3RvdHlwZSxoZSxvKSxfZShJREJPcGVuREJSZXF1ZXN0LnByb3RvdHlwZSxoZSxvKSxfZShJREJEYXRhYmFzZS5wcm90b3R5cGUsaGUsbyksX2UoSURCVHJhbnNhY3Rpb24ucHJvdG90eXBlLGhlLG8pLF9lKElEQkN1cnNvci5wcm90b3R5cGUsaGUsbykpLHImJl9lKFdlYlNvY2tldC5wcm90b3R5cGUsZGUsbyl9fWZ1bmN0aW9uIGJlKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCkscj1uLmV2ZW50TmFtZXMsbz1uLmdsb2JhbFNvdXJjZXMsYT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGk9bi5UUlVFX1NUUixjPW4uRkFMU0VfU1RSLHM9bi5aT05FX1NZTUJPTF9QUkVGSVgsdT0iQW5jaG9yLEFyZWEsQXVkaW8sQlIsQmFzZSxCYXNlRm9udCxCb2R5LEJ1dHRvbixDYW52YXMsQ29udGVudCxETGlzdCxEaXJlY3RvcnksRGl2LEVtYmVkLEZpZWxkU2V0LEZvbnQsRm9ybSxGcmFtZSxGcmFtZVNldCxIUixIZWFkLEhlYWRpbmcsSHRtbCxJRnJhbWUsSW1hZ2UsSW5wdXQsS2V5Z2VuLExJLExhYmVsLExlZ2VuZCxMaW5rLE1hcCxNYXJxdWVlLE1lZGlhLE1lbnUsTWV0YSxNZXRlcixNb2QsT0xpc3QsT2JqZWN0LE9wdEdyb3VwLE9wdGlvbixPdXRwdXQsUGFyYWdyYXBoLFByZSxQcm9ncmVzcyxRdW90ZSxTY3JpcHQsU2VsZWN0LFNvdXJjZSxTcGFuLFN0eWxlLFRhYmxlQ2FwdGlvbixUYWJsZUNlbGwsVGFibGVDb2wsVGFibGUsVGFibGVSb3csVGFibGVTZWN0aW9uLFRleHRBcmVhLFRpdGxlLFRyYWNrLFVMaXN0LFVua25vd24sVmlkZW8iLGw9IkFwcGxpY2F0aW9uQ2FjaGUsRXZlbnRTb3VyY2UsRmlsZVJlYWRlcixJbnB1dE1ldGhvZENvbnRleHQsTWVkaWFDb250cm9sbGVyLE1lc3NhZ2VQb3J0LE5vZGUsUGVyZm9ybWFuY2UsU1ZHRWxlbWVudEluc3RhbmNlLFNoYXJlZFdvcmtlcixUZXh0VHJhY2ssVGV4dFRyYWNrQ3VlLFRleHRUcmFja0xpc3QsV2ViS2l0TmFtZWRGbG93LFdpbmRvdyxXb3JrZXIsV29ya2VyR2xvYmFsU2NvcGUsWE1MSHR0cFJlcXVlc3QsWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCxYTUxIdHRwUmVxdWVzdFVwbG9hZCxJREJSZXF1ZXN0LElEQk9wZW5EQlJlcXVlc3QsSURCRGF0YWJhc2UsSURCVHJhbnNhY3Rpb24sSURCQ3Vyc29yLERCSW5kZXgsV2ViU29ja2V0Ii5zcGxpdCgiLCIpLGY9W10scD1lLnd0ZixoPXUuc3BsaXQoIiwiKTtwP2Y9aC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiJIVE1MIitlKyJFbGVtZW50In0pKS5jb25jYXQobCk6ZS5FdmVudFRhcmdldD9mLnB1c2goIkV2ZW50VGFyZ2V0Iik6Zj1sO2Zvcih2YXIgZD1lLl9fWm9uZV9kaXNhYmxlX0lFX2NoZWNrfHwhMSx2PWUuX19ab25lX2VuYWJsZV9jcm9zc19jb250ZXh0X2NoZWNrfHwhMSx5PXQuaXNJRU9yRWRnZSgpLGc9ImZ1bmN0aW9uIF9fQlJPV1NFUlRPT0xTX0NPTlNPTEVfU0FGRUZVTkMoKSB7IFtuYXRpdmUgY29kZV0gfSIsXz0wO188ci5sZW5ndGg7XysrKXt2YXIgbT1zKygoRT1yW19dKStjKSxiPXMrKEUraSk7YVtFXT17fSxhW0VdW2NdPW0sYVtFXVtpXT1ifWZvcihfPTA7Xzx1Lmxlbmd0aDtfKyspZm9yKHZhciBrPWhbX10sVD1vW2tdPXt9LHc9MDt3PHIubGVuZ3RoO3crKyl7dmFyIEU7VFtFPXJbd11dPWsrIi5hZGRFdmVudExpc3RlbmVyOiIrRX12YXIgTz1bXTtmb3IoXz0wO188Zi5sZW5ndGg7XysrKXt2YXIgUz1lW2ZbX11dO08ucHVzaChTJiZTLnByb3RvdHlwZSl9cmV0dXJuIHQucGF0Y2hFdmVudFRhcmdldChlLE8se3ZoOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFkJiZ5KXtpZih2KXRyeXt2YXIgbztpZigiW29iamVjdCBGdW5jdGlvbldyYXBwZXJdIj09PShvPXQudG9TdHJpbmcoKSl8fG89PWcpcmV0dXJuIGUuYXBwbHkobixyKSwhMX1jYXRjaChhKXtyZXR1cm4gZS5hcHBseShuLHIpLCExfWVsc2UgaWYoIltvYmplY3QgRnVuY3Rpb25XcmFwcGVyXSI9PT0obz10LnRvU3RyaW5nKCkpfHxvPT1nKXJldHVybiBlLmFwcGx5KG4sciksITF9ZWxzZSBpZih2KXRyeXt0LnRvU3RyaW5nKCl9Y2F0Y2goYSl7cmV0dXJuIGUuYXBwbHkobixyKSwhMX1yZXR1cm4hMH19KSxab25lW3Quc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildPSEhZS5FdmVudFRhcmdldCwhMH1mdW5jdGlvbiBrZShlLHQpe3ZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpO2lmKCghbi5pc05vZGV8fG4uaXNNaXgpJiYhZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmdldEdsb2JhbE9iamVjdHMoKTtpZigobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiYhZS5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCl7dmFyIHI9ZS5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siKTtpZihyJiYhci5jb25maWd1cmFibGUpcmV0dXJuITE7aWYocil7ZS5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0pO3ZhciBvPSEhZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikub25jbGljaztyZXR1cm4gZS5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIsciksb319dmFyIGE9dC5YTUxIdHRwUmVxdWVzdDtpZighYSlyZXR1cm4hMTt2YXIgaT1hLnByb3RvdHlwZSxjPWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksIm9ucmVhZHlzdGF0ZWNoYW5nZSIpO2lmKGMpcmV0dXJuIGUuT2JqZWN0RGVmaW5lUHJvcGVydHkoaSwib25yZWFkeXN0YXRlY2hhbmdlIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSksbz0hISh1PW5ldyBhKS5vbnJlYWR5c3RhdGVjaGFuZ2UsZS5PYmplY3REZWZpbmVQcm9wZXJ0eShpLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGN8fHt9KSxvO3ZhciBzPWUuc3ltYm9sKCJmYWtlIik7ZS5PYmplY3REZWZpbmVQcm9wZXJ0eShpLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tzXX0sc2V0OmZ1bmN0aW9uKGUpe3RoaXNbc109ZX19KTt2YXIgdT1uZXcgYSxsPWZ1bmN0aW9uKCl7fTtyZXR1cm4gdS5vbnJlYWR5c3RhdGVjaGFuZ2U9bCxvPXVbc109PT1sLHUub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsb30oZSx0KSl7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQ7IWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmdldEdsb2JhbE9iamVjdHMoKS5ldmVudE5hbWVzLG49ZS5zeW1ib2woInVuYm91bmQiKSxyPWZ1bmN0aW9uKHIpe3ZhciBvPXRbcl0sYT0ib24iK287c2VsZi5hZGRFdmVudExpc3RlbmVyKG8sKGZ1bmN0aW9uKHQpe3ZhciByLG8saT10LnRhcmdldDtmb3Iobz1pP2kuY29uc3RydWN0b3IubmFtZSsiLiIrYToidW5rbm93bi4iK2E7aTspaVthXSYmIWlbYV1bbl0mJigocj1lLndyYXBXaXRoQ3VycmVudFpvbmUoaVthXSxvKSlbbl09aVthXSxpW2FdPXIpLGk9aS5wYXJlbnRFbGVtZW50fSksITApfSxvPTA7bzx0Lmxlbmd0aDtvKyspcihvKX0oZSksZS5wYXRjaENsYXNzKCJYTUxIdHRwUmVxdWVzdCIpLHImJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCkscj1uLkFERF9FVkVOVF9MSVNURU5FUl9TVFIsbz1uLlJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFIsYT10LldlYlNvY2tldDt0LkV2ZW50VGFyZ2V0fHxlLnBhdGNoRXZlbnRUYXJnZXQodCxbYS5wcm90b3R5cGVdKSx0LldlYlNvY2tldD1mdW5jdGlvbih0LG4pe3ZhciBpLGMscz1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IGEodCxuKTpuZXcgYSh0KSx1PWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsIm9ubWVzc2FnZSIpO3JldHVybiB1JiYhMT09PXUuY29uZmlndXJhYmxlPyhpPWUuT2JqZWN0Q3JlYXRlKHMpLGM9cyxbcixvLCJzZW5kIiwiY2xvc2UiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtpW3RdPWZ1bmN0aW9uKCl7dmFyIG49ZS5BcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZih0PT09cnx8dD09PW8pe3ZhciBhPW4ubGVuZ3RoPjA/blswXTp2b2lkIDA7aWYoYSl7dmFyIGM9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIrYSk7c1tjXT1pW2NdfX1yZXR1cm4gc1t0XS5hcHBseShzLG4pfX0pKSk6aT1zLGUucGF0Y2hPblByb3BlcnRpZXMoaSxbImNsb3NlIiwiZXJyb3IiLCJtZXNzYWdlIiwib3BlbiJdLGMpLGl9O3ZhciBpPXQuV2ViU29ja2V0O2Zvcih2YXIgYyBpbiBhKWlbY109YVtjXX0oZSx0KSxab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50cyIpXT0hMH19Wm9uZS5fX2xvYWRfcGF0Y2goInV0aWwiLChmdW5jdGlvbihuLHIscyl7cy5wYXRjaE9uUHJvcGVydGllcz1qLHMucGF0Y2hNZXRob2Q9UixzLmJpbmRBcmd1bWVudHM9ayxzLnBhdGNoTWFjcm9UYXNrPXg7dmFyIHU9ci5fX3N5bWJvbF9fKCJCTEFDS19MSVNURURfRVZFTlRTIiksZD1yLl9fc3ltYm9sX18oIlVOUEFUQ0hFRF9FVkVOVFMiKTtuW2RdJiYoblt1XT1uW2RdKSxuW3VdJiYoclt1XT1yW2RdPW5bdV0pLHMucGF0Y2hFdmVudFByb3RvdHlwZT1KLHMucGF0Y2hFdmVudFRhcmdldD1YLHMuaXNJRU9yRWRnZT1BLHMuT2JqZWN0RGVmaW5lUHJvcGVydHk9dCxzLk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcj1lLHMuT2JqZWN0Q3JlYXRlPW8scy5BcnJheVNsaWNlPWEscy5wYXRjaENsYXNzPUMscy53cmFwV2l0aEN1cnJlbnRab25lPWgscy5maWx0ZXJQcm9wZXJ0aWVzPWdlLHMuYXR0YWNoT3JpZ2luVG9QYXRjaGVkPU0scy5fcmVkZWZpbmVQcm9wZXJ0eT1yZSxzLnBhdGNoQ2FsbGJhY2tzPUsscy5nZXRHbG9iYWxPYmplY3RzPWZ1bmN0aW9uKCl7cmV0dXJue2dsb2JhbFNvdXJjZXM6cSx6b25lU3ltYm9sRXZlbnROYW1lczpXLGV2ZW50TmFtZXM6eWUsaXNCcm93c2VyOk8saXNNaXg6Uyxpc05vZGU6RSxUUlVFX1NUUjpsLEZBTFNFX1NUUjpmLFpPTkVfU1lNQk9MX1BSRUZJWDpwLEFERF9FVkVOVF9MSVNURU5FUl9TVFI6aSxSRU1PVkVfRVZFTlRfTElTVEVORVJfU1RSOmN9fX0pKSxmdW5jdGlvbihlKXtlLl9fem9uZV9zeW1ib2xfX2xlZ2FjeVBhdGNoPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5ab25lO3QuX19sb2FkX3BhdGNoKCJyZWdpc3RlckVsZW1lbnQiLChmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCk7KG4uaXNCcm93c2VyfHxuLmlzTWl4KSYmInJlZ2lzdGVyRWxlbWVudCJpbiBlLmRvY3VtZW50JiZ0LnBhdGNoQ2FsbGJhY2tzKHQsZG9jdW1lbnQsIkRvY3VtZW50IiwicmVnaXN0ZXJFbGVtZW50IixbImNyZWF0ZWRDYWxsYmFjayIsImF0dGFjaGVkQ2FsbGJhY2siLCJkZXRhY2hlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfShlLG4pfSkpLHQuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldExlZ2FjeSIsKGZ1bmN0aW9uKGUsdCxuKXtiZShlLG4pLGtlKG4sZSl9KSl9fSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fGdsb2JhbCk7dmFyIFRlPXYoInpvbmVUYXNrIik7ZnVuY3Rpb24gd2UoZSx0LG4scil7dmFyIG89bnVsbCxhPW51bGw7bis9cjt2YXIgaT17fTtmdW5jdGlvbiBjKHQpe3ZhciBuPXQuZGF0YTtyZXR1cm4gbi5hcmdzWzBdPWZ1bmN0aW9uKCl7dHJ5e3QuaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e3QuZGF0YSYmdC5kYXRhLmlzUGVyaW9kaWN8fCgibnVtYmVyIj09dHlwZW9mIG4uaGFuZGxlSWQ/ZGVsZXRlIGlbbi5oYW5kbGVJZF06bi5oYW5kbGVJZCYmKG4uaGFuZGxlSWRbVGVdPW51bGwpKX19LG4uaGFuZGxlSWQ9by5hcHBseShlLG4uYXJncyksdH1mdW5jdGlvbiBzKGUpe3JldHVybiBhKGUuZGF0YS5oYW5kbGVJZCl9bz1SKGUsdCs9ciwoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8sYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGFbMF0pe3ZhciB1PWQodCxhWzBdLHtpc1BlcmlvZGljOiJJbnRlcnZhbCI9PT1yLGRlbGF5OiJUaW1lb3V0Ij09PXJ8fCJJbnRlcnZhbCI9PT1yP2FbMV18fDA6dm9pZCAwLGFyZ3M6YX0sYyxzKTtpZighdSlyZXR1cm4gdTt2YXIgbD11LmRhdGEuaGFuZGxlSWQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBsP2lbbF09dTpsJiYobFtUZV09dSksbCYmbC5yZWYmJmwudW5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBsLnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIGwudW5yZWYmJih1LnJlZj1sLnJlZi5iaW5kKGwpLHUudW5yZWY9bC51bnJlZi5iaW5kKGwpKSwibnVtYmVyIj09dHlwZW9mIGx8fGw/bDp1fXJldHVybiBuLmFwcGx5KGUsYSl9fSkpLGE9UihlLG4sKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciBvLGE9clswXTsibnVtYmVyIj09dHlwZW9mIGE/bz1pW2FdOihvPWEmJmFbVGVdKXx8KG89YSksbyYmInN0cmluZyI9PXR5cGVvZiBvLnR5cGU/Im5vdFNjaGVkdWxlZCIhPT1vLnN0YXRlJiYoby5jYW5jZWxGbiYmby5kYXRhLmlzUGVyaW9kaWN8fDA9PT1vLnJ1bkNvdW50KSYmKCJudW1iZXIiPT10eXBlb2YgYT9kZWxldGUgaVthXTphJiYoYVtUZV09bnVsbCksby56b25lLmNhbmNlbFRhc2sobykpOnQuYXBwbHkoZSxyKX19KSl9ZnVuY3Rpb24gRWUoZSx0KXtpZighWm9uZVt0LnN5bWJvbCgicGF0Y2hFdmVudFRhcmdldCIpXSl7Zm9yKHZhciBuPXQuZ2V0R2xvYmFsT2JqZWN0cygpLHI9bi5ldmVudE5hbWVzLG89bi56b25lU3ltYm9sRXZlbnROYW1lcyxhPW4uVFJVRV9TVFIsaT1uLkZBTFNFX1NUUixjPW4uWk9ORV9TWU1CT0xfUFJFRklYLHM9MDtzPHIubGVuZ3RoO3MrKyl7dmFyIHU9cltzXSxsPWMrKHUraSksZj1jKyh1K2EpO29bdV09e30sb1t1XVtpXT1sLG9bdV1bYV09Zn12YXIgcD1lLkV2ZW50VGFyZ2V0O2lmKHAmJnAucHJvdG90eXBlKXJldHVybiB0LnBhdGNoRXZlbnRUYXJnZXQoZSxbcCYmcC5wcm90b3R5cGVdKSwhMH19Wm9uZS5fX2xvYWRfcGF0Y2goImxlZ2FjeSIsKGZ1bmN0aW9uKGUpe3ZhciB0PWVbWm9uZS5fX3N5bWJvbF9fKCJsZWdhY3lQYXRjaCIpXTt0JiZ0KCl9KSksWm9uZS5fX2xvYWRfcGF0Y2goInRpbWVycyIsKGZ1bmN0aW9uKGUpe3dlKGUsInNldCIsImNsZWFyIiwiVGltZW91dCIpLHdlKGUsInNldCIsImNsZWFyIiwiSW50ZXJ2YWwiKSx3ZShlLCJzZXQiLCJjbGVhciIsIkltbWVkaWF0ZSIpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLChmdW5jdGlvbihlKXt3ZShlLCJyZXF1ZXN0IiwiY2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKSx3ZShlLCJtb3pSZXF1ZXN0IiwibW96Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKSx3ZShlLCJ3ZWJraXRSZXF1ZXN0Iiwid2Via2l0Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiYmxvY2tpbmciLChmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bImFsZXJ0IiwicHJvbXB0IiwiY29uZmlybSJdLHI9MDtyPG4ubGVuZ3RoO3IrKylSKGUsbltyXSwoZnVuY3Rpb24obixyLG8pe3JldHVybiBmdW5jdGlvbihyLGEpe3JldHVybiB0LmN1cnJlbnQucnVuKG4sZSxhLG8pfX0pKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiRXZlbnRUYXJnZXQiLChmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7dC5wYXRjaEV2ZW50UHJvdG90eXBlKGUsdCl9KGUsbiksRWUoZSxuKTt2YXIgcj1lLlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7ciYmci5wcm90b3R5cGUmJm4ucGF0Y2hFdmVudFRhcmdldChlLFtyLnByb3RvdHlwZV0pLEMoIk11dGF0aW9uT2JzZXJ2ZXIiKSxDKCJXZWJLaXRNdXRhdGlvbk9ic2VydmVyIiksQygiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiKSxDKCJGaWxlUmVhZGVyIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIm9uX3Byb3BlcnR5IiwoZnVuY3Rpb24oZSx0LG4pe21lKG4sZSksT2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKGUsdCxuKXtpZihvZShlLHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhc3NpZ24gdG8gcmVhZCBvbmx5IHByb3BlcnR5ICciK3QrIicgb2YgIitlKTt2YXIgcj1uLmNvbmZpZ3VyYWJsZTtyZXR1cm4icHJvdG90eXBlIiE9PXQmJihuPWFlKGUsdCxuKSksaWUoZSx0LG4scil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sdFtuXSl9KSksZX0sT2JqZWN0LmNyZWF0ZT1mdW5jdGlvbihlLHQpe3JldHVybiJvYmplY3QiIT10eXBlb2YgdHx8T2JqZWN0LmlzRnJvemVuKHQpfHxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXt0W25dPWFlKGUsbix0W25dKX0pKSx0ZShlLHQpfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZWUoZSx0KTtyZXR1cm4gbiYmb2UoZSx0KSYmKG4uY29uZmlndXJhYmxlPSExKSxufX0pKSxab25lLl9fbG9hZF9wYXRjaCgiY3VzdG9tRWxlbWVudHMiLChmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCk7KG4uaXNCcm93c2VyfHxuLmlzTWl4KSYmZS5jdXN0b21FbGVtZW50cyYmImN1c3RvbUVsZW1lbnRzImluIGUmJnQucGF0Y2hDYWxsYmFja3ModCxlLmN1c3RvbUVsZW1lbnRzLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSIsWyJjb25uZWN0ZWRDYWxsYmFjayIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwiYWRvcHRlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfShlLG4pfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJYSFIiLChmdW5jdGlvbihlLHQpeyFmdW5jdGlvbihlKXt2YXIgbD1lLlhNTEh0dHBSZXF1ZXN0O2lmKGwpe3ZhciBmPWwucHJvdG90eXBlLHA9ZltzXSxoPWZbdV07aWYoIXApe3ZhciB5PWUuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtpZih5KXt2YXIgZz15LnByb3RvdHlwZTtwPWdbc10saD1nW3VdfX12YXIgXz0icmVhZHlzdGF0ZWNoYW5nZSIsbT0ic2NoZWR1bGVkIixiPVIoZiwib3BlbiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbcl09MD09dFsyXSxlW2ldPXRbMV0sYi5hcHBseShlLHQpfX0pKSxrPXYoImZldGNoVGFza0Fib3J0aW5nIiksVD12KCJmZXRjaFRhc2tTY2hlZHVsaW5nIiksdz1SKGYsInNlbmQiLChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLG4pe2lmKCEwPT09dC5jdXJyZW50W1RdKXJldHVybiB3LmFwcGx5KGUsbik7aWYoZVtyXSlyZXR1cm4gdy5hcHBseShlLG4pO3ZhciBvPXt0YXJnZXQ6ZSx1cmw6ZVtpXSxpc1BlcmlvZGljOiExLGFyZ3M6bixhYm9ydGVkOiExfSxhPWQoIlhNTEh0dHBSZXF1ZXN0LnNlbmQiLFMsbyxPLFApO2UmJiEwPT09ZVtjXSYmIW8uYWJvcnRlZCYmYS5zdGF0ZT09PW0mJmEuaW52b2tlKCl9fSkpLEU9UihmLCJhYm9ydCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIG89ZVtuXTtpZihvJiYic3RyaW5nIj09dHlwZW9mIG8udHlwZSl7aWYobnVsbD09by5jYW5jZWxGbnx8by5kYXRhJiZvLmRhdGEuYWJvcnRlZClyZXR1cm47by56b25lLmNhbmNlbFRhc2sobyl9ZWxzZSBpZighMD09PXQuY3VycmVudFtrXSlyZXR1cm4gRS5hcHBseShlLHIpfX0pKX1mdW5jdGlvbiBPKGUpe3ZhciB0PWUuZGF0YSxyPXQudGFyZ2V0O3JbYV09ITEscltjXT0hMTt2YXIgaT1yW29dO3B8fChwPXJbc10saD1yW3VdKSxpJiZoLmNhbGwocixfLGkpO3ZhciBsPXJbb109ZnVuY3Rpb24oKXtpZihyLnJlYWR5U3RhdGU9PT1yLkRPTkUpaWYoIXQuYWJvcnRlZCYmclthXSYmZS5zdGF0ZT09PW0pe3ZhciBuPXIuX196b25lX3N5bWJvbF9fbG9hZGZhbHNlO2lmKG4mJm4ubGVuZ3RoPjApe3ZhciBvPWUuaW52b2tlO2UuaW52b2tlPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPXIuX196b25lX3N5bWJvbF9fbG9hZGZhbHNlLGE9MDthPG4ubGVuZ3RoO2ErKyluW2FdPT09ZSYmbi5zcGxpY2UoYSwxKTt0LmFib3J0ZWR8fGUuc3RhdGUhPT1tfHxvLmNhbGwoZSl9LG4ucHVzaChlKX1lbHNlIGUuaW52b2tlKCl9ZWxzZSB0LmFib3J0ZWR8fCExIT09clthXXx8KHJbY109ITApfTtyZXR1cm4gcC5jYWxsKHIsXyxsKSxyW25dfHwocltuXT1lKSx3LmFwcGx5KHIsdC5hcmdzKSxyW2FdPSEwLGV9ZnVuY3Rpb24gUygpe31mdW5jdGlvbiBQKGUpe3ZhciB0PWUuZGF0YTtyZXR1cm4gdC5hYm9ydGVkPSEwLEUuYXBwbHkodC50YXJnZXQsdC5hcmdzKX19KGUpO3ZhciBuPXYoInhoclRhc2siKSxyPXYoInhoclN5bmMiKSxvPXYoInhockxpc3RlbmVyIiksYT12KCJ4aHJTY2hlZHVsZWQiKSxpPXYoInhoclVSTCIpLGM9digieGhyRXJyb3JCZWZvcmVTY2hlZHVsZWQiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiZ2VvbG9jYXRpb24iLChmdW5jdGlvbih0KXt0Lm5hdmlnYXRvciYmdC5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJmZ1bmN0aW9uKHQsbil7Zm9yKHZhciByPXQuY29uc3RydWN0b3IubmFtZSxvPWZ1bmN0aW9uKG8pe3ZhciBhPW5bb10saT10W2FdO2lmKGkpe2lmKCFUKGUodCxhKSkpcmV0dXJuImNvbnRpbnVlIjt0W2FdPWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxrKGFyZ3VtZW50cyxyKyIuIithKSl9O3JldHVybiBNKHQsZSksdH0oaSl9fSxhPTA7YTxuLmxlbmd0aDthKyspbyhhKX0odC5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24sWyJnZXRDdXJyZW50UG9zaXRpb24iLCJ3YXRjaFBvc2l0aW9uIl0pfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJQcm9taXNlUmVqZWN0aW9uRXZlbnQiLChmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe1koZSx0KS5mb3JFYWNoKChmdW5jdGlvbihyKXt2YXIgbz1lLlByb21pc2VSZWplY3Rpb25FdmVudDtpZihvKXt2YXIgYT1uZXcgbyh0LHtwcm9taXNlOm4ucHJvbWlzZSxyZWFzb246bi5yZWplY3Rpb259KTtyLmludm9rZShhKX19KSl9fWUuUHJvbWlzZVJlamVjdGlvbkV2ZW50JiYodFt2KCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpXT1uKCJ1bmhhbmRsZWRyZWplY3Rpb24iKSx0W3YoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIildPW4oInJlamVjdGlvbmhhbmRsZWQiKSl9KSl9KCl9LDI6ZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKCJoTi9nIil9LCJoTi9nIjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24ucih0KSxuKCIwVFdwIil9LG1yU0c6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLnIodCksbi5kKHQsIl9fZXh0ZW5kcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIG99KSksbi5kKHQsIl9fYXNzaWduIiwoZnVuY3Rpb24oKXtyZXR1cm4gYX0pKSxuLmQodCwiX19yZXN0IiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQodCwiX19kZWNvcmF0ZSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN9KSksbi5kKHQsIl9fcGFyYW0iLChmdW5jdGlvbigpe3JldHVybiBzfSkpLG4uZCh0LCJfX21ldGFkYXRhIiwoZnVuY3Rpb24oKXtyZXR1cm4gdX0pKSxuLmQodCwiX19hd2FpdGVyIiwoZnVuY3Rpb24oKXtyZXR1cm4gbH0pKSxuLmQodCwiX19nZW5lcmF0b3IiLChmdW5jdGlvbigpe3JldHVybiBmfSkpLG4uZCh0LCJfX2V4cG9ydFN0YXIiLChmdW5jdGlvbigpe3JldHVybiBwfSkpLG4uZCh0LCJfX3ZhbHVlcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGh9KSksbi5kKHQsIl9fcmVhZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGR9KSksbi5kKHQsIl9fc3ByZWFkIiwoZnVuY3Rpb24oKXtyZXR1cm4gdn0pKSxuLmQodCwiX19zcHJlYWRBcnJheXMiLChmdW5jdGlvbigpe3JldHVybiB5fSkpLG4uZCh0LCJfX2F3YWl0IiwoZnVuY3Rpb24oKXtyZXR1cm4gZ30pKSxuLmQodCwiX19hc3luY0dlbmVyYXRvciIsKGZ1bmN0aW9uKCl7cmV0dXJuIF99KSksbi5kKHQsIl9fYXN5bmNEZWxlZ2F0b3IiLChmdW5jdGlvbigpe3JldHVybiBtfSkpLG4uZCh0LCJfX2FzeW5jVmFsdWVzIiwoZnVuY3Rpb24oKXtyZXR1cm4gYn0pKSxuLmQodCwiX19tYWtlVGVtcGxhdGVPYmplY3QiLChmdW5jdGlvbigpe3JldHVybiBrfSkpLG4uZCh0LCJfX2ltcG9ydFN0YXIiLChmdW5jdGlvbigpe3JldHVybiBUfSkpLG4uZCh0LCJfX2ltcG9ydERlZmF1bHQiLChmdW5jdGlvbigpe3JldHVybiB3fSkpO3ZhciByPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmKGVbbl09dFtuXSl9KShlLHQpfTtmdW5jdGlvbiBvKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KToobi5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IG4pfXZhciBhPWZ1bmN0aW9uKCl7cmV0dXJuKGE9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIG8gaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbykmJihlW29dPXRbb10pO3JldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBpKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihudWxsIT1lJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG89MDtmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO288ci5sZW5ndGg7bysrKXQuaW5kZXhPZihyW29dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW29dKSYmKG5bcltvXV09ZVtyW29dXSl9cmV0dXJuIG59ZnVuY3Rpb24gYyhlLHQsbixyKXt2YXIgbyxhPWFyZ3VtZW50cy5sZW5ndGgsaT1hPDM/dDpudWxsPT09cj9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTpyO2lmKCJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIFJlZmxlY3QuZGVjb3I="
3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ: qwe?runtime.js?2?0: "base64:KHdpbmRvdy53ZWJwYWNrSnNvbnA9d2luZG93LndlYnBhY2tKc29ucHx8W10pLnB1c2goW1syXSx7IjBUV3AiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJtclNHIikuX192YWx1ZXM7IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbihlKXt2YXIgdD1lLnBlcmZvcm1hbmNlO2Z1bmN0aW9uIG4oZSl7dCYmdC5tYXJrJiZ0Lm1hcmsoZSl9ZnVuY3Rpb24gcihlLG4pe3QmJnQubWVhc3VyZSYmdC5tZWFzdXJlKGUsbil9bigiWm9uZSIpO3ZhciBvPSEwPT09ZS5fX3pvbmVfc3ltYm9sX19mb3JjZUR1cGxpY2F0ZVpvbmVDaGVjaztpZihlLlpvbmUpe2lmKG98fCJmdW5jdGlvbiIhPXR5cGVvZiBlLlpvbmUuX19zeW1ib2xfXyl0aHJvdyBuZXcgRXJyb3IoIlpvbmUgYWxyZWFkeSBsb2FkZWQuIik7cmV0dXJuIGUuWm9uZX12YXIgYSxpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQpe3RoaXMuX3BhcmVudD1lLHRoaXMuX25hbWU9dD90Lm5hbWV8fCJ1bm5hbWVkIjoiPHJvb3Q+Iix0aGlzLl9wcm9wZXJ0aWVzPXQmJnQucHJvcGVydGllc3x8e30sdGhpcy5fem9uZURlbGVnYXRlPW5ldyBzKHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pvbmVEZWxlZ2F0ZSx0KX1yZXR1cm4gdC5hc3NlcnRab25lUGF0Y2hlZD1mdW5jdGlvbigpe2lmKGUuUHJvbWlzZSE9PVAuWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicm9vdCIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgZT10LmN1cnJlbnQ7ZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImN1cnJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi56b25lfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJjdXJyZW50VGFzayIse2dldDpmdW5jdGlvbigpe3JldHVybiBqfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQuX19sb2FkX3BhdGNoPWZ1bmN0aW9uKGEsaSl7aWYoUC5oYXNPd25Qcm9wZXJ0eShhKSl7aWYobyl0aHJvdyBFcnJvcigiQWxyZWFkeSBsb2FkZWQgcGF0Y2g6ICIrYSl9ZWxzZSBpZighZVsiX19ab25lX2Rpc2FibGVfIithXSl7dmFyIGM9IlpvbmU6IithO24oYyksUFthXT1pKGUsdCxEKSxyKGMsYyl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZ2V0Wm9uZVdpdGgoZSk7aWYodClyZXR1cm4gdC5fcHJvcGVydGllc1tlXX0sdC5wcm90b3R5cGUuZ2V0Wm9uZVdpdGg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXM7dDspe2lmKHQuX3Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIHQ7dD10Ll9wYXJlbnR9cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLmZvcms9ZnVuY3Rpb24oZSl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJab25lU3BlYyByZXF1aXJlZCEiKTtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmZvcmsodGhpcyxlKX0sdC5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiRXhwZWN0aW5nIGZ1bmN0aW9uIGdvdDogIitlKTt2YXIgbj10aGlzLl96b25lRGVsZWdhdGUuaW50ZXJjZXB0KHRoaXMsZSx0KSxyPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIucnVuR3VhcmRlZChuLHRoaXMsYXJndW1lbnRzLHQpfX0sdC5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKGUsdCxuLHIpe1o9e3BhcmVudDpaLHpvbmU6dGhpc307dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlKHRoaXMsZSx0LG4scil9ZmluYWxseXtaPVoucGFyZW50fX0sdC5wcm90b3R5cGUucnVuR3VhcmRlZD1mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT10JiYodD1udWxsKSxaPXtwYXJlbnQ6Wix6b25lOnRoaXN9O3RyeXt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyxlLHQsbixyKX1jYXRjaChvKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxvKSl0aHJvdyBvfX1maW5hbGx5e1o9Wi5wYXJlbnR9fSx0LnByb3RvdHlwZS5ydW5UYXNrPWZ1bmN0aW9uKGUsdCxuKXtpZihlLnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgcnVuIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKGUuem9uZXx8ZykubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7aWYoZS5zdGF0ZSE9PV98fGUudHlwZSE9PVMmJmUudHlwZSE9PU8pe3ZhciByPWUuc3RhdGUhPWs7ciYmZS5fdHJhbnNpdGlvblRvKGssYiksZS5ydW5Db3VudCsrO3ZhciBvPWo7aj1lLFo9e3BhcmVudDpaLHpvbmU6dGhpc307dHJ5e2UudHlwZT09TyYmZS5kYXRhJiYhZS5kYXRhLmlzUGVyaW9kaWMmJihlLmNhbmNlbEZuPXZvaWQgMCk7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlVGFzayh0aGlzLGUsdCxuKX1jYXRjaChhKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxhKSl0aHJvdyBhfX1maW5hbGx5e2Uuc3RhdGUhPT1fJiZlLnN0YXRlIT09dyYmKGUudHlwZT09U3x8ZS5kYXRhJiZlLmRhdGEuaXNQZXJpb2RpYz9yJiZlLl90cmFuc2l0aW9uVG8oYixrKTooZS5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudChlLC0xKSxyJiZlLl90cmFuc2l0aW9uVG8oXyxrLF8pKSksWj1aLnBhcmVudCxqPW99fX0sdC5wcm90b3R5cGUuc2NoZWR1bGVUYXNrPWZ1bmN0aW9uKGUpe2lmKGUuem9uZSYmZS56b25lIT09dGhpcylmb3IodmFyIHQ9dGhpczt0Oyl7aWYodD09PWUuem9uZSl0aHJvdyBFcnJvcigiY2FuIG5vdCByZXNjaGVkdWxlIHRhc2sgdG8gIit0aGlzLm5hbWUrIiB3aGljaCBpcyBkZXNjZW5kYW50cyBvZiB0aGUgb3JpZ2luYWwgem9uZSAiK2Uuem9uZS5uYW1lKTt0PXQucGFyZW50fWUuX3RyYW5zaXRpb25UbyhtLF8pO3ZhciBuPVtdO2UuX3pvbmVEZWxlZ2F0ZXM9bixlLl96b25lPXRoaXM7dHJ5e2U9dGhpcy5fem9uZURlbGVnYXRlLnNjaGVkdWxlVGFzayh0aGlzLGUpfWNhdGNoKHIpe3Rocm93IGUuX3RyYW5zaXRpb25Ubyh3LG0sXyksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMscikscn1yZXR1cm4gZS5fem9uZURlbGVnYXRlcz09PW4mJnRoaXMuX3VwZGF0ZVRhc2tDb3VudChlLDEpLGUuc3RhdGU9PW0mJmUuX3RyYW5zaXRpb25UbyhiLG0pLGV9LHQucHJvdG90eXBlLnNjaGVkdWxlTWljcm9UYXNrPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgdShFLGUsdCxuLHIsdm9pZCAwKSl9LHQucHJvdG90eXBlLnNjaGVkdWxlTWFjcm9UYXNrPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyB1KE8sZSx0LG4scixvKSl9LHQucHJvdG90eXBlLnNjaGVkdWxlRXZlbnRUYXNrPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyB1KFMsZSx0LG4scixvKSl9LHQucHJvdG90eXBlLmNhbmNlbFRhc2s9ZnVuY3Rpb24oZSl7aWYoZS56b25lIT10aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyhlLnpvbmV8fGcpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2UuX3RyYW5zaXRpb25UbyhULGIsayk7dHJ5e3RoaXMuX3pvbmVEZWxlZ2F0ZS5jYW5jZWxUYXNrKHRoaXMsZSl9Y2F0Y2godCl7dGhyb3cgZS5fdHJhbnNpdGlvblRvKHcsVCksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsdCksdH1yZXR1cm4gdGhpcy5fdXBkYXRlVGFza0NvdW50KGUsLTEpLGUuX3RyYW5zaXRpb25UbyhfLFQpLGUucnVuQ291bnQ9MCxlfSx0LnByb3RvdHlwZS5fdXBkYXRlVGFza0NvdW50PWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fem9uZURlbGVnYXRlczstMT09dCYmKGUuX3pvbmVEZWxlZ2F0ZXM9bnVsbCk7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspbltyXS5fdXBkYXRlVGFza0NvdW50KGUudHlwZSx0KX0sdC5fX3N5bWJvbF9fPUksdH0oKSxjPXtuYW1lOiIiLG9uSGFzVGFzazpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZS5oYXNUYXNrKG4scil9LG9uU2NoZWR1bGVUYXNrOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBlLnNjaGVkdWxlVGFzayhuLHIpfSxvbkludm9rZVRhc2s6ZnVuY3Rpb24oZSx0LG4scixvLGEpe3JldHVybiBlLmludm9rZVRhc2sobixyLG8sYSl9LG9uQ2FuY2VsVGFzazpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZS5jYW5jZWxUYXNrKG4scil9fSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbil7dGhpcy5fdGFza0NvdW50cz17bWljcm9UYXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT1lLHRoaXMuX3BhcmVudERlbGVnYXRlPXQsdGhpcy5fZm9ya1pTPW4mJihuJiZuLm9uRm9yaz9uOnQuX2ZvcmtaUyksdGhpcy5fZm9ya0RsZ3Q9biYmKG4ub25Gb3JrP3Q6dC5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1uJiYobi5vbkZvcms/dGhpcy56b25lOnQuem9uZSksdGhpcy5faW50ZXJjZXB0WlM9biYmKG4ub25JbnRlcmNlcHQ/bjp0Ll9pbnRlcmNlcHRaUyksdGhpcy5faW50ZXJjZXB0RGxndD1uJiYobi5vbkludGVyY2VwdD90OnQuX2ludGVyY2VwdERsZ3QpLHRoaXMuX2ludGVyY2VwdEN1cnJab25lPW4mJihuLm9uSW50ZXJjZXB0P3RoaXMuem9uZTp0LnpvbmUpLHRoaXMuX2ludm9rZVpTPW4mJihuLm9uSW52b2tlP246dC5faW52b2tlWlMpLHRoaXMuX2ludm9rZURsZ3Q9biYmKG4ub25JbnZva2U/dDp0Ll9pbnZva2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1uJiYobi5vbkludm9rZT90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9oYW5kbGVFcnJvclpTPW4mJihuLm9uSGFuZGxlRXJyb3I/bjp0Ll9oYW5kbGVFcnJvclpTKSx0aGlzLl9oYW5kbGVFcnJvckRsZ3Q9biYmKG4ub25IYW5kbGVFcnJvcj90OnQuX2hhbmRsZUVycm9yRGxndCksdGhpcy5faGFuZGxlRXJyb3JDdXJyWm9uZT1uJiYobi5vbkhhbmRsZUVycm9yP3RoaXMuem9uZTp0LnpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPW4mJihuLm9uU2NoZWR1bGVUYXNrP246dC5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9biYmKG4ub25TY2hlZHVsZVRhc2s/dDp0Ll9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1uJiYobi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9pbnZva2VUYXNrWlM9biYmKG4ub25JbnZva2VUYXNrP246dC5faW52b2tlVGFza1pTKSx0aGlzLl9pbnZva2VUYXNrRGxndD1uJiYobi5vbkludm9rZVRhc2s/dDp0Ll9pbnZva2VUYXNrRGxndCksdGhpcy5faW52b2tlVGFza0N1cnJab25lPW4mJihuLm9uSW52b2tlVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9jYW5jZWxUYXNrWlM9biYmKG4ub25DYW5jZWxUYXNrP246dC5fY2FuY2VsVGFza1pTKSx0aGlzLl9jYW5jZWxUYXNrRGxndD1uJiYobi5vbkNhbmNlbFRhc2s/dDp0Ll9jYW5jZWxUYXNrRGxndCksdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPW4mJihuLm9uQ2FuY2VsVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9oYXNUYXNrWlM9bnVsbCx0aGlzLl9oYXNUYXNrRGxndD1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9bnVsbCx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9bnVsbDt2YXIgcj1uJiZuLm9uSGFzVGFzazsocnx8dCYmdC5faGFzVGFza1pTKSYmKHRoaXMuX2hhc1Rhc2taUz1yP246Yyx0aGlzLl9oYXNUYXNrRGxndD10LHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9dGhpcyx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9ZSxuLm9uU2NoZWR1bGVUYXNrfHwodGhpcy5fc2NoZWR1bGVUYXNrWlM9Yyx0aGlzLl9zY2hlZHVsZVRhc2tEbGd0PXQsdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxuLm9uSW52b2tlVGFza3x8KHRoaXMuX2ludm9rZVRhc2taUz1jLHRoaXMuX2ludm9rZVRhc2tEbGd0PXQsdGhpcy5faW52b2tlVGFza0N1cnJab25lPXRoaXMuem9uZSksbi5vbkNhbmNlbFRhc2t8fCh0aGlzLl9jYW5jZWxUYXNrWlM9Yyx0aGlzLl9jYW5jZWxUYXNrRGxndD10LHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT10aGlzLnpvbmUpKX1yZXR1cm4gZS5wcm90b3R5cGUuZm9yaz1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9mb3JrWlM/dGhpcy5fZm9ya1pTLm9uRm9yayh0aGlzLl9mb3JrRGxndCx0aGlzLnpvbmUsZSx0KTpuZXcgaShlLHQpfSxlLnByb3RvdHlwZS5pbnRlcmNlcHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLl9pbnRlcmNlcHRaUz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLGUsdCxuKTp0fSxlLnByb3RvdHlwZS5pbnZva2U9ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4gdGhpcy5faW52b2tlWlM/dGhpcy5faW52b2tlWlMub25JbnZva2UodGhpcy5faW52b2tlRGxndCx0aGlzLl9pbnZva2VDdXJyWm9uZSxlLHQsbixyLG8pOnQuYXBwbHkobixyKX0sZS5wcm90b3R5cGUuaGFuZGxlRXJyb3I9ZnVuY3Rpb24oZSx0KXtyZXR1cm4hdGhpcy5faGFuZGxlRXJyb3JaU3x8dGhpcy5faGFuZGxlRXJyb3JaUy5vbkhhbmRsZUVycm9yKHRoaXMuX2hhbmRsZUVycm9yRGxndCx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lLGUsdCl9LGUucHJvdG90eXBlLnNjaGVkdWxlVGFzaz1mdW5jdGlvbihlLHQpe3ZhciBuPXQ7aWYodGhpcy5fc2NoZWR1bGVUYXNrWlMpdGhpcy5faGFzVGFza1pTJiZuLl96b25lRGVsZWdhdGVzLnB1c2godGhpcy5faGFzVGFza0RsZ3RPd25lciksKG49dGhpcy5fc2NoZWR1bGVUYXNrWlMub25TY2hlZHVsZVRhc2sodGhpcy5fc2NoZWR1bGVUYXNrRGxndCx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSxlLHQpKXx8KG49dCk7ZWxzZSBpZih0LnNjaGVkdWxlRm4pdC5zY2hlZHVsZUZuKHQpO2Vsc2V7aWYodC50eXBlIT1FKXRocm93IG5ldyBFcnJvcigiVGFzayBpcyBtaXNzaW5nIHNjaGVkdWxlRm4uIik7dih0KX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuaW52b2tlVGFzaz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gdGhpcy5faW52b2tlVGFza1pTP3RoaXMuX2ludm9rZVRhc2taUy5vbkludm9rZVRhc2sodGhpcy5faW52b2tlVGFza0RsZ3QsdGhpcy5faW52b2tlVGFza0N1cnJab25lLGUsdCxuLHIpOnQuY2FsbGJhY2suYXBwbHkobixyKX0sZS5wcm90b3R5cGUuY2FuY2VsVGFzaz1mdW5jdGlvbihlLHQpe3ZhciBuO2lmKHRoaXMuX2NhbmNlbFRhc2taUyluPXRoaXMuX2NhbmNlbFRhc2taUy5vbkNhbmNlbFRhc2sodGhpcy5fY2FuY2VsVGFza0RsZ3QsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lLGUsdCk7ZWxzZXtpZighdC5jYW5jZWxGbil0aHJvdyBFcnJvcigiVGFzayBpcyBub3QgY2FuY2VsYWJsZSIpO249dC5jYW5jZWxGbih0KX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuaGFzVGFzaz1mdW5jdGlvbihlLHQpe3RyeXt0aGlzLl9oYXNUYXNrWlMmJnRoaXMuX2hhc1Rhc2taUy5vbkhhc1Rhc2sodGhpcy5faGFzVGFza0RsZ3QsdGhpcy5faGFzVGFza0N1cnJab25lLGUsdCl9Y2F0Y2gobil7dGhpcy5oYW5kbGVFcnJvcihlLG4pfX0sZS5wcm90b3R5cGUuX3VwZGF0ZVRhc2tDb3VudD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX3Rhc2tDb3VudHMscj1uW2VdLG89bltlXT1yK3Q7aWYobzwwKXRocm93IG5ldyBFcnJvcigiTW9yZSB0YXNrcyBleGVjdXRlZCB0aGVuIHdlcmUgc2NoZWR1bGVkLiIpOzAhPXImJjAhPW98fHRoaXMuaGFzVGFzayh0aGlzLnpvbmUse21pY3JvVGFzazpuLm1pY3JvVGFzaz4wLG1hY3JvVGFzazpuLm1hY3JvVGFzaz4wLGV2ZW50VGFzazpuLmV2ZW50VGFzaz4wLGNoYW5nZTplfSl9LGV9KCksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobixyLG8sYSxpLGMpe3RoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVsZWQiLHRoaXMudHlwZT1uLHRoaXMuc291cmNlPXIsdGhpcy5kYXRhPWEsdGhpcy5zY2hlZHVsZUZuPWksdGhpcy5jYW5jZWxGbj1jLHRoaXMuY2FsbGJhY2s9bzt2YXIgcz10aGlzO3RoaXMuaW52b2tlPW49PT1TJiZhJiZhLnVzZUc/dC5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIHQuaW52b2tlVGFzay5jYWxsKGUscyx0aGlzLGFyZ3VtZW50cyl9fXJldHVybiB0Lmludm9rZVRhc2s9ZnVuY3Rpb24oZSx0LG4pe2V8fChlPXRoaXMpLHorKzt0cnl7cmV0dXJuIGUucnVuQ291bnQrKyxlLnpvbmUucnVuVGFzayhlLHQsbil9ZmluYWxseXsxPT16JiZ5KCksei0tfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJ6b25lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvbmV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJzdGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGF0ZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5jYW5jZWxTY2hlZHVsZVJlcXVlc3Q9ZnVuY3Rpb24oKXt0aGlzLl90cmFuc2l0aW9uVG8oXyxtKX0sdC5wcm90b3R5cGUuX3RyYW5zaXRpb25Ubz1mdW5jdGlvbihlLHQsbil7aWYodGhpcy5fc3RhdGUhPT10JiZ0aGlzLl9zdGF0ZSE9PW4pdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiICciK3RoaXMuc291cmNlKyInOiBjYW4gbm90IHRyYW5zaXRpb24gdG8gJyIrZSsiJywgZXhwZWN0aW5nIHN0YXRlICciK3QrIiciKyhuPyIgb3IgJyIrbisiJyI6IiIpKyIsIHdhcyAnIit0aGlzLl9zdGF0ZSsiJy4iKTt0aGlzLl9zdGF0ZT1lLGU9PV8mJih0aGlzLl96b25lRGVsZWdhdGVzPW51bGwpfSx0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEmJnZvaWQgMCE9PXRoaXMuZGF0YS5oYW5kbGVJZD90aGlzLmRhdGEuaGFuZGxlSWQudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcyl9LHQucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxzdGF0ZTp0aGlzLnN0YXRlLHNvdXJjZTp0aGlzLnNvdXJjZSx6b25lOnRoaXMuem9uZS5uYW1lLHJ1bkNvdW50OnRoaXMucnVuQ291bnR9fSx0fSgpLGw9SSgic2V0VGltZW91dCIpLGY9SSgiUHJvbWlzZSIpLHA9SSgidGhlbiIpLGg9W10sZD0hMTtmdW5jdGlvbiB2KHQpe2lmKDA9PT16JiYwPT09aC5sZW5ndGgpaWYoYXx8ZVtmXSYmKGE9ZVtmXS5yZXNvbHZlKDApKSxhKXt2YXIgbj1hW3BdO258fChuPWEudGhlbiksbi5jYWxsKGEseSl9ZWxzZSBlW2xdKHksMCk7dCYmaC5wdXNoKHQpfWZ1bmN0aW9uIHkoKXtpZighZCl7Zm9yKGQ9ITA7aC5sZW5ndGg7KXt2YXIgZT1oO2g9W107Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBuPWVbdF07dHJ5e24uem9uZS5ydW5UYXNrKG4sbnVsbCxudWxsKX1jYXRjaChyKXtELm9uVW5oYW5kbGVkRXJyb3Iocil9fX1ELm1pY3JvdGFza0RyYWluRG9uZSgpLGQ9ITF9fXZhciBnPXtuYW1lOiJOTyBaT05FIn0sXz0ibm90U2NoZWR1bGVkIixtPSJzY2hlZHVsaW5nIixiPSJzY2hlZHVsZWQiLGs9InJ1bm5pbmciLFQ9ImNhbmNlbGluZyIsdz0idW5rbm93biIsRT0ibWljcm9UYXNrIixPPSJtYWNyb1Rhc2siLFM9ImV2ZW50VGFzayIsUD17fSxEPXtzeW1ib2w6SSxjdXJyZW50Wm9uZUZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIFp9LG9uVW5oYW5kbGVkRXJyb3I6QyxtaWNyb3Rhc2tEcmFpbkRvbmU6QyxzY2hlZHVsZU1pY3JvVGFzazp2LHNob3dVbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIWlbSSgiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIpXX0scGF0Y2hFdmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaE9uUHJvcGVydGllczpDLHBhdGNoTWV0aG9kOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LGJpbmRBcmd1bWVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hUaGVuOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHBhdGNoTWFjcm9UYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHNldE5hdGl2ZVByb21pc2U6ZnVuY3Rpb24oZSl7ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUucmVzb2x2ZSYmKGE9ZS5yZXNvbHZlKDApKX0scGF0Y2hFdmVudFByb3RvdHlwZTpmdW5jdGlvbigpe3JldHVybiBDfSxpc0lFT3JFZGdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGdldEdsb2JhbE9iamVjdHM6ZnVuY3Rpb24oKXt9LE9iamVjdERlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIEN9LE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbigpe30sT2JqZWN0Q3JlYXRlOmZ1bmN0aW9uKCl7fSxBcnJheVNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuW119LHBhdGNoQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sd3JhcFdpdGhDdXJyZW50Wm9uZTpmdW5jdGlvbigpe3JldHVybiBDfSxmaWx0ZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuW119LGF0dGFjaE9yaWdpblRvUGF0Y2hlZDpmdW5jdGlvbigpe3JldHVybiBDfSxfcmVkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBDfSxwYXRjaENhbGxiYWNrczpmdW5jdGlvbigpe3JldHVybiBDfX0sWj17cGFyZW50Om51bGwsem9uZTpuZXcgaShudWxsLG51bGwpfSxqPW51bGwsej0wO2Z1bmN0aW9uIEMoKXt9ZnVuY3Rpb24gSShlKXtyZXR1cm4iX196b25lX3N5bWJvbF9fIitlfXIoIlpvbmUiLCJab25lIiksZS5ab25lPWl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKSxab25lLl9fbG9hZF9wYXRjaCgiWm9uZUF3YXJlUHJvbWlzZSIsKGZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGE9T2JqZWN0LmRlZmluZVByb3BlcnR5LGk9bi5zeW1ib2wsYz1bXSxzPWkoIlByb21pc2UiKSx1PWkoInRoZW4iKSxsPSJfX2NyZWF0aW9uVHJhY2VfXyI7bi5vblVuaGFuZGxlZEVycm9yPWZ1bmN0aW9uKGUpe2lmKG4uc2hvd1VuY2F1Z2h0RXJyb3IoKSl7dmFyIHQ9ZSYmZS5yZWplY3Rpb247dD9jb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246Iix0IGluc3RhbmNlb2YgRXJyb3I/dC5tZXNzYWdlOnQsIjsgWm9uZToiLGUuem9uZS5uYW1lLCI7IFRhc2s6IixlLnRhc2smJmUudGFzay5zb3VyY2UsIjsgVmFsdWU6Iix0LHQgaW5zdGFuY2VvZiBFcnJvcj90LnN0YWNrOnZvaWQgMCk6Y29uc29sZS5lcnJvcihlKX19LG4ubWljcm90YXNrRHJhaW5Eb25lPWZ1bmN0aW9uKCl7Zm9yKDtjLmxlbmd0aDspZm9yKHZhciBlPWZ1bmN0aW9uKCl7dmFyIGU9Yy5zaGlmdCgpO3RyeXtlLnpvbmUucnVuR3VhcmRlZCgoZnVuY3Rpb24oKXt0aHJvdyBlfSkpfWNhdGNoKHQpe3AodCl9fTtjLmxlbmd0aDspZSgpfTt2YXIgZj1pKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIHAoZSl7bi5vblVuaGFuZGxlZEVycm9yKGUpO3RyeXt2YXIgcj10W2ZdO3ImJiJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLmNhbGwodGhpcyxlKX1jYXRjaChvKXt9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGUmJmUudGhlbn1mdW5jdGlvbiBkKGUpe3JldHVybiBlfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIFIucmVqZWN0KGUpfXZhciB5PWkoInN0YXRlIiksZz1pKCJ2YWx1ZSIpLF89aSgiZmluYWxseSIpLG09aSgicGFyZW50UHJvbWlzZVZhbHVlIiksYj1pKCJwYXJlbnRQcm9taXNlU3RhdGUiKSxrPSJQcm9taXNlLnRoZW4iLFQ9bnVsbCx3PSEwLEU9ITEsTz0wO2Z1bmN0aW9uIFMoZSx0KXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e2ooZSx0LG4pfWNhdGNoKHIpe2ooZSwhMSxyKX19fXZhciBQPWZ1bmN0aW9uKCl7dmFyIGU9ITE7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2V8fChlPSEwLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpKX19fSxEPSJQcm9taXNlIHJlc29sdmVkIHdpdGggaXRzZWxmIixaPWkoImN1cnJlbnRUYXNrVHJhY2UiKTtmdW5jdGlvbiBqKGUscixvKXt2YXIgaSxzPVAoKTtpZihlPT09byl0aHJvdyBuZXcgVHlwZUVycm9yKEQpO2lmKGVbeV09PT1UKXt2YXIgdT1udWxsO3RyeXsib2JqZWN0IiE9dHlwZW9mIG8mJiJmdW5jdGlvbiIhPXR5cGVvZiBvfHwodT1vJiZvLnRoZW4pfWNhdGNoKHYpe3JldHVybiBzKChmdW5jdGlvbigpe2ooZSwhMSx2KX0pKSgpLGV9aWYociE9PUUmJm8gaW5zdGFuY2VvZiBSJiZvLmhhc093blByb3BlcnR5KHkpJiZvLmhhc093blByb3BlcnR5KGcpJiZvW3ldIT09VClDKG8pLGooZSxvW3ldLG9bZ10pO2Vsc2UgaWYociE9PUUmJiJmdW5jdGlvbiI9PXR5cGVvZiB1KXRyeXt1LmNhbGwobyxzKFMoZSxyKSkscyhTKGUsITEpKSl9Y2F0Y2godil7cygoZnVuY3Rpb24oKXtqKGUsITEsdil9KSkoKX1lbHNle2VbeV09cjt2YXIgZj1lW2ddO2lmKGVbZ109byxlW19dPT09XyYmcj09PXcmJihlW3ldPWVbYl0sZVtnXT1lW21dKSxyPT09RSYmbyBpbnN0YW5jZW9mIEVycm9yKXt2YXIgcD10LmN1cnJlbnRUYXNrJiZ0LmN1cnJlbnRUYXNrLmRhdGEmJnQuY3VycmVudFRhc2suZGF0YVtsXTtwJiZhKG8sWix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6cH0pfWZvcih2YXIgaD0wO2g8Zi5sZW5ndGg7KUkoZSxmW2grK10sZltoKytdLGZbaCsrXSxmW2grK10pO2lmKDA9PWYubGVuZ3RoJiZyPT1FKXtlW3ldPU87dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiKygoaT1vKSYmaS50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc/KGkuY29uc3RydWN0b3ImJmkuY29uc3RydWN0b3IubmFtZXx8IiIpKyI6ICIrSlNPTi5zdHJpbmdpZnkoaSk6aT9pLnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGkpKSsobyYmby5zdGFjaz8iXG4iK28uc3RhY2s6IiIpKX1jYXRjaCh2KXt2YXIgZD12O2QucmVqZWN0aW9uPW8sZC5wcm9taXNlPWUsZC56b25lPXQuY3VycmVudCxkLnRhc2s9dC5jdXJyZW50VGFzayxjLnB1c2goZCksbi5zY2hlZHVsZU1pY3JvVGFzaygpfX19fXJldHVybiBlfXZhciB6PWkoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIik7ZnVuY3Rpb24gQyhlKXtpZihlW3ldPT09Tyl7dHJ5e3ZhciBuPXRbel07biYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4uY2FsbCh0aGlzLHtyZWplY3Rpb246ZVtnXSxwcm9taXNlOmV9KX1jYXRjaChvKXt9ZVt5XT1FO2Zvcih2YXIgcj0wO3I8Yy5sZW5ndGg7cisrKWU9PT1jW3JdLnByb21pc2UmJmMuc3BsaWNlKHIsMSl9fWZ1bmN0aW9uIEkoZSx0LG4scixvKXtDKGUpO3ZhciBhPWVbeV0saT1hPyJmdW5jdGlvbiI9PXR5cGVvZiByP3I6ZDoiZnVuY3Rpb24iPT10eXBlb2Ygbz9vOnY7dC5zY2hlZHVsZU1pY3JvVGFzayhrLChmdW5jdGlvbigpe3RyeXt2YXIgcj1lW2ddLG89biYmXz09PW5bX107byYmKG5bbV09cixuW2JdPWEpO3ZhciBjPXQucnVuKGksdm9pZCAwLG8mJmkhPT12JiZpIT09ZD9bXTpbcl0pO2oobiwhMCxjKX1jYXRjaChzKXtqKG4sITEscyl9fSksbil9dmFyIFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhbiBpbnN0YW5jZW9mIFByb21pc2UuIik7dGhpc1t5XT1ULHRoaXNbZ109W107dHJ5e3QmJnQoUyh0aGlzLHcpLFModGhpcyxFKSl9Y2F0Y2gobil7aih0aGlzLCExLG4pfX1yZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiBab25lQXdhcmVQcm9taXNlKCkgeyBbbmF0aXZlIGNvZGVdIH0ifSxlLnJlc29sdmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGoobmV3IHRoaXMobnVsbCksdyxlKX0sZS5yZWplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGoobmV3IHRoaXMobnVsbCksRSxlKX0sZS5yYWNlPWZ1bmN0aW9uKGUpe3ZhciB0LG4sbyxhLGk9bmV3IHRoaXMoKGZ1bmN0aW9uKGUsdCl7bz1lLGE9dH0pKTtmdW5jdGlvbiBjKGUpe28oZSl9ZnVuY3Rpb24gcyhlKXthKGUpfXRyeXtmb3IodmFyIHU9cihlKSxsPXUubmV4dCgpOyFsLmRvbmU7bD11Lm5leHQoKSl7dmFyIGY9bC52YWx1ZTtoKGYpfHwoZj10aGlzLnJlc29sdmUoZikpLGYudGhlbihjLHMpfX1jYXRjaChwKXt0PXtlcnJvcjpwfX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYobj11LnJldHVybikmJm4uY2FsbCh1KX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19cmV0dXJuIGl9LGUuYWxsPWZ1bmN0aW9uKGUpe3ZhciB0LG4sbyxhLGk9bmV3IHRoaXMoKGZ1bmN0aW9uKGUsdCl7bz1lLGE9dH0pKSxjPTIscz0wLHU9W10sbD1mdW5jdGlvbihlKXtoKGUpfHwoZT1mLnJlc29sdmUoZSkpO3ZhciB0PXM7ZS50aGVuKChmdW5jdGlvbihlKXt1W3RdPWUsMD09LS1jJiZvKHUpfSksYSksYysrLHMrK30sZj10aGlzO3RyeXtmb3IodmFyIHA9cihlKSxkPXAubmV4dCgpOyFkLmRvbmU7ZD1wLm5leHQoKSlsKGQudmFsdWUpfWNhdGNoKHYpe3Q9e2Vycm9yOnZ9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihuPXAucmV0dXJuKSYmbi5jYWxsKHApfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1yZXR1cm4gMD09KGMtPTIpJiZvKHUpLGl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxTeW1ib2wudG9TdHJpbmdUYWcse2dldDpmdW5jdGlvbigpe3JldHVybiJQcm9taXNlIn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsbil7dmFyIHI9bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCksbz10LmN1cnJlbnQ7cmV0dXJuIHRoaXNbeV09PVQ/dGhpc1tnXS5wdXNoKG8scixlLG4pOkkodGhpcyxvLHIsZSxuKSxyfSxlLnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50aGVuKG51bGwsZSl9LGUucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24oZSl7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCk7bltfXT1fO3ZhciByPXQuY3VycmVudDtyZXR1cm4gdGhpc1t5XT09VD90aGlzW2ddLnB1c2gocixuLGUsZSk6SSh0aGlzLHIsbixlLGUpLG59LGV9KCk7Ui5yZXNvbHZlPVIucmVzb2x2ZSxSLnJlamVjdD1SLnJlamVjdCxSLnJhY2U9Ui5yYWNlLFIuYWxsPVIuYWxsO3ZhciB4PWVbc109ZS5Qcm9taXNlLE09dC5fX3N5bWJvbF9fKCJab25lQXdhcmVQcm9taXNlIiksTD1vKGUsIlByb21pc2UiKTtMJiYhTC5jb25maWd1cmFibGV8fChMJiZkZWxldGUgTC53cml0YWJsZSxMJiZkZWxldGUgTC52YWx1ZSxMfHwoTD17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KSxMLmdldD1mdW5jdGlvbigpe3JldHVybiBlW01dP2VbTV06ZVtzXX0sTC5zZXQ9ZnVuY3Rpb24odCl7dD09PVI/ZVtNXT10OihlW3NdPXQsdC5wcm90b3R5cGVbdV18fEEodCksbi5zZXROYXRpdmVQcm9taXNlKHQpKX0sYShlLCJQcm9taXNlIixMKSksZS5Qcm9taXNlPVI7dmFyIE4sRj1pKCJ0aGVuUGF0Y2hlZCIpO2Z1bmN0aW9uIEEoZSl7dmFyIHQ9ZS5wcm90b3R5cGUsbj1vKHQsInRoZW4iKTtpZighbnx8ITEhPT1uLndyaXRhYmxlJiZuLmNvbmZpZ3VyYWJsZSl7dmFyIHI9dC50aGVuO3RbdV09cixlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gbmV3IFIoKGZ1bmN0aW9uKGUsdCl7ci5jYWxsKG4sZSx0KX0pKS50aGVuKGUsdCl9LGVbRl09ITB9fWlmKG4ucGF0Y2hUaGVuPUEseCl7QSh4KTt2YXIgSD1lLmZldGNoOyJmdW5jdGlvbiI9PXR5cGVvZiBIJiYoZVtuLnN5bWJvbCgiZmV0Y2giKV09SCxlLmZldGNoPShOPUgsZnVuY3Rpb24oKXt2YXIgZT1OLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihlIGluc3RhbmNlb2YgUilyZXR1cm4gZTt2YXIgdD1lLmNvbnN0cnVjdG9yO3JldHVybiB0W0ZdfHxBKHQpLGV9KSl9cmV0dXJuIFByb21pc2VbdC5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMiKV09YyxSfSkpO3ZhciBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsdD1PYmplY3QuZGVmaW5lUHJvcGVydHksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1PYmplY3QuY3JlYXRlLGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLGk9ImFkZEV2ZW50TGlzdGVuZXIiLGM9InJlbW92ZUV2ZW50TGlzdGVuZXIiLHM9Wm9uZS5fX3N5bWJvbF9fKGkpLHU9Wm9uZS5fX3N5bWJvbF9fKGMpLGw9InRydWUiLGY9ImZhbHNlIixwPSJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIGgoZSx0KXtyZXR1cm4gWm9uZS5jdXJyZW50LndyYXAoZSx0KX1mdW5jdGlvbiBkKGUsdCxuLHIsbyl7cmV0dXJuIFpvbmUuY3VycmVudC5zY2hlZHVsZU1hY3JvVGFzayhlLHQsbixyLG8pfXZhciB2PVpvbmUuX19zeW1ib2xfXyx5PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LGc9eT93aW5kb3c6dm9pZCAwLF89eSYmZ3x8Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmfHxnbG9iYWwsbT0icmVtb3ZlQXR0cmlidXRlIixiPVtudWxsXTtmdW5jdGlvbiBrKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLTE7bj49MDtuLS0pImZ1bmN0aW9uIj09dHlwZW9mIGVbbl0mJihlW25dPWgoZVtuXSx0KyJfIituKSk7cmV0dXJuIGV9ZnVuY3Rpb24gVChlKXtyZXR1cm4hZXx8ITEhPT1lLndyaXRhYmxlJiYhKCJmdW5jdGlvbiI9PXR5cGVvZiBlLmdldCYmdm9pZCAwPT09ZS5zZXQpfXZhciB3PSJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSxFPSEoIm53ImluIF8pJiZ2b2lkIDAhPT1fLnByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoXy5wcm9jZXNzKSxPPSFFJiYhdyYmISgheXx8IWcuSFRNTEVsZW1lbnQpLFM9dm9pZCAwIT09Xy5wcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKF8ucHJvY2VzcykmJiF3JiYhKCF5fHwhZy5IVE1MRWxlbWVudCksUD17fSxEPWZ1bmN0aW9uKGUpe2lmKGU9ZXx8Xy5ldmVudCl7dmFyIHQ9UFtlLnR5cGVdO3R8fCh0PVBbZS50eXBlXT12KCJPTl9QUk9QRVJUWSIrZS50eXBlKSk7dmFyIG4scj10aGlzfHxlLnRhcmdldHx8XyxvPXJbdF07aWYoTyYmcj09PWcmJiJlcnJvciI9PT1lLnR5cGUpe3ZhciBhPWU7ITA9PT0obj1vJiZvLmNhbGwodGhpcyxhLm1lc3NhZ2UsYS5maWxlbmFtZSxhLmxpbmVubyxhLmNvbG5vLGEuZXJyb3IpKSYmZS5wcmV2ZW50RGVmYXVsdCgpfWVsc2UgbnVsbD09KG49byYmby5hcHBseSh0aGlzLGFyZ3VtZW50cykpfHxufHxlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIG59fTtmdW5jdGlvbiBaKG4scixvKXt2YXIgYT1lKG4scik7aWYoIWEmJm8mJmUobyxyKSYmKGE9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksYSYmYS5jb25maWd1cmFibGUpe3ZhciBpPXYoIm9uIityKyJwYXRjaGVkIik7aWYoIW4uaGFzT3duUHJvcGVydHkoaSl8fCFuW2ldKXtkZWxldGUgYS53cml0YWJsZSxkZWxldGUgYS52YWx1ZTt2YXIgYz1hLmdldCxzPWEuc2V0LHU9ci5zdWJzdHIoMiksbD1QW3VdO2x8fChsPVBbdV09digiT05fUFJPUEVSVFkiK3UpKSxhLnNldD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3R8fG4hPT1ffHwodD1fKSx0JiYodFtsXSYmdC5yZW1vdmVFdmVudExpc3RlbmVyKHUsRCkscyYmcy5hcHBseSh0LGIpLCJmdW5jdGlvbiI9PXR5cGVvZiBlPyh0W2xdPWUsdC5hZGRFdmVudExpc3RlbmVyKHUsRCwhMSkpOnRbbF09bnVsbCl9LGEuZ2V0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZihlfHxuIT09X3x8KGU9XyksIWUpcmV0dXJuIG51bGw7dmFyIHQ9ZVtsXTtpZih0KXJldHVybiB0O2lmKGMpe3ZhciBvPWMmJmMuY2FsbCh0aGlzKTtpZihvKXJldHVybiBhLnNldC5jYWxsKHRoaXMsbyksImZ1bmN0aW9uIj09dHlwZW9mIGVbbV0mJmUucmVtb3ZlQXR0cmlidXRlKHIpLG99cmV0dXJuIG51bGx9LHQobixyLGEpLG5baV09ITB9fX1mdW5jdGlvbiBqKGUsdCxuKXtpZih0KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKVooZSwib24iK3Rbcl0sbik7ZWxzZXt2YXIgbz1bXTtmb3IodmFyIGEgaW4gZSkib24iPT1hLnN1YnN0cigwLDIpJiZvLnB1c2goYSk7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspWihlLG9baV0sbil9fXZhciB6PXYoIm9yaWdpbmFsSW5zdGFuY2UiKTtmdW5jdGlvbiBDKGUpe3ZhciBuPV9bZV07aWYobil7X1t2KGUpXT1uLF9bZV09ZnVuY3Rpb24oKXt2YXIgdD1rKGFyZ3VtZW50cyxlKTtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMDp0aGlzW3pdPW5ldyBuO2JyZWFrO2Nhc2UgMTp0aGlzW3pdPW5ldyBuKHRbMF0pO2JyZWFrO2Nhc2UgMjp0aGlzW3pdPW5ldyBuKHRbMF0sdFsxXSk7YnJlYWs7Y2FzZSAzOnRoaXNbel09bmV3IG4odFswXSx0WzFdLHRbMl0pO2JyZWFrO2Nhc2UgNDp0aGlzW3pdPW5ldyBuKHRbMF0sdFsxXSx0WzJdLHRbM10pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJBcmcgbGlzdCB0b28gbG9uZy4iKX19LE0oX1tlXSxuKTt2YXIgcixvPW5ldyBuKChmdW5jdGlvbigpe30pKTtmb3IociBpbiBvKSJYTUxIdHRwUmVxdWVzdCI9PT1lJiYicmVzcG9uc2VCbG9iIj09PXJ8fGZ1bmN0aW9uKG4peyJmdW5jdGlvbiI9PXR5cGVvZiBvW25dP19bZV0ucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbel1bbl0uYXBwbHkodGhpc1t6XSxhcmd1bWVudHMpfTp0KF9bZV0ucHJvdG90eXBlLG4se3NldDpmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT10eXBlb2YgdD8odGhpc1t6XVtuXT1oKHQsZSsiLiIrbiksTSh0aGlzW3pdW25dLHQpKTp0aGlzW3pdW25dPXR9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW3pdW25dfX0pfShyKTtmb3IociBpbiBuKSJwcm90b3R5cGUiIT09ciYmbi5oYXNPd25Qcm9wZXJ0eShyKSYmKF9bZV1bcl09bltyXSl9fXZhciBJPSExO2Z1bmN0aW9uIFIodCxyLG8pe2Zvcih2YXIgYT10O2EmJiFhLmhhc093blByb3BlcnR5KHIpOylhPW4oYSk7IWEmJnRbcl0mJihhPXQpO3ZhciBpLGMscz12KHIpLHU9bnVsbDtpZihhJiYhKHU9YVtzXSkmJih1PWFbc109YVtyXSxUKGEmJmUoYSxyKSkpKXt2YXIgbD1vKHUscyxyKTthW3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGwodGhpcyxhcmd1bWVudHMpfSxNKGFbcl0sdSksSSYmKGk9dSxjPWFbcl0sImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGUse2dldDpmdW5jdGlvbigpe3JldHVybiBpW2VdfSxzZXQ6ZnVuY3Rpb24obil7KCF0fHx0LndyaXRhYmxlJiYiZnVuY3Rpb24iPT10eXBlb2YgdC5zZXQpJiYoaVtlXT1uKX0sZW51bWVyYWJsZTohdHx8dC5lbnVtZXJhYmxlLGNvbmZpZ3VyYWJsZTohdHx8dC5jb25maWd1cmFibGV9KX0pKSl9cmV0dXJuIHV9ZnVuY3Rpb24geChlLHQsbil7dmFyIHI9bnVsbDtmdW5jdGlvbiBvKGUpe3ZhciB0PWUuZGF0YTtyZXR1cm4gdC5hcmdzW3QuY2JJZHhdPWZ1bmN0aW9uKCl7ZS5pbnZva2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxyLmFwcGx5KHQudGFyZ2V0LHQuYXJncyksZX1yPVIoZSx0LChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgYT1uKHQscik7cmV0dXJuIGEuY2JJZHg+PTAmJiJmdW5jdGlvbiI9PXR5cGVvZiByW2EuY2JJZHhdP2QoYS5uYW1lLHJbYS5jYklkeF0sYSxvKTplLmFwcGx5KHQscil9fSkpfWZ1bmN0aW9uIE0oZSx0KXtlW3YoIk9yaWdpbmFsRGVsZWdhdGUiKV09dH12YXIgTD0hMSxOPSExO2Z1bmN0aW9uIEYoKXt0cnl7dmFyIGU9Zy5uYXZpZ2F0b3IudXNlckFnZW50O2lmKC0xIT09ZS5pbmRleE9mKCJNU0lFICIpfHwtMSE9PWUuaW5kZXhPZigiVHJpZGVudC8iKSlyZXR1cm4hMH1jYXRjaCh0KXt9cmV0dXJuITF9ZnVuY3Rpb24gQSgpe2lmKEwpcmV0dXJuIE47TD0hMDt0cnl7dmFyIGU9Zy5uYXZpZ2F0b3IudXNlckFnZW50Oy0xPT09ZS5pbmRleE9mKCJNU0lFICIpJiYtMT09PWUuaW5kZXhPZigiVHJpZGVudC8iKSYmLTE9PT1lLmluZGV4T2YoIkVkZ2UvIil8fChOPSEwKX1jYXRjaCh0KXt9cmV0dXJuIE59Wm9uZS5fX2xvYWRfcGF0Y2goInRvU3RyaW5nIiwoZnVuY3Rpb24oZSl7dmFyIHQ9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLG49digiT3JpZ2luYWxEZWxlZ2F0ZSIpLHI9digiUHJvbWlzZSIpLG89digiRXJyb3IiKSxhPWZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMpe3ZhciBhPXRoaXNbbl07aWYoYSlyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYT90LmNhbGwoYSk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpO2lmKHRoaXM9PT1Qcm9taXNlKXt2YXIgaT1lW3JdO2lmKGkpcmV0dXJuIHQuY2FsbChpKX1pZih0aGlzPT09RXJyb3Ipe3ZhciBjPWVbb107aWYoYylyZXR1cm4gdC5jYWxsKGMpfX1yZXR1cm4gdC5jYWxsKHRoaXMpfTthW25dPXQsRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPWE7dmFyIGk9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBQcm9taXNlPyJbb2JqZWN0IFByb21pc2VdIjppLmNhbGwodGhpcyl9fSkpO3ZhciBIPSExO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXRyeXt2YXIgRz1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtIPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixHLEcpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixHLEcpfWNhdGNoKE9lKXtIPSExfXZhciBCPXt1c2VHOiEwfSxXPXt9LHE9e30sVT0vXl9fem9uZV9zeW1ib2xfXyhcdyspKHRydWV8ZmFsc2UpJC8sVj0iX196b25lX3N5bWJvbF9fcHJvcGFnYXRpb25TdG9wcGVkIjtmdW5jdGlvbiBYKGUsdCxyKXt2YXIgbz1yJiZyLmFkZHx8aSxhPXImJnIucm18fGMscz1yJiZyLmxpc3RlbmVyc3x8ImV2ZW50TGlzdGVuZXJzIix1PXImJnIucm1BbGx8fCJyZW1vdmVBbGxMaXN0ZW5lcnMiLGg9dihvKSxkPSIuIitvKyI6Iix5PSJwcmVwZW5kTGlzdGVuZXIiLGc9Ii4iK3krIjoiLF89ZnVuY3Rpb24oZSx0LG4pe2lmKCFlLmlzUmVtb3ZlZCl7dmFyIHI9ZS5jYWxsYmFjazsib2JqZWN0Ij09dHlwZW9mIHImJnIuaGFuZGxlRXZlbnQmJihlLmNhbGxiYWNrPWZ1bmN0aW9uKGUpe3JldHVybiByLmhhbmRsZUV2ZW50KGUpfSxlLm9yaWdpbmFsRGVsZWdhdGU9ciksZS5pbnZva2UoZSx0LFtuXSk7dmFyIG89ZS5vcHRpb25zO28mJiJvYmplY3QiPT10eXBlb2YgbyYmby5vbmNlJiZ0W2FdLmNhbGwodCxuLnR5cGUsZS5vcmlnaW5hbERlbGVnYXRlP2Uub3JpZ2luYWxEZWxlZ2F0ZTplLmNhbGxiYWNrLG8pfX0sbT1mdW5jdGlvbih0KXtpZih0PXR8fGUuZXZlbnQpe3ZhciBuPXRoaXN8fHQudGFyZ2V0fHxlLHI9bltXW3QudHlwZV1bZl1dO2lmKHIpaWYoMT09PXIubGVuZ3RoKV8oclswXSxuLHQpO2Vsc2UgZm9yKHZhciBvPXIuc2xpY2UoKSxhPTA7YTxvLmxlbmd0aCYmKCF0fHwhMCE9PXRbVl0pO2ErKylfKG9bYV0sbix0KX19LGI9ZnVuY3Rpb24odCl7aWYodD10fHxlLmV2ZW50KXt2YXIgbj10aGlzfHx0LnRhcmdldHx8ZSxyPW5bV1t0LnR5cGVdW2xdXTtpZihyKWlmKDE9PT1yLmxlbmd0aClfKHJbMF0sbix0KTtlbHNlIGZvcih2YXIgbz1yLnNsaWNlKCksYT0wO2E8by5sZW5ndGgmJighdHx8ITAhPT10W1ZdKTthKyspXyhvW2FdLG4sdCl9fTtmdW5jdGlvbiBrKHQscil7aWYoIXQpcmV0dXJuITE7dmFyIGk9ITA7ciYmdm9pZCAwIT09ci51c2VHJiYoaT1yLnVzZUcpO3ZhciBjPXImJnIudmgsXz0hMDtyJiZ2b2lkIDAhPT1yLmNoa0R1cCYmKF89ci5jaGtEdXApO3ZhciBrPSExO3ImJnZvaWQgMCE9PXIucnQmJihrPXIucnQpO2Zvcih2YXIgVD10O1QmJiFULmhhc093blByb3BlcnR5KG8pOylUPW4oVCk7aWYoIVQmJnRbb10mJihUPXQpLCFUKXJldHVybiExO2lmKFRbaF0pcmV0dXJuITE7dmFyIHcsTz1yJiZyLmV2ZW50TmFtZVRvU3RyaW5nLFM9e30sUD1UW2hdPVRbb10sRD1UW3YoYSldPVRbYV0sWj1UW3YocyldPVRbc10saj1UW3YodSldPVRbdV07ZnVuY3Rpb24geihlKXtIfHwiYm9vbGVhbiI9PXR5cGVvZiBTLm9wdGlvbnN8fG51bGw9PVMub3B0aW9uc3x8KGUub3B0aW9ucz0hIVMub3B0aW9ucy5jYXB0dXJlLFMub3B0aW9ucz1lLm9wdGlvbnMpfXImJnIucA=="
{
"type": 12,
"id": "C7SL7nYkGMuz2u7xC79zToiLY64sJa12eUW7cAW8u1co",
"fee": 4991700,
"feeAssetId": null,
"timestamp": 1575391626668,
"version": 1,
"sender": "3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ",
"senderPublicKey": "BdACbbxkapMbmbtG7UxdPQ5Y8grEhk9cNxLNGAF5znme",
"proofs": [
"ji7s4YBJgVRowU2qrwUc1wTyd4mhzkgCSr8LdZ9rwHqPWPGNMrE846o38qnF2Vftpu1KP2XbVFhKA4AyNPbLzqD"
],
"data": [
{
"key": "qwe?runtime.js?2?0",
"type": "binary",
"value": "base64:KHdpbmRvdy53ZWJwYWNrSnNvbnA9d2luZG93LndlYnBhY2tKc29ucHx8W10pLnB1c2goW1syXSx7IjBUV3AiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJtclNHIikuX192YWx1ZXM7IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyFmdW5jdGlvbihlKXt2YXIgdD1lLnBlcmZvcm1hbmNlO2Z1bmN0aW9uIG4oZSl7dCYmdC5tYXJrJiZ0Lm1hcmsoZSl9ZnVuY3Rpb24gcihlLG4pe3QmJnQubWVhc3VyZSYmdC5tZWFzdXJlKGUsbil9bigiWm9uZSIpO3ZhciBvPSEwPT09ZS5fX3pvbmVfc3ltYm9sX19mb3JjZUR1cGxpY2F0ZVpvbmVDaGVjaztpZihlLlpvbmUpe2lmKG98fCJmdW5jdGlvbiIhPXR5cGVvZiBlLlpvbmUuX19zeW1ib2xfXyl0aHJvdyBuZXcgRXJyb3IoIlpvbmUgYWxyZWFkeSBsb2FkZWQuIik7cmV0dXJuIGUuWm9uZX12YXIgYSxpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQpe3RoaXMuX3BhcmVudD1lLHRoaXMuX25hbWU9dD90Lm5hbWV8fCJ1bm5hbWVkIjoiPHJvb3Q+Iix0aGlzLl9wcm9wZXJ0aWVzPXQmJnQucHJvcGVydGllc3x8e30sdGhpcy5fem9uZURlbGVnYXRlPW5ldyBzKHRoaXMsdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3pvbmVEZWxlZ2F0ZSx0KX1yZXR1cm4gdC5hc3NlcnRab25lUGF0Y2hlZD1mdW5jdGlvbigpe2lmKGUuUHJvbWlzZSE9PVAuWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicm9vdCIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgZT10LmN1cnJlbnQ7ZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImN1cnJlbnQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWi56b25lfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJjdXJyZW50VGFzayIse2dldDpmdW5jdGlvbigpe3JldHVybiBqfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHQuX19sb2FkX3BhdGNoPWZ1bmN0aW9uKGEsaSl7aWYoUC5oYXNPd25Qcm9wZXJ0eShhKSl7aWYobyl0aHJvdyBFcnJvcigiQWxyZWFkeSBsb2FkZWQgcGF0Y2g6ICIrYSl9ZWxzZSBpZighZVsiX19ab25lX2Rpc2FibGVfIithXSl7dmFyIGM9IlpvbmU6IithO24oYyksUFthXT1pKGUsdCxEKSxyKGMsYyl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsInBhcmVudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wYXJlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZ2V0Wm9uZVdpdGgoZSk7aWYodClyZXR1cm4gdC5fcHJvcGVydGllc1tlXX0sdC5wcm90b3R5cGUuZ2V0Wm9uZVdpdGg9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXM7dDspe2lmKHQuX3Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIHQ7dD10Ll9wYXJlbnR9cmV0dXJuIG51bGx9LHQucHJvdG90eXBlLmZvcms9ZnVuY3Rpb24oZSl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJab25lU3BlYyByZXF1aXJlZCEiKTtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmZvcmsodGhpcyxlKX0sdC5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiRXhwZWN0aW5nIGZ1bmN0aW9uIGdvdDogIitlKTt2YXIgbj10aGlzLl96b25lRGVsZWdhdGUuaW50ZXJjZXB0KHRoaXMsZSx0KSxyPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIucnVuR3VhcmRlZChuLHRoaXMsYXJndW1lbnRzLHQpfX0sdC5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKGUsdCxuLHIpe1o9e3BhcmVudDpaLHpvbmU6dGhpc307dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlKHRoaXMsZSx0LG4scil9ZmluYWxseXtaPVoucGFyZW50fX0sdC5wcm90b3R5cGUucnVuR3VhcmRlZD1mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT10JiYodD1udWxsKSxaPXtwYXJlbnQ6Wix6b25lOnRoaXN9O3RyeXt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2UodGhpcyxlLHQsbixyKX1jYXRjaChvKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxvKSl0aHJvdyBvfX1maW5hbGx5e1o9Wi5wYXJlbnR9fSx0LnByb3RvdHlwZS5ydW5UYXNrPWZ1bmN0aW9uKGUsdCxuKXtpZihlLnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgcnVuIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKGUuem9uZXx8ZykubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7aWYoZS5zdGF0ZSE9PV98fGUudHlwZSE9PVMmJmUudHlwZSE9PU8pe3ZhciByPWUuc3RhdGUhPWs7ciYmZS5fdHJhbnNpdGlvblRvKGssYiksZS5ydW5Db3VudCsrO3ZhciBvPWo7aj1lLFo9e3BhcmVudDpaLHpvbmU6dGhpc307dHJ5e2UudHlwZT09TyYmZS5kYXRhJiYhZS5kYXRhLmlzUGVyaW9kaWMmJihlLmNhbmNlbEZuPXZvaWQgMCk7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlVGFzayh0aGlzLGUsdCxuKX1jYXRjaChhKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxhKSl0aHJvdyBhfX1maW5hbGx5e2Uuc3RhdGUhPT1fJiZlLnN0YXRlIT09dyYmKGUudHlwZT09U3x8ZS5kYXRhJiZlLmRhdGEuaXNQZXJpb2RpYz9yJiZlLl90cmFuc2l0aW9uVG8oYixrKTooZS5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudChlLC0xKSxyJiZlLl90cmFuc2l0aW9uVG8oXyxrLF8pKSksWj1aLnBhcmVudCxqPW99fX0sdC5wcm90b3R5cGUuc2NoZWR1bGVUYXNrPWZ1bmN0aW9uKGUpe2lmKGUuem9uZSYmZS56b25lIT09dGhpcylmb3IodmFyIHQ9dGhpczt0Oyl7aWYodD09PWUuem9uZSl0aHJvdyBFcnJvcigiY2FuIG5vdCByZXNjaGVkdWxlIHRhc2sgdG8gIit0aGlzLm5hbWUrIiB3aGljaCBpcyBkZXNjZW5kYW50cyBvZiB0aGUgb3JpZ2luYWwgem9uZSAiK2Uuem9uZS5uYW1lKTt0PXQucGFyZW50fWUuX3RyYW5zaXRpb25UbyhtLF8pO3ZhciBuPVtdO2UuX3pvbmVEZWxlZ2F0ZXM9bixlLl96b25lPXRoaXM7dHJ5e2U9dGhpcy5fem9uZURlbGVnYXRlLnNjaGVkdWxlVGFzayh0aGlzLGUpfWNhdGNoKHIpe3Rocm93IGUuX3RyYW5zaXRpb25Ubyh3LG0sXyksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMscikscn1yZXR1cm4gZS5fem9uZURlbGVnYXRlcz09PW4mJnRoaXMuX3VwZGF0ZVRhc2tDb3VudChlLDEpLGUuc3RhdGU9PW0mJmUuX3RyYW5zaXRpb25UbyhiLG0pLGV9LHQucHJvdG90eXBlLnNjaGVkdWxlTWljcm9UYXNrPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgdShFLGUsdCxuLHIsdm9pZCAwKSl9LHQucHJvdG90eXBlLnNjaGVkdWxlTWFjcm9UYXNrPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyB1KE8sZSx0LG4scixvKSl9LHQucHJvdG90eXBlLnNjaGVkdWxlRXZlbnRUYXNrPWZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyB1KFMsZSx0LG4scixvKSl9LHQucHJvdG90eXBlLmNhbmNlbFRhc2s9ZnVuY3Rpb24oZSl7aWYoZS56b25lIT10aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyhlLnpvbmV8fGcpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2UuX3RyYW5zaXRpb25UbyhULGIsayk7dHJ5e3RoaXMuX3pvbmVEZWxlZ2F0ZS5jYW5jZWxUYXNrKHRoaXMsZSl9Y2F0Y2godCl7dGhyb3cgZS5fdHJhbnNpdGlvblRvKHcsVCksdGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsdCksdH1yZXR1cm4gdGhpcy5fdXBkYXRlVGFza0NvdW50KGUsLTEpLGUuX3RyYW5zaXRpb25UbyhfLFQpLGUucnVuQ291bnQ9MCxlfSx0LnByb3RvdHlwZS5fdXBkYXRlVGFza0NvdW50PWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fem9uZURlbGVnYXRlczstMT09dCYmKGUuX3pvbmVEZWxlZ2F0ZXM9bnVsbCk7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspbltyXS5fdXBkYXRlVGFza0NvdW50KGUudHlwZSx0KX0sdC5fX3N5bWJvbF9fPUksdH0oKSxjPXtuYW1lOiIiLG9uSGFzVGFzazpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZS5oYXNUYXNrKG4scil9LG9uU2NoZWR1bGVUYXNrOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBlLnNjaGVkdWxlVGFzayhuLHIpfSxvbkludm9rZVRhc2s6ZnVuY3Rpb24oZSx0LG4scixvLGEpe3JldHVybiBlLmludm9rZVRhc2sobixyLG8sYSl9LG9uQ2FuY2VsVGFzazpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gZS5jYW5jZWxUYXNrKG4scil9fSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbil7dGhpcy5fdGFza0NvdW50cz17bWljcm9UYXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT1lLHRoaXMuX3BhcmVudERlbGVnYXRlPXQsdGhpcy5fZm9ya1pTPW4mJihuJiZuLm9uRm9yaz9uOnQuX2ZvcmtaUyksdGhpcy5fZm9ya0RsZ3Q9biYmKG4ub25Gb3JrP3Q6dC5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1uJiYobi5vbkZvcms/dGhpcy56b25lOnQuem9uZSksdGhpcy5faW50ZXJjZXB0WlM9biYmKG4ub25JbnRlcmNlcHQ/bjp0Ll9pbnRlcmNlcHRaUyksdGhpcy5faW50ZXJjZXB0RGxndD1uJiYobi5vbkludGVyY2VwdD90OnQuX2ludGVyY2VwdERsZ3QpLHRoaXMuX2ludGVyY2VwdEN1cnJab25lPW4mJihuLm9uSW50ZXJjZXB0P3RoaXMuem9uZTp0LnpvbmUpLHRoaXMuX2ludm9rZVpTPW4mJihuLm9uSW52b2tlP246dC5faW52b2tlWlMpLHRoaXMuX2ludm9rZURsZ3Q9biYmKG4ub25JbnZva2U/dDp0Ll9pbnZva2VEbGd0KSx0aGlzLl9pbnZva2VDdXJyWm9uZT1uJiYobi5vbkludm9rZT90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9oYW5kbGVFcnJvclpTPW4mJihuLm9uSGFuZGxlRXJyb3I/bjp0Ll9oYW5kbGVFcnJvclpTKSx0aGlzLl9oYW5kbGVFcnJvckRsZ3Q9biYmKG4ub25IYW5kbGVFcnJvcj90OnQuX2hhbmRsZUVycm9yRGxndCksdGhpcy5faGFuZGxlRXJyb3JDdXJyWm9uZT1uJiYobi5vbkhhbmRsZUVycm9yP3RoaXMuem9uZTp0LnpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPW4mJihuLm9uU2NoZWR1bGVUYXNrP246dC5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9biYmKG4ub25TY2hlZHVsZVRhc2s/dDp0Ll9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZT1uJiYobi5vblNjaGVkdWxlVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9pbnZva2VUYXNrWlM9biYmKG4ub25JbnZva2VUYXNrP246dC5faW52b2tlVGFza1pTKSx0aGlzLl9pbnZva2VUYXNrRGxndD1uJiYobi5vbkludm9rZVRhc2s/dDp0Ll9pbnZva2VUYXNrRGxndCksdGhpcy5faW52b2tlVGFza0N1cnJab25lPW4mJihuLm9uSW52b2tlVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9jYW5jZWxUYXNrWlM9biYmKG4ub25DYW5jZWxUYXNrP246dC5fY2FuY2VsVGFza1pTKSx0aGlzLl9jYW5jZWxUYXNrRGxndD1uJiYobi5vbkNhbmNlbFRhc2s/dDp0Ll9jYW5jZWxUYXNrRGxndCksdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPW4mJihuLm9uQ2FuY2VsVGFzaz90aGlzLnpvbmU6dC56b25lKSx0aGlzLl9oYXNUYXNrWlM9bnVsbCx0aGlzLl9oYXNUYXNrRGxndD1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9bnVsbCx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9bnVsbDt2YXIgcj1uJiZuLm9uSGFzVGFzazsocnx8dCYmdC5faGFzVGFza1pTKSYmKHRoaXMuX2hhc1Rhc2taUz1yP246Yyx0aGlzLl9oYXNUYXNrRGxndD10LHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9dGhpcyx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9ZSxuLm9uU2NoZWR1bGVUYXNrfHwodGhpcy5fc2NoZWR1bGVUYXNrWlM9Yyx0aGlzLl9zY2hlZHVsZVRhc2tEbGd0PXQsdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmU9dGhpcy56b25lKSxuLm9uSW52b2tlVGFza3x8KHRoaXMuX2ludm9rZVRhc2taUz1jLHRoaXMuX2ludm9rZVRhc2tEbGd0PXQsdGhpcy5faW52b2tlVGFza0N1cnJab25lPXRoaXMuem9uZSksbi5vbkNhbmNlbFRhc2t8fCh0aGlzLl9jYW5jZWxUYXNrWlM9Yyx0aGlzLl9jYW5jZWxUYXNrRGxndD10LHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT10aGlzLnpvbmUpKX1yZXR1cm4gZS5wcm90b3R5cGUuZm9yaz1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9mb3JrWlM/dGhpcy5fZm9ya1pTLm9uRm9yayh0aGlzLl9mb3JrRGxndCx0aGlzLnpvbmUsZSx0KTpuZXcgaShlLHQpfSxlLnByb3RvdHlwZS5pbnRlcmNlcHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0aGlzLl9pbnRlcmNlcHRaUz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLGUsdCxuKTp0fSxlLnByb3RvdHlwZS5pbnZva2U9ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4gdGhpcy5faW52b2tlWlM/dGhpcy5faW52b2tlWlMub25JbnZva2UodGhpcy5faW52b2tlRGxndCx0aGlzLl9pbnZva2VDdXJyWm9uZSxlLHQsbixyLG8pOnQuYXBwbHkobixyKX0sZS5wcm90b3R5cGUuaGFuZGxlRXJyb3I9ZnVuY3Rpb24oZSx0KXtyZXR1cm4hdGhpcy5faGFuZGxlRXJyb3JaU3x8dGhpcy5faGFuZGxlRXJyb3JaUy5vbkhhbmRsZUVycm9yKHRoaXMuX2hhbmRsZUVycm9yRGxndCx0aGlzLl9oYW5kbGVFcnJvckN1cnJab25lLGUsdCl9LGUucHJvdG90eXBlLnNjaGVkdWxlVGFzaz1mdW5jdGlvbihlLHQpe3ZhciBuPXQ7aWYodGhpcy5fc2NoZWR1bGVUYXNrWlMpdGhpcy5faGFzVGFza1pTJiZuLl96b25lRGVsZWdhdGVzLnB1c2godGhpcy5faGFzVGFza0RsZ3RPd25lciksKG49dGhpcy5fc2NoZWR1bGVUYXNrWlMub25TY2hlZHVsZVRhc2sodGhpcy5fc2NoZWR1bGVUYXNrRGxndCx0aGlzLl9zY2hlZHVsZVRhc2tDdXJyWm9uZSxlLHQpKXx8KG49dCk7ZWxzZSBpZih0LnNjaGVkdWxlRm4pdC5zY2hlZHVsZUZuKHQpO2Vsc2V7aWYodC50eXBlIT1FKXRocm93IG5ldyBFcnJvcigiVGFzayBpcyBtaXNzaW5nIHNjaGVkdWxlRm4uIik7dih0KX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuaW52b2tlVGFzaz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gdGhpcy5faW52b2tlVGFza1pTP3RoaXMuX2ludm9rZVRhc2taUy5vbkludm9rZVRhc2sodGhpcy5faW52b2tlVGFza0RsZ3QsdGhpcy5faW52b2tlVGFza0N1cnJab25lLGUsdCxuLHIpOnQuY2FsbGJhY2suYXBwbHkobixyKX0sZS5wcm90b3R5cGUuY2FuY2VsVGFzaz1mdW5jdGlvbihlLHQpe3ZhciBuO2lmKHRoaXMuX2NhbmNlbFRhc2taUyluPXRoaXMuX2NhbmNlbFRhc2taUy5vbkNhbmNlbFRhc2sodGhpcy5fY2FuY2VsVGFza0RsZ3QsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lLGUsdCk7ZWxzZXtpZighdC5jYW5jZWxGbil0aHJvdyBFcnJvcigiVGFzayBpcyBub3QgY2FuY2VsYWJsZSIpO249dC5jYW5jZWxGbih0KX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuaGFzVGFzaz1mdW5jdGlvbihlLHQpe3RyeXt0aGlzLl9oYXNUYXNrWlMmJnRoaXMuX2hhc1Rhc2taUy5vbkhhc1Rhc2sodGhpcy5faGFzVGFza0RsZ3QsdGhpcy5faGFzVGFza0N1cnJab25lLGUsdCl9Y2F0Y2gobil7dGhpcy5oYW5kbGVFcnJvcihlLG4pfX0sZS5wcm90b3R5cGUuX3VwZGF0ZVRhc2tDb3VudD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX3Rhc2tDb3VudHMscj1uW2VdLG89bltlXT1yK3Q7aWYobzwwKXRocm93IG5ldyBFcnJvcigiTW9yZSB0YXNrcyBleGVjdXRlZCB0aGVuIHdlcmUgc2NoZWR1bGVkLiIpOzAhPXImJjAhPW98fHRoaXMuaGFzVGFzayh0aGlzLnpvbmUse21pY3JvVGFzazpuLm1pY3JvVGFzaz4wLG1hY3JvVGFzazpuLm1hY3JvVGFzaz4wLGV2ZW50VGFzazpuLmV2ZW50VGFzaz4wLGNoYW5nZTplfSl9LGV9KCksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobixyLG8sYSxpLGMpe3RoaXMuX3pvbmU9bnVsbCx0aGlzLnJ1bkNvdW50PTAsdGhpcy5fem9uZURlbGVnYXRlcz1udWxsLHRoaXMuX3N0YXRlPSJub3RTY2hlZHVsZWQiLHRoaXMudHlwZT1uLHRoaXMuc291cmNlPXIsdGhpcy5kYXRhPWEsdGhpcy5zY2hlZHVsZUZuPWksdGhpcy5jYW5jZWxGbj1jLHRoaXMuY2FsbGJhY2s9bzt2YXIgcz10aGlzO3RoaXMuaW52b2tlPW49PT1TJiZhJiZhLnVzZUc/dC5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIHQuaW52b2tlVGFzay5jYWxsKGUscyx0aGlzLGFyZ3VtZW50cyl9fXJldHVybiB0Lmludm9rZVRhc2s9ZnVuY3Rpb24oZSx0LG4pe2V8fChlPXRoaXMpLHorKzt0cnl7cmV0dXJuIGUucnVuQ291bnQrKyxlLnpvbmUucnVuVGFzayhlLHQsbil9ZmluYWxseXsxPT16JiZ5KCksei0tfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJ6b25lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvbmV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJzdGF0ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdGF0ZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5jYW5jZWxTY2hlZHVsZVJlcXVlc3Q9ZnVuY3Rpb24oKXt0aGlzLl90cmFuc2l0aW9uVG8oXyxtKX0sdC5wcm90b3R5cGUuX3RyYW5zaXRpb25Ubz1mdW5jdGlvbihlLHQsbil7aWYodGhpcy5fc3RhdGUhPT10JiZ0aGlzLl9zdGF0ZSE9PW4pdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiICciK3RoaXMuc291cmNlKyInOiBjYW4gbm90IHRyYW5zaXRpb24gdG8gJyIrZSsiJywgZXhwZWN0aW5nIHN0YXRlICciK3QrIiciKyhuPyIgb3IgJyIrbisiJyI6IiIpKyIsIHdhcyAnIit0aGlzLl9zdGF0ZSsiJy4iKTt0aGlzLl9zdGF0ZT1lLGU9PV8mJih0aGlzLl96b25lRGVsZWdhdGVzPW51bGwpfSx0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEmJnZvaWQgMCE9PXRoaXMuZGF0YS5oYW5kbGVJZD90aGlzLmRhdGEuaGFuZGxlSWQudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcyl9LHQucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxzdGF0ZTp0aGlzLnN0YXRlLHNvdXJjZTp0aGlzLnNvdXJjZSx6b25lOnRoaXMuem9uZS5uYW1lLHJ1bkNvdW50OnRoaXMucnVuQ291bnR9fSx0fSgpLGw9SSgic2V0VGltZW91dCIpLGY9SSgiUHJvbWlzZSIpLHA9SSgidGhlbiIpLGg9W10sZD0hMTtmdW5jdGlvbiB2KHQpe2lmKDA9PT16JiYwPT09aC5sZW5ndGgpaWYoYXx8ZVtmXSYmKGE9ZVtmXS5yZXNvbHZlKDApKSxhKXt2YXIgbj1hW3BdO258fChuPWEudGhlbiksbi5jYWxsKGEseSl9ZWxzZSBlW2xdKHksMCk7dCYmaC5wdXNoKHQpfWZ1bmN0aW9uIHkoKXtpZighZCl7Zm9yKGQ9ITA7aC5sZW5ndGg7KXt2YXIgZT1oO2g9W107Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBuPWVbdF07dHJ5e24uem9uZS5ydW5UYXNrKG4sbnVsbCxudWxsKX1jYXRjaChyKXtELm9uVW5oYW5kbGVkRXJyb3Iocil9fX1ELm1pY3JvdGFza0RyYWluRG9uZSgpLGQ9ITF9fXZhciBnPXtuYW1lOiJOTyBaT05FIn0sXz0ibm90U2NoZWR1bGVkIixtPSJzY2hlZHVsaW5nIixiPSJzY2hlZHVsZWQiLGs9InJ1bm5pbmciLFQ9ImNhbmNlbGluZyIsdz0idW5rbm93biIsRT0ibWljcm9UYXNrIixPPSJtYWNyb1Rhc2siLFM9ImV2ZW50VGFzayIsUD17fSxEPXtzeW1ib2w6SSxjdXJyZW50Wm9uZUZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIFp9LG9uVW5oYW5kbGVkRXJyb3I6QyxtaWNyb3Rhc2tEcmFpbkRvbmU6QyxzY2hlZHVsZU1pY3JvVGFzazp2LHNob3dVbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIWlbSSgiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIpXX0scGF0Y2hFdmVudFRhcmdldDpmdW5jdGlvbigpe3JldHVybltdfSxwYXRjaE9uUHJvcGVydGllczpDLHBhdGNoTWV0aG9kOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LGJpbmRBcmd1bWVudHM6ZnVuY3Rpb24oKXtyZXR1cm5bXX0scGF0Y2hUaGVuOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHBhdGNoTWFjcm9UYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIEN9LHNldE5hdGl2ZVByb21pc2U6ZnVuY3Rpb24oZSl7ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUucmVzb2x2ZSYmKGE9ZS5yZXNvbHZlKDApKX0scGF0Y2hFdmVudFByb3RvdHlwZTpmdW5jdGlvbigpe3JldHVybiBDfSxpc0lFT3JFZGdlOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGdldEdsb2JhbE9iamVjdHM6ZnVuY3Rpb24oKXt9LE9iamVjdERlZmluZVByb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIEN9LE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbigpe30sT2JqZWN0Q3JlYXRlOmZ1bmN0aW9uKCl7fSxBcnJheVNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuW119LHBhdGNoQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm4gQ30sd3JhcFdpdGhDdXJyZW50Wm9uZTpmdW5jdGlvbigpe3JldHVybiBDfSxmaWx0ZXJQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7cmV0dXJuW119LGF0dGFjaE9yaWdpblRvUGF0Y2hlZDpmdW5jdGlvbigpe3JldHVybiBDfSxfcmVkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbigpe3JldHVybiBDfSxwYXRjaENhbGxiYWNrczpmdW5jdGlvbigpe3JldHVybiBDfX0sWj17cGFyZW50Om51bGwsem9uZTpuZXcgaShudWxsLG51bGwpfSxqPW51bGwsej0wO2Z1bmN0aW9uIEMoKXt9ZnVuY3Rpb24gSShlKXtyZXR1cm4iX196b25lX3N5bWJvbF9fIitlfXIoIlpvbmUiLCJab25lIiksZS5ab25lPWl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKSxab25lLl9fbG9hZF9wYXRjaCgiWm9uZUF3YXJlUHJvbWlzZSIsKGZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGE9T2JqZWN0LmRlZmluZVByb3BlcnR5LGk9bi5zeW1ib2wsYz1bXSxzPWkoIlByb21pc2UiKSx1PWkoInRoZW4iKSxsPSJfX2NyZWF0aW9uVHJhY2VfXyI7bi5vblVuaGFuZGxlZEVycm9yPWZ1bmN0aW9uKGUpe2lmKG4uc2hvd1VuY2F1Z2h0RXJyb3IoKSl7dmFyIHQ9ZSYmZS5yZWplY3Rpb247dD9jb25zb2xlLmVycm9yKCJVbmhhbmRsZWQgUHJvbWlzZSByZWplY3Rpb246Iix0IGluc3RhbmNlb2YgRXJyb3I/dC5tZXNzYWdlOnQsIjsgWm9uZToiLGUuem9uZS5uYW1lLCI7IFRhc2s6IixlLnRhc2smJmUudGFzay5zb3VyY2UsIjsgVmFsdWU6Iix0LHQgaW5zdGFuY2VvZiBFcnJvcj90LnN0YWNrOnZvaWQgMCk6Y29uc29sZS5lcnJvcihlKX19LG4ubWljcm90YXNrRHJhaW5Eb25lPWZ1bmN0aW9uKCl7Zm9yKDtjLmxlbmd0aDspZm9yKHZhciBlPWZ1bmN0aW9uKCl7dmFyIGU9Yy5zaGlmdCgpO3RyeXtlLnpvbmUucnVuR3VhcmRlZCgoZnVuY3Rpb24oKXt0aHJvdyBlfSkpfWNhdGNoKHQpe3AodCl9fTtjLmxlbmd0aDspZSgpfTt2YXIgZj1pKCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIHAoZSl7bi5vblVuaGFuZGxlZEVycm9yKGUpO3RyeXt2YXIgcj10W2ZdO3ImJiJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLmNhbGwodGhpcyxlKX1jYXRjaChvKXt9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGUmJmUudGhlbn1mdW5jdGlvbiBkKGUpe3JldHVybiBlfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIFIucmVqZWN0KGUpfXZhciB5PWkoInN0YXRlIiksZz1pKCJ2YWx1ZSIpLF89aSgiZmluYWxseSIpLG09aSgicGFyZW50UHJvbWlzZVZhbHVlIiksYj1pKCJwYXJlbnRQcm9taXNlU3RhdGUiKSxrPSJQcm9taXNlLnRoZW4iLFQ9bnVsbCx3PSEwLEU9ITEsTz0wO2Z1bmN0aW9uIFMoZSx0KXtyZXR1cm4gZnVuY3Rpb24obil7dHJ5e2ooZSx0LG4pfWNhdGNoKHIpe2ooZSwhMSxyKX19fXZhciBQPWZ1bmN0aW9uKCl7dmFyIGU9ITE7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2V8fChlPSEwLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpKX19fSxEPSJQcm9taXNlIHJlc29sdmVkIHdpdGggaXRzZWxmIixaPWkoImN1cnJlbnRUYXNrVHJhY2UiKTtmdW5jdGlvbiBqKGUscixvKXt2YXIgaSxzPVAoKTtpZihlPT09byl0aHJvdyBuZXcgVHlwZUVycm9yKEQpO2lmKGVbeV09PT1UKXt2YXIgdT1udWxsO3RyeXsib2JqZWN0IiE9dHlwZW9mIG8mJiJmdW5jdGlvbiIhPXR5cGVvZiBvfHwodT1vJiZvLnRoZW4pfWNhdGNoKHYpe3JldHVybiBzKChmdW5jdGlvbigpe2ooZSwhMSx2KX0pKSgpLGV9aWYociE9PUUmJm8gaW5zdGFuY2VvZiBSJiZvLmhhc093blByb3BlcnR5KHkpJiZvLmhhc093blByb3BlcnR5KGcpJiZvW3ldIT09VClDKG8pLGooZSxvW3ldLG9bZ10pO2Vsc2UgaWYociE9PUUmJiJmdW5jdGlvbiI9PXR5cGVvZiB1KXRyeXt1LmNhbGwobyxzKFMoZSxyKSkscyhTKGUsITEpKSl9Y2F0Y2godil7cygoZnVuY3Rpb24oKXtqKGUsITEsdil9KSkoKX1lbHNle2VbeV09cjt2YXIgZj1lW2ddO2lmKGVbZ109byxlW19dPT09XyYmcj09PXcmJihlW3ldPWVbYl0sZVtnXT1lW21dKSxyPT09RSYmbyBpbnN0YW5jZW9mIEVycm9yKXt2YXIgcD10LmN1cnJlbnRUYXNrJiZ0LmN1cnJlbnRUYXNrLmRhdGEmJnQuY3VycmVudFRhc2suZGF0YVtsXTtwJiZhKG8sWix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6cH0pfWZvcih2YXIgaD0wO2g8Zi5sZW5ndGg7KUkoZSxmW2grK10sZltoKytdLGZbaCsrXSxmW2grK10pO2lmKDA9PWYubGVuZ3RoJiZyPT1FKXtlW3ldPU87dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiKygoaT1vKSYmaS50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc/KGkuY29uc3RydWN0b3ImJmkuY29uc3RydWN0b3IubmFtZXx8IiIpKyI6ICIrSlNPTi5zdHJpbmdpZnkoaSk6aT9pLnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGkpKSsobyYmby5zdGFjaz8iXG4iK28uc3RhY2s6IiIpKX1jYXRjaCh2KXt2YXIgZD12O2QucmVqZWN0aW9uPW8sZC5wcm9taXNlPWUsZC56b25lPXQuY3VycmVudCxkLnRhc2s9dC5jdXJyZW50VGFzayxjLnB1c2goZCksbi5zY2hlZHVsZU1pY3JvVGFzaygpfX19fXJldHVybiBlfXZhciB6PWkoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIik7ZnVuY3Rpb24gQyhlKXtpZihlW3ldPT09Tyl7dHJ5e3ZhciBuPXRbel07biYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4uY2FsbCh0aGlzLHtyZWplY3Rpb246ZVtnXSxwcm9taXNlOmV9KX1jYXRjaChvKXt9ZVt5XT1FO2Zvcih2YXIgcj0wO3I8Yy5sZW5ndGg7cisrKWU9PT1jW3JdLnByb21pc2UmJmMuc3BsaWNlKHIsMSl9fWZ1bmN0aW9uIEkoZSx0LG4scixvKXtDKGUpO3ZhciBhPWVbeV0saT1hPyJmdW5jdGlvbiI9PXR5cGVvZiByP3I6ZDoiZnVuY3Rpb24iPT10eXBlb2Ygbz9vOnY7dC5zY2hlZHVsZU1pY3JvVGFzayhrLChmdW5jdGlvbigpe3RyeXt2YXIgcj1lW2ddLG89biYmXz09PW5bX107byYmKG5bbV09cixuW2JdPWEpO3ZhciBjPXQucnVuKGksdm9pZCAwLG8mJmkhPT12JiZpIT09ZD9bXTpbcl0pO2oobiwhMCxjKX1jYXRjaChzKXtqKG4sITEscyl9fSksbil9dmFyIFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhbiBpbnN0YW5jZW9mIFByb21pc2UuIik7dGhpc1t5XT1ULHRoaXNbZ109W107dHJ5e3QmJnQoUyh0aGlzLHcpLFModGhpcyxFKSl9Y2F0Y2gobil7aih0aGlzLCExLG4pfX1yZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiBab25lQXdhcmVQcm9taXNlKCkgeyBbbmF0aXZlIGNvZGVdIH0ifSxlLnJlc29sdmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGoobmV3IHRoaXMobnVsbCksdyxlKX0sZS5yZWplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGoobmV3IHRoaXMobnVsbCksRSxlKX0sZS5yYWNlPWZ1bmN0aW9uKGUpe3ZhciB0LG4sbyxhLGk9bmV3IHRoaXMoKGZ1bmN0aW9uKGUsdCl7bz1lLGE9dH0pKTtmdW5jdGlvbiBjKGUpe28oZSl9ZnVuY3Rpb24gcyhlKXthKGUpfXRyeXtmb3IodmFyIHU9cihlKSxsPXUubmV4dCgpOyFsLmRvbmU7bD11Lm5leHQoKSl7dmFyIGY9bC52YWx1ZTtoKGYpfHwoZj10aGlzLnJlc29sdmUoZikpLGYudGhlbihjLHMpfX1jYXRjaChwKXt0PXtlcnJvcjpwfX1maW5hbGx5e3RyeXtsJiYhbC5kb25lJiYobj11LnJldHVybikmJm4uY2FsbCh1KX1maW5hbGx5e2lmKHQpdGhyb3cgdC5lcnJvcn19cmV0dXJuIGl9LGUuYWxsPWZ1bmN0aW9uKGUpe3ZhciB0LG4sbyxhLGk9bmV3IHRoaXMoKGZ1bmN0aW9uKGUsdCl7bz1lLGE9dH0pKSxjPTIscz0wLHU9W10sbD1mdW5jdGlvbihlKXtoKGUpfHwoZT1mLnJlc29sdmUoZSkpO3ZhciB0PXM7ZS50aGVuKChmdW5jdGlvbihlKXt1W3RdPWUsMD09LS1jJiZvKHUpfSksYSksYysrLHMrK30sZj10aGlzO3RyeXtmb3IodmFyIHA9cihlKSxkPXAubmV4dCgpOyFkLmRvbmU7ZD1wLm5leHQoKSlsKGQudmFsdWUpfWNhdGNoKHYpe3Q9e2Vycm9yOnZ9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihuPXAucmV0dXJuKSYmbi5jYWxsKHApfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1yZXR1cm4gMD09KGMtPTIpJiZvKHUpLGl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxTeW1ib2wudG9TdHJpbmdUYWcse2dldDpmdW5jdGlvbigpe3JldHVybiJQcm9taXNlIn0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsbil7dmFyIHI9bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCksbz10LmN1cnJlbnQ7cmV0dXJuIHRoaXNbeV09PVQ/dGhpc1tnXS5wdXNoKG8scixlLG4pOkkodGhpcyxvLHIsZSxuKSxyfSxlLnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50aGVuKG51bGwsZSl9LGUucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24oZSl7dmFyIG49bmV3IHRoaXMuY29uc3RydWN0b3IobnVsbCk7bltfXT1fO3ZhciByPXQuY3VycmVudDtyZXR1cm4gdGhpc1t5XT09VD90aGlzW2ddLnB1c2gocixuLGUsZSk6SSh0aGlzLHIsbixlLGUpLG59LGV9KCk7Ui5yZXNvbHZlPVIucmVzb2x2ZSxSLnJlamVjdD1SLnJlamVjdCxSLnJhY2U9Ui5yYWNlLFIuYWxsPVIuYWxsO3ZhciB4PWVbc109ZS5Qcm9taXNlLE09dC5fX3N5bWJvbF9fKCJab25lQXdhcmVQcm9taXNlIiksTD1vKGUsIlByb21pc2UiKTtMJiYhTC5jb25maWd1cmFibGV8fChMJiZkZWxldGUgTC53cml0YWJsZSxMJiZkZWxldGUgTC52YWx1ZSxMfHwoTD17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KSxMLmdldD1mdW5jdGlvbigpe3JldHVybiBlW01dP2VbTV06ZVtzXX0sTC5zZXQ9ZnVuY3Rpb24odCl7dD09PVI/ZVtNXT10OihlW3NdPXQsdC5wcm90b3R5cGVbdV18fEEodCksbi5zZXROYXRpdmVQcm9taXNlKHQpKX0sYShlLCJQcm9taXNlIixMKSksZS5Qcm9taXNlPVI7dmFyIE4sRj1pKCJ0aGVuUGF0Y2hlZCIpO2Z1bmN0aW9uIEEoZSl7dmFyIHQ9ZS5wcm90b3R5cGUsbj1vKHQsInRoZW4iKTtpZighbnx8ITEhPT1uLndyaXRhYmxlJiZuLmNvbmZpZ3VyYWJsZSl7dmFyIHI9dC50aGVuO3RbdV09cixlLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gbmV3IFIoKGZ1bmN0aW9uKGUsdCl7ci5jYWxsKG4sZSx0KX0pKS50aGVuKGUsdCl9LGVbRl09ITB9fWlmKG4ucGF0Y2hUaGVuPUEseCl7QSh4KTt2YXIgSD1lLmZldGNoOyJmdW5jdGlvbiI9PXR5cGVvZiBIJiYoZVtuLnN5bWJvbCgiZmV0Y2giKV09SCxlLmZldGNoPShOPUgsZnVuY3Rpb24oKXt2YXIgZT1OLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihlIGluc3RhbmNlb2YgUilyZXR1cm4gZTt2YXIgdD1lLmNvbnN0cnVjdG9yO3JldHVybiB0W0ZdfHxBKHQpLGV9KSl9cmV0dXJuIFByb21pc2VbdC5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMiKV09YyxSfSkpO3ZhciBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsdD1PYmplY3QuZGVmaW5lUHJvcGVydHksbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysbz1PYmplY3QuY3JlYXRlLGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLGk9ImFkZEV2ZW50TGlzdGVuZXIiLGM9InJlbW92ZUV2ZW50TGlzdGVuZXIiLHM9Wm9uZS5fX3N5bWJvbF9fKGkpLHU9Wm9uZS5fX3N5bWJvbF9fKGMpLGw9InRydWUiLGY9ImZhbHNlIixwPSJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIGgoZSx0KXtyZXR1cm4gWm9uZS5jdXJyZW50LndyYXAoZSx0KX1mdW5jdGlvbiBkKGUsdCxuLHIsbyl7cmV0dXJuIFpvbmUuY3VycmVudC5zY2hlZHVsZU1hY3JvVGFzayhlLHQsbixyLG8pfXZhciB2PVpvbmUuX19zeW1ib2xfXyx5PSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LGc9eT93aW5kb3c6dm9pZCAwLF89eSYmZ3x8Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmfHxnbG9iYWwsbT0icmVtb3ZlQXR0cmlidXRlIixiPVtudWxsXTtmdW5jdGlvbiBrKGUsdCl7Zm9yKHZhciBuPWUubGVuZ3RoLTE7bj49MDtuLS0pImZ1bmN0aW9uIj09dHlwZW9mIGVbbl0mJihlW25dPWgoZVtuXSx0KyJfIituKSk7cmV0dXJuIGV9ZnVuY3Rpb24gVChlKXtyZXR1cm4hZXx8ITEhPT1lLndyaXRhYmxlJiYhKCJmdW5jdGlvbiI9PXR5cGVvZiBlLmdldCYmdm9pZCAwPT09ZS5zZXQpfXZhciB3PSJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSxFPSEoIm53ImluIF8pJiZ2b2lkIDAhPT1fLnByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoXy5wcm9jZXNzKSxPPSFFJiYhdyYmISgheXx8IWcuSFRNTEVsZW1lbnQpLFM9dm9pZCAwIT09Xy5wcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKF8ucHJvY2VzcykmJiF3JiYhKCF5fHwhZy5IVE1MRWxlbWVudCksUD17fSxEPWZ1bmN0aW9uKGUpe2lmKGU9ZXx8Xy5ldmVudCl7dmFyIHQ9UFtlLnR5cGVdO3R8fCh0PVBbZS50eXBlXT12KCJPTl9QUk9QRVJUWSIrZS50eXBlKSk7dmFyIG4scj10aGlzfHxlLnRhcmdldHx8XyxvPXJbdF07aWYoTyYmcj09PWcmJiJlcnJvciI9PT1lLnR5cGUpe3ZhciBhPWU7ITA9PT0obj1vJiZvLmNhbGwodGhpcyxhLm1lc3NhZ2UsYS5maWxlbmFtZSxhLmxpbmVubyxhLmNvbG5vLGEuZXJyb3IpKSYmZS5wcmV2ZW50RGVmYXVsdCgpfWVsc2UgbnVsbD09KG49byYmby5hcHBseSh0aGlzLGFyZ3VtZW50cykpfHxufHxlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIG59fTtmdW5jdGlvbiBaKG4scixvKXt2YXIgYT1lKG4scik7aWYoIWEmJm8mJmUobyxyKSYmKGE9e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksYSYmYS5jb25maWd1cmFibGUpe3ZhciBpPXYoIm9uIityKyJwYXRjaGVkIik7aWYoIW4uaGFzT3duUHJvcGVydHkoaSl8fCFuW2ldKXtkZWxldGUgYS53cml0YWJsZSxkZWxldGUgYS52YWx1ZTt2YXIgYz1hLmdldCxzPWEuc2V0LHU9ci5zdWJzdHIoMiksbD1QW3VdO2x8fChsPVBbdV09digiT05fUFJPUEVSVFkiK3UpKSxhLnNldD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3R8fG4hPT1ffHwodD1fKSx0JiYodFtsXSYmdC5yZW1vdmVFdmVudExpc3RlbmVyKHUsRCkscyYmcy5hcHBseSh0LGIpLCJmdW5jdGlvbiI9PXR5cGVvZiBlPyh0W2xdPWUsdC5hZGRFdmVudExpc3RlbmVyKHUsRCwhMSkpOnRbbF09bnVsbCl9LGEuZ2V0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZihlfHxuIT09X3x8KGU9XyksIWUpcmV0dXJuIG51bGw7dmFyIHQ9ZVtsXTtpZih0KXJldHVybiB0O2lmKGMpe3ZhciBvPWMmJmMuY2FsbCh0aGlzKTtpZihvKXJldHVybiBhLnNldC5jYWxsKHRoaXMsbyksImZ1bmN0aW9uIj09dHlwZW9mIGVbbV0mJmUucmVtb3ZlQXR0cmlidXRlKHIpLG99cmV0dXJuIG51bGx9LHQobixyLGEpLG5baV09ITB9fX1mdW5jdGlvbiBqKGUsdCxuKXtpZih0KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKVooZSwib24iK3Rbcl0sbik7ZWxzZXt2YXIgbz1bXTtmb3IodmFyIGEgaW4gZSkib24iPT1hLnN1YnN0cigwLDIpJiZvLnB1c2goYSk7Zm9yKHZhciBpPTA7aTxvLmxlbmd0aDtpKyspWihlLG9baV0sbil9fXZhciB6PXYoIm9yaWdpbmFsSW5zdGFuY2UiKTtmdW5jdGlvbiBDKGUpe3ZhciBuPV9bZV07aWYobil7X1t2KGUpXT1uLF9bZV09ZnVuY3Rpb24oKXt2YXIgdD1rKGFyZ3VtZW50cyxlKTtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMDp0aGlzW3pdPW5ldyBuO2JyZWFrO2Nhc2UgMTp0aGlzW3pdPW5ldyBuKHRbMF0pO2JyZWFrO2Nhc2UgMjp0aGlzW3pdPW5ldyBuKHRbMF0sdFsxXSk7YnJlYWs7Y2FzZSAzOnRoaXNbel09bmV3IG4odFswXSx0WzFdLHRbMl0pO2JyZWFrO2Nhc2UgNDp0aGlzW3pdPW5ldyBuKHRbMF0sdFsxXSx0WzJdLHRbM10pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJBcmcgbGlzdCB0b28gbG9uZy4iKX19LE0oX1tlXSxuKTt2YXIgcixvPW5ldyBuKChmdW5jdGlvbigpe30pKTtmb3IociBpbiBvKSJYTUxIdHRwUmVxdWVzdCI9PT1lJiYicmVzcG9uc2VCbG9iIj09PXJ8fGZ1bmN0aW9uKG4peyJmdW5jdGlvbiI9PXR5cGVvZiBvW25dP19bZV0ucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbel1bbl0uYXBwbHkodGhpc1t6XSxhcmd1bWVudHMpfTp0KF9bZV0ucHJvdG90eXBlLG4se3NldDpmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT10eXBlb2YgdD8odGhpc1t6XVtuXT1oKHQsZSsiLiIrbiksTSh0aGlzW3pdW25dLHQpKTp0aGlzW3pdW25dPXR9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW3pdW25dfX0pfShyKTtmb3IociBpbiBuKSJwcm90b3R5cGUiIT09ciYmbi5oYXNPd25Qcm9wZXJ0eShyKSYmKF9bZV1bcl09bltyXSl9fXZhciBJPSExO2Z1bmN0aW9uIFIodCxyLG8pe2Zvcih2YXIgYT10O2EmJiFhLmhhc093blByb3BlcnR5KHIpOylhPW4oYSk7IWEmJnRbcl0mJihhPXQpO3ZhciBpLGMscz12KHIpLHU9bnVsbDtpZihhJiYhKHU9YVtzXSkmJih1PWFbc109YVtyXSxUKGEmJmUoYSxyKSkpKXt2YXIgbD1vKHUscyxyKTthW3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGwodGhpcyxhcmd1bWVudHMpfSxNKGFbcl0sdSksSSYmKGk9dSxjPWFbcl0sImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGUse2dldDpmdW5jdGlvbigpe3JldHVybiBpW2VdfSxzZXQ6ZnVuY3Rpb24obil7KCF0fHx0LndyaXRhYmxlJiYiZnVuY3Rpb24iPT10eXBlb2YgdC5zZXQpJiYoaVtlXT1uKX0sZW51bWVyYWJsZTohdHx8dC5lbnVtZXJhYmxlLGNvbmZpZ3VyYWJsZTohdHx8dC5jb25maWd1cmFibGV9KX0pKSl9cmV0dXJuIHV9ZnVuY3Rpb24geChlLHQsbil7dmFyIHI9bnVsbDtmdW5jdGlvbiBvKGUpe3ZhciB0PWUuZGF0YTtyZXR1cm4gdC5hcmdzW3QuY2JJZHhdPWZ1bmN0aW9uKCl7ZS5pbnZva2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxyLmFwcGx5KHQudGFyZ2V0LHQuYXJncyksZX1yPVIoZSx0LChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgYT1uKHQscik7cmV0dXJuIGEuY2JJZHg+PTAmJiJmdW5jdGlvbiI9PXR5cGVvZiByW2EuY2JJZHhdP2QoYS5uYW1lLHJbYS5jYklkeF0sYSxvKTplLmFwcGx5KHQscil9fSkpfWZ1bmN0aW9uIE0oZSx0KXtlW3YoIk9yaWdpbmFsRGVsZWdhdGUiKV09dH12YXIgTD0hMSxOPSExO2Z1bmN0aW9uIEYoKXt0cnl7dmFyIGU9Zy5uYXZpZ2F0b3IudXNlckFnZW50O2lmKC0xIT09ZS5pbmRleE9mKCJNU0lFICIpfHwtMSE9PWUuaW5kZXhPZigiVHJpZGVudC8iKSlyZXR1cm4hMH1jYXRjaCh0KXt9cmV0dXJuITF9ZnVuY3Rpb24gQSgpe2lmKEwpcmV0dXJuIE47TD0hMDt0cnl7dmFyIGU9Zy5uYXZpZ2F0b3IudXNlckFnZW50Oy0xPT09ZS5pbmRleE9mKCJNU0lFICIpJiYtMT09PWUuaW5kZXhPZigiVHJpZGVudC8iKSYmLTE9PT1lLmluZGV4T2YoIkVkZ2UvIil8fChOPSEwKX1jYXRjaCh0KXt9cmV0dXJuIE59Wm9uZS5fX2xvYWRfcGF0Y2goInRvU3RyaW5nIiwoZnVuY3Rpb24oZSl7dmFyIHQ9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLG49digiT3JpZ2luYWxEZWxlZ2F0ZSIpLHI9digiUHJvbWlzZSIpLG89digiRXJyb3IiKSxhPWZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMpe3ZhciBhPXRoaXNbbl07aWYoYSlyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYT90LmNhbGwoYSk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpO2lmKHRoaXM9PT1Qcm9taXNlKXt2YXIgaT1lW3JdO2lmKGkpcmV0dXJuIHQuY2FsbChpKX1pZih0aGlzPT09RXJyb3Ipe3ZhciBjPWVbb107aWYoYylyZXR1cm4gdC5jYWxsKGMpfX1yZXR1cm4gdC5jYWxsKHRoaXMpfTthW25dPXQsRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPWE7dmFyIGk9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBQcm9taXNlPyJbb2JqZWN0IFByb21pc2VdIjppLmNhbGwodGhpcyl9fSkpO3ZhciBIPSExO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXRyeXt2YXIgRz1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtIPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixHLEcpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixHLEcpfWNhdGNoKE9lKXtIPSExfXZhciBCPXt1c2VHOiEwfSxXPXt9LHE9e30sVT0vXl9fem9uZV9zeW1ib2xfXyhcdyspKHRydWV8ZmFsc2UpJC8sVj0iX196b25lX3N5bWJvbF9fcHJvcGFnYXRpb25TdG9wcGVkIjtmdW5jdGlvbiBYKGUsdCxyKXt2YXIgbz1yJiZyLmFkZHx8aSxhPXImJnIucm18fGMscz1yJiZyLmxpc3RlbmVyc3x8ImV2ZW50TGlzdGVuZXJzIix1PXImJnIucm1BbGx8fCJyZW1vdmVBbGxMaXN0ZW5lcnMiLGg9dihvKSxkPSIuIitvKyI6Iix5PSJwcmVwZW5kTGlzdGVuZXIiLGc9Ii4iK3krIjoiLF89ZnVuY3Rpb24oZSx0LG4pe2lmKCFlLmlzUmVtb3ZlZCl7dmFyIHI9ZS5jYWxsYmFjazsib2JqZWN0Ij09dHlwZW9mIHImJnIuaGFuZGxlRXZlbnQmJihlLmNhbGxiYWNrPWZ1bmN0aW9uKGUpe3JldHVybiByLmhhbmRsZUV2ZW50KGUpfSxlLm9yaWdpbmFsRGVsZWdhdGU9ciksZS5pbnZva2UoZSx0LFtuXSk7dmFyIG89ZS5vcHRpb25zO28mJiJvYmplY3QiPT10eXBlb2YgbyYmby5vbmNlJiZ0W2FdLmNhbGwodCxuLnR5cGUsZS5vcmlnaW5hbERlbGVnYXRlP2Uub3JpZ2luYWxEZWxlZ2F0ZTplLmNhbGxiYWNrLG8pfX0sbT1mdW5jdGlvbih0KXtpZih0PXR8fGUuZXZlbnQpe3ZhciBuPXRoaXN8fHQudGFyZ2V0fHxlLHI9bltXW3QudHlwZV1bZl1dO2lmKHIpaWYoMT09PXIubGVuZ3RoKV8oclswXSxuLHQpO2Vsc2UgZm9yKHZhciBvPXIuc2xpY2UoKSxhPTA7YTxvLmxlbmd0aCYmKCF0fHwhMCE9PXRbVl0pO2ErKylfKG9bYV0sbix0KX19LGI9ZnVuY3Rpb24odCl7aWYodD10fHxlLmV2ZW50KXt2YXIgbj10aGlzfHx0LnRhcmdldHx8ZSxyPW5bV1t0LnR5cGVdW2xdXTtpZihyKWlmKDE9PT1yLmxlbmd0aClfKHJbMF0sbix0KTtlbHNlIGZvcih2YXIgbz1yLnNsaWNlKCksYT0wO2E8by5sZW5ndGgmJighdHx8ITAhPT10W1ZdKTthKyspXyhvW2FdLG4sdCl9fTtmdW5jdGlvbiBrKHQscil7aWYoIXQpcmV0dXJuITE7dmFyIGk9ITA7ciYmdm9pZCAwIT09ci51c2VHJiYoaT1yLnVzZUcpO3ZhciBjPXImJnIudmgsXz0hMDtyJiZ2b2lkIDAhPT1yLmNoa0R1cCYmKF89ci5jaGtEdXApO3ZhciBrPSExO3ImJnZvaWQgMCE9PXIucnQmJihrPXIucnQpO2Zvcih2YXIgVD10O1QmJiFULmhhc093blByb3BlcnR5KG8pOylUPW4oVCk7aWYoIVQmJnRbb10mJihUPXQpLCFUKXJldHVybiExO2lmKFRbaF0pcmV0dXJuITE7dmFyIHcsTz1yJiZyLmV2ZW50TmFtZVRvU3RyaW5nLFM9e30sUD1UW2hdPVRbb10sRD1UW3YoYSldPVRbYV0sWj1UW3YocyldPVRbc10saj1UW3YodSldPVRbdV07ZnVuY3Rpb24geihlKXtIfHwiYm9vbGVhbiI9PXR5cGVvZiBTLm9wdGlvbnN8fG51bGw9PVMub3B0aW9uc3x8KGUub3B0aW9ucz0hIVMub3B0aW9ucy5jYXB0dXJlLFMub3B0aW9ucz1lLm9wdGlvbnMpfXImJnIucA=="
},
{
"key": "qwe?runtime.js?2?1",
"type": "binary",
"value": "base64:cmVwZW5kJiYodz1UW3Yoci5wcmVwZW5kKV09VFtyLnByZXBlbmRdKTt2YXIgQz1pP2Z1bmN0aW9uKGUpe2lmKCFTLmlzRXhpc3RpbmcpcmV0dXJuIHooZSksUC5jYWxsKFMudGFyZ2V0LFMuZXZlbnROYW1lLFMuY2FwdHVyZT9iOm0sUy5vcHRpb25zKX06ZnVuY3Rpb24oZSl7cmV0dXJuIHooZSksUC5jYWxsKFMudGFyZ2V0LFMuZXZlbnROYW1lLGUuaW52b2tlLFMub3B0aW9ucyl9LEk9aT9mdW5jdGlvbihlKXtpZighZS5pc1JlbW92ZWQpe3ZhciB0PVdbZS5ldmVudE5hbWVdLG49dm9pZCAwO3QmJihuPXRbZS5jYXB0dXJlP2w6Zl0pO3ZhciByPW4mJmUudGFyZ2V0W25dO2lmKHIpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspaWYocltvXT09PWUpe3Iuc3BsaWNlKG8sMSksZS5pc1JlbW92ZWQ9ITAsMD09PXIubGVuZ3RoJiYoZS5hbGxSZW1vdmVkPSEwLGUudGFyZ2V0W25dPW51bGwpO2JyZWFrfX1pZihlLmFsbFJlbW92ZWQpcmV0dXJuIEQuY2FsbChlLnRhcmdldCxlLmV2ZW50TmFtZSxlLmNhcHR1cmU/YjptLGUub3B0aW9ucyl9OmZ1bmN0aW9uKGUpe3JldHVybiBELmNhbGwoZS50YXJnZXQsZS5ldmVudE5hbWUsZS5pbnZva2UsZS5vcHRpb25zKX0sUj1yJiZyLmRpZmY/ci5kaWZmOmZ1bmN0aW9uKGUsdCl7dmFyIG49dHlwZW9mIHQ7cmV0dXJuImZ1bmN0aW9uIj09PW4mJmUuY2FsbGJhY2s9PT10fHwib2JqZWN0Ij09PW4mJmUub3JpZ2luYWxEZWxlZ2F0ZT09PXR9LHg9Wm9uZVtab25lLl9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKV0sTD1mdW5jdGlvbih0LG4scixvLGEscyl7cmV0dXJuIHZvaWQgMD09PWEmJihhPSExKSx2b2lkIDA9PT1zJiYocz0hMSksZnVuY3Rpb24oKXt2YXIgdT10aGlzfHxlLGg9YXJndW1lbnRzWzBdLGQ9YXJndW1lbnRzWzFdO2lmKCFkKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihFJiYidW5jYXVnaHRFeGNlcHRpb24iPT09aClyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIHY9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGQpe2lmKCFkLmhhbmRsZUV2ZW50KXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2PSEwfWlmKCFjfHxjKHQsZCx1LGFyZ3VtZW50cykpe3ZhciB5LGc9YXJndW1lbnRzWzJdO2lmKHgpZm9yKHZhciBtPTA7bTx4Lmxlbmd0aDttKyspaWYoaD09PXhbbV0pcmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBiPSExO3ZvaWQgMD09PWc/eT0hMTohMD09PWc/eT0hMDohMT09PWc/eT0hMTooeT0hIWcmJiEhZy5jYXB0dXJlLGI9ISFnJiYhIWcub25jZSk7dmFyIGssVD1ab25lLmN1cnJlbnQsdz1XW2hdO2lmKHcpaz13W3k/bDpmXTtlbHNle3ZhciBQPShPP08oaCk6aCkrZixEPShPP08oaCk6aCkrbCxaPXArUCxqPXArRDtXW2hdPXt9LFdbaF1bZl09WixXW2hdW2xdPWosaz15P2o6Wn12YXIgeixDPXVba10sST0hMTtpZihDKXtpZihJPSEwLF8pZm9yKG09MDttPEMubGVuZ3RoO20rKylpZihSKENbbV0sZCkpcmV0dXJufWVsc2UgQz11W2tdPVtdO3ZhciBNPXUuY29uc3RydWN0b3IubmFtZSxMPXFbTV07TCYmKHo9TFtoXSksenx8KHo9TStuKyhPP08oaCk6aCkpLFMub3B0aW9ucz1nLGImJihTLm9wdGlvbnMub25jZT0hMSksUy50YXJnZXQ9dSxTLmNhcHR1cmU9eSxTLmV2ZW50TmFtZT1oLFMuaXNFeGlzdGluZz1JO3ZhciBOPWk/Qjp2b2lkIDA7TiYmKE4udGFza0RhdGE9Uyk7dmFyIEY9VC5zY2hlZHVsZUV2ZW50VGFzayh6LGQsTixyLG8pO3JldHVybiBTLnRhcmdldD1udWxsLE4mJihOLnRhc2tEYXRhPW51bGwpLGImJihnLm9uY2U9ITApLChIfHwiYm9vbGVhbiIhPXR5cGVvZiBGLm9wdGlvbnMpJiYoRi5vcHRpb25zPWcpLEYudGFyZ2V0PXUsRi5jYXB0dXJlPXksRi5ldmVudE5hbWU9aCx2JiYoRi5vcmlnaW5hbERlbGVnYXRlPWQpLHM/Qy51bnNoaWZ0KEYpOkMucHVzaChGKSxhP3U6dm9pZCAwfX19O3JldHVybiBUW29dPUwoUCxkLEMsSSxrKSx3JiYoVFt5XT1MKHcsZywoZnVuY3Rpb24oZSl7cmV0dXJuIHcuY2FsbChTLnRhcmdldCxTLmV2ZW50TmFtZSxlLmludm9rZSxTLm9wdGlvbnMpfSksSSxrLCEwKSksVFthXT1mdW5jdGlvbigpe3ZhciB0LG49dGhpc3x8ZSxyPWFyZ3VtZW50c1swXSxvPWFyZ3VtZW50c1syXTt0PXZvaWQgMCE9PW8mJighMD09PW98fCExIT09byYmISFvJiYhIW8uY2FwdHVyZSk7dmFyIGE9YXJndW1lbnRzWzFdO2lmKCFhKXJldHVybiBELmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZighY3x8YyhELGEsbixhcmd1bWVudHMpKXt2YXIgaSxzPVdbcl07cyYmKGk9c1t0P2w6Zl0pO3ZhciB1PWkmJm5baV07aWYodSlmb3IodmFyIHA9MDtwPHUubGVuZ3RoO3ArKyl7dmFyIGg9dVtwXTtpZihSKGgsYSkpcmV0dXJuIHUuc3BsaWNlKHAsMSksaC5pc1JlbW92ZWQ9ITAsMD09PXUubGVuZ3RoJiYoaC5hbGxSZW1vdmVkPSEwLG5baV09bnVsbCksaC56b25lLmNhbmNlbFRhc2soaCksaz9uOnZvaWQgMH1yZXR1cm4gRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxUW3NdPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXN8fGUsbj1hcmd1bWVudHNbMF0scj1bXSxvPVkodCxPP08obik6biksYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgaT1vW2FdLGM9aS5vcmlnaW5hbERlbGVnYXRlP2kub3JpZ2luYWxEZWxlZ2F0ZTppLmNhbGxiYWNrO3IucHVzaChjKX1yZXR1cm4gcn0sVFt1XT1mdW5jdGlvbigpe3ZhciB0PXRoaXN8fGUsbj1hcmd1bWVudHNbMF07aWYobil7dmFyIHI9V1tuXTtpZihyKXt2YXIgbz1yW2ZdLGk9cltsXSxjPXRbb10scz10W2ldO2lmKGMpe3ZhciBwPWMuc2xpY2UoKTtmb3Iodj0wO3Y8cC5sZW5ndGg7disrKXRoaXNbYV0uY2FsbCh0aGlzLG4sKGg9cFt2XSkub3JpZ2luYWxEZWxlZ2F0ZT9oLm9yaWdpbmFsRGVsZWdhdGU6aC5jYWxsYmFjayxoLm9wdGlvbnMpfWlmKHMpZm9yKHA9cy5zbGljZSgpLHY9MDt2PHAubGVuZ3RoO3YrKyl7dmFyIGg7dGhpc1thXS5jYWxsKHRoaXMsbiwoaD1wW3ZdKS5vcmlnaW5hbERlbGVnYXRlP2gub3JpZ2luYWxEZWxlZ2F0ZTpoLmNhbGxiYWNrLGgub3B0aW9ucyl9fX1lbHNle2Zvcih2YXIgZD1PYmplY3Qua2V5cyh0KSx2PTA7djxkLmxlbmd0aDt2Kyspe3ZhciB5PWRbdl0sZz1VLmV4ZWMoeSksXz1nJiZnWzFdO18mJiJyZW1vdmVMaXN0ZW5lciIhPT1fJiZ0aGlzW3VdLmNhbGwodGhpcyxfKX10aGlzW3VdLmNhbGwodGhpcywicmVtb3ZlTGlzdGVuZXIiKX1pZihrKXJldHVybiB0aGlzfSxNKFRbb10sUCksTShUW2FdLEQpLGomJk0oVFt1XSxqKSxaJiZNKFRbc10sWiksITB9Zm9yKHZhciBUPVtdLHc9MDt3PHQubGVuZ3RoO3crKylUW3ddPWsodFt3XSxyKTtyZXR1cm4gVH1mdW5jdGlvbiBZKGUsdCl7dmFyIG49W107Zm9yKHZhciByIGluIGUpe3ZhciBvPVUuZXhlYyhyKSxhPW8mJm9bMV07aWYoYSYmKCF0fHxhPT09dCkpe3ZhciBpPWVbcl07aWYoaSlmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKyluLnB1c2goaVtjXSl9fXJldHVybiBufWZ1bmN0aW9uIEooZSx0KXt2YXIgbj1lLkV2ZW50O24mJm4ucHJvdG90eXBlJiZ0LnBhdGNoTWV0aG9kKG4ucHJvdG90eXBlLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt0W1ZdPSEwLGUmJmUuYXBwbHkodCxuKX19KSl9ZnVuY3Rpb24gSyhlLHQsbixyLG8pe3ZhciBhPVpvbmUuX19zeW1ib2xfXyhyKTtpZighdFthXSl7dmFyIGk9dFthXT10W3JdO3Rbcl09ZnVuY3Rpb24oYSxjLHMpe3JldHVybiBjJiZjLnByb3RvdHlwZSYmby5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbz1uKyIuIityKyI6OiIrdCxhPWMucHJvdG90eXBlO2lmKGEuaGFzT3duUHJvcGVydHkodCkpe3ZhciBpPWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsdCk7aSYmaS52YWx1ZT8oaS52YWx1ZT1lLndyYXBXaXRoQ3VycmVudFpvbmUoaS52YWx1ZSxvKSxlLl9yZWRlZmluZVByb3BlcnR5KGMucHJvdG90eXBlLHQsaSkpOmFbdF0mJihhW3RdPWUud3JhcFdpdGhDdXJyZW50Wm9uZShhW3RdLG8pKX1lbHNlIGFbdF0mJihhW3RdPWUud3JhcFdpdGhDdXJyZW50Wm9uZShhW3RdLG8pKX0pKSxpLmNhbGwodCxhLGMscyl9LGUuYXR0YWNoT3JpZ2luVG9QYXRjaGVkKHRbcl0saSl9fXZhciBRPVpvbmUuX19zeW1ib2xfXywkPU9iamVjdFtRKCJkZWZpbmVQcm9wZXJ0eSIpXT1PYmplY3QuZGVmaW5lUHJvcGVydHksZWU9T2JqZWN0W1EoImdldE93blByb3BlcnR5RGVzY3JpcHRvciIpXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHRlPU9iamVjdC5jcmVhdGUsbmU9USgidW5jb25maWd1cmFibGVzIik7ZnVuY3Rpb24gcmUoZSx0LG4pe3ZhciByPW4uY29uZmlndXJhYmxlO3JldHVybiBpZShlLHQsbj1hZShlLHQsbikscil9ZnVuY3Rpb24gb2UoZSx0KXtyZXR1cm4gZSYmZVtuZV0mJmVbbmVdW3RdfWZ1bmN0aW9uIGFlKGUsdCxuKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKG4pfHwobi5jb25maWd1cmFibGU9ITApLG4uY29uZmlndXJhYmxlfHwoZVtuZV18fE9iamVjdC5pc0Zyb3plbihlKXx8JChlLG5lLHt3cml0YWJsZTohMCx2YWx1ZTp7fX0pLGVbbmVdJiYoZVtuZV1bdF09ITApKSxufWZ1bmN0aW9uIGllKGUsdCxuLHIpe3RyeXtyZXR1cm4gJChlLHQsbil9Y2F0Y2goYSl7aWYoIW4uY29uZmlndXJhYmxlKXRocm93IGE7dm9pZCAwPT09cj9kZWxldGUgbi5jb25maWd1cmFibGU6bi5jb25maWd1cmFibGU9cjt0cnl7cmV0dXJuICQoZSx0LG4pfWNhdGNoKGEpe3ZhciBvPW51bGw7dHJ5e289SlNPTi5zdHJpbmdpZnkobil9Y2F0Y2goYSl7bz1uLnRvU3RyaW5nKCl9Y29uc29sZS5sb2coIkF0dGVtcHRpbmcgdG8gY29uZmlndXJlICciK3QrIicgd2l0aCBkZXNjcmlwdG9yICciK28rIicgb24gb2JqZWN0ICciK2UrIicgYW5kIGdvdCBlcnJvciwgZ2l2aW5nIHVwOiAiK2EpfX19dmFyIGNlPVsiYWJzb2x1dGVkZXZpY2VvcmllbnRhdGlvbiIsImFmdGVyaW5wdXQiLCJhZnRlcnByaW50IiwiYXBwaW5zdGFsbGVkIiwiYmVmb3JlaW5zdGFsbHByb21wdCIsImJlZm9yZXByaW50IiwiYmVmb3JldW5sb2FkIiwiZGV2aWNlbGlnaHQiLCJkZXZpY2Vtb3Rpb24iLCJkZXZpY2VvcmllbnRhdGlvbiIsImRldmljZW9yaWVudGF0aW9uYWJzb2x1dGUiLCJkZXZpY2Vwcm94aW1pdHkiLCJoYXNoY2hhbmdlIiwibGFuZ3VhZ2VjaGFuZ2UiLCJtZXNzYWdlIiwibW96YmVmb3JlcGFpbnQiLCJvZmZsaW5lIiwib25saW5lIiwicGFpbnQiLCJwYWdlc2hvdyIsInBhZ2VoaWRlIiwicG9wc3RhdGUiLCJyZWplY3Rpb25oYW5kbGVkIiwic3RvcmFnZSIsInVuaGFuZGxlZHJlamVjdGlvbiIsInVubG9hZCIsInVzZXJwcm94aW1pdHkiLCJ2cmRpc3BseWNvbm5lY3RlZCIsInZyZGlzcGxheWRpc2Nvbm5lY3RlZCIsInZyZGlzcGxheXByZXNlbnRjaGFuZ2UiXSxzZT1bImVuY3J5cHRlZCIsIndhaXRpbmdmb3JrZXkiLCJtc25lZWRrZXkiLCJtb3ppbnRlcnJ1cHRiZWdpbiIsIm1vemludGVycnVwdGVuZCJdLHVlPVsibG9hZCJdLGxlPVsiYmx1ciIsImVycm9yIiwiZm9jdXMiLCJsb2FkIiwicmVzaXplIiwic2Nyb2xsIiwibWVzc2FnZWVycm9yIl0sZmU9WyJib3VuY2UiLCJmaW5pc2giLCJzdGFydCJdLHBlPVsibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsInByb2dyZXNzIiwidGltZW91dCIsImxvYWRlbmQiLCJyZWFkeXN0YXRlY2hhbmdlIl0saGU9WyJ1cGdyYWRlbmVlZGVkIiwiY29tcGxldGUiLCJhYm9ydCIsInN1Y2Nlc3MiLCJlcnJvciIsImJsb2NrZWQiLCJ2ZXJzaW9uY2hhbmdlIiwiY2xvc2UiXSxkZT1bImNsb3NlIiwiZXJyb3IiLCJvcGVuIiwibWVzc2FnZSJdLHZlPVsiZXJyb3IiLCJtZXNzYWdlIl0seWU9WyJhYm9ydCIsImFuaW1hdGlvbmNhbmNlbCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImF1eGNsaWNrIiwiYmVmb3JlaW5wdXQiLCJibHVyIiwiY2FuY2VsIiwiY2FucGxheSIsImNhbnBsYXl0aHJvdWdoIiwiY2hhbmdlIiwiY29tcG9zaXRpb25zdGFydCIsImNvbXBvc2l0aW9udXBkYXRlIiwiY29tcG9zaXRpb25lbmQiLCJjdWVjaGFuZ2UiLCJjbGljayIsImNsb3NlIiwiY29udGV4dG1lbnUiLCJjdXJlY2hhbmdlIiwiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdlbnRlciIsImRyYWdleGl0IiwiZHJhZ2xlYXZlIiwiZHJhZ292ZXIiLCJkcm9wIiwiZHVyYXRpb25jaGFuZ2UiLCJlbXB0aWVkIiwiZW5kZWQiLCJlcnJvciIsImZvY3VzIiwiZm9jdXNpbiIsImZvY3Vzb3V0IiwiZ290cG9pbnRlcmNhcHR1cmUiLCJpbnB1dCIsImludmFsaWQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImxvYWQiLCJsb2Fkc3RhcnQiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtb3VzZWRvd24iLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIsIm1vdXNld2hlZWwiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBhdXNlIiwicGxheSIsInBsYXlpbmciLCJwb2ludGVyY2FuY2VsIiwicG9pbnRlcmRvd24iLCJwb2ludGVyZW50ZXIiLCJwb2ludGVybGVhdmUiLCJwb2ludGVybG9ja2NoYW5nZSIsIm1venBvaW50ZXJsb2NrY2hhbmdlIiwid2Via2l0cG9pbnRlcmxvY2tlcmNoYW5nZSIsInBvaW50ZXJsb2NrZXJyb3IiLCJtb3pwb2ludGVybG9ja2Vycm9yIiwid2Via2l0cG9pbnRlcmxvY2tlcnJvciIsInBvaW50ZXJtb3ZlIiwicG9pbnRvdXQiLCJwb2ludGVyb3ZlciIsInBvaW50ZXJ1cCIsInByb2dyZXNzIiwicmF0ZWNoYW5nZSIsInJlc2V0IiwicmVzaXplIiwic2Nyb2xsIiwic2Vla2VkIiwic2Vla2luZyIsInNlbGVjdCIsInNlbGVjdGlvbmNoYW5nZSIsInNlbGVjdHN0YXJ0Iiwic2hvdyIsInNvcnQiLCJzdGFsbGVkIiwic3VibWl0Iiwic3VzcGVuZCIsInRpbWV1cGRhdGUiLCJ2b2x1bWVjaGFuZ2UiLCJ0b3VjaGNhbmNlbCIsInRvdWNobW92ZSIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9uZW5kIiwid2FpdGluZyIsIndoZWVsIl0uY29uY2F0KFsid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciJdLFsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlZXJyb3IiXSxbInRvZ2dsZSJdLFsiYWZ0ZXJzY3JpcHRleGVjdXRlIiwiYmVmb3Jlc2NyaXB0ZXhlY3V0ZSIsIkRPTUNvbnRlbnRMb2FkZWQiLCJmcmVlemUiLCJmdWxsc2NyZWVuY2hhbmdlIiwibW96ZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtc2Z1bGxzY3JlZW5jaGFuZ2UiLCJmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtc2Z1bGxzY3JlZW5lcnJvciIsInJlYWR5c3RhdGVjaGFuZ2UiLCJ2aXNpYmlsaXR5Y2hhbmdlIiwicmVzdW1lIl0sY2UsWyJiZWZvcmVjb3B5IiwiYmVmb3JlY3V0IiwiYmVmb3JlcGFzdGUiLCJjb3B5IiwiY3V0IiwicGFzdGUiLCJkcmFnc3RhcnQiLCJsb2FkZW5kIiwiYW5pbWF0aW9uc3RhcnQiLCJzZWFyY2giLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0Iiwid2Via2l0YW5pbWF0aW9uZW5kIiwid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwid2Via2l0YW5pbWF0aW9uc3RhcnQiLCJ3ZWJraXR0cmFuc2l0aW9uZW5kIl0sWyJhY3RpdmF0ZSIsImFmdGVydXBkYXRlIiwiYXJpYXJlcXVlc3QiLCJiZWZvcmVhY3RpdmF0ZSIsImJlZm9yZWRlYWN0aXZhdGUiLCJiZWZvcmVlZGl0Zm9jdXMiLCJiZWZvcmV1cGRhdGUiLCJjZWxsY2hhbmdlIiwiY29udHJvbHNlbGVjdCIsImRhdGFhdmFpbGFibGUiLCJkYXRhc2V0Y2hhbmdlZCIsImRhdGFzZXRjb21wbGV0ZSIsImVycm9ydXBkYXRlIiwiZmlsdGVyY2hhbmdlIiwibGF5b3V0Y29tcGxldGUiLCJsb3NlY2FwdHVyZSIsIm1vdmUiLCJtb3ZlZW5kIiwibW92ZXN0YXJ0IiwicHJvcGVydHljaGFuZ2UiLCJyZXNpemVlbmQiLCJyZXNpemVzdGFydCIsInJvd2VudGVyIiwicm93ZXhpdCIsInJvd3NkZWxldGUiLCJyb3dzaW5zZXJ0ZWQiLCJjb21tYW5kIiwiY29tcGFzc25lZWRzY2FsaWJyYXRpb24iLCJkZWFjdGl2YXRlIiwiaGVscCIsIm1zY29udGVudHpvb20iLCJtc21hbmlwdWxhdGlvbnN0YXRlY2hhbmdlZCIsIm1zZ2VzdHVyZWNoYW5nZSIsIm1zZ2VzdHVyZWRvdWJsZXRhcCIsIm1zZ2VzdHVyZWVuZCIsIm1zZ2VzdHVyZWhvbGQiLCJtc2dlc3R1cmVzdGFydCIsIm1zZ2VzdHVyZXRhcCIsIm1zZ290cG9pbnRlcmNhcHR1cmUiLCJtc2luZXJ0aWFzdGFydCIsIm1zbG9zdHBvaW50ZXJjYXB0dXJlIiwibXNwb2ludGVyY2FuY2VsIiwibXNwb2ludGVyZG93biIsIm1zcG9pbnRlcmVudGVyIiwibXNwb2ludGVyaG92ZXIiLCJtc3BvaW50ZXJsZWF2ZSIsIm1zcG9pbnRlcm1vdmUiLCJtc3BvaW50ZXJvdXQiLCJtc3BvaW50ZXJvdmVyIiwibXNwb2ludGVydXAiLCJwb2ludGVyb3V0IiwibXNzaXRlbW9kZWp1bXBsaXN0aXRlbXJlbW92ZWQiLCJtc3RodW1ibmFpbGNsaWNrIiwic3RvcCIsInN0b3JhZ2Vjb21taXQiXSk7ZnVuY3Rpb24gZ2UoZSx0LG4pe2lmKCFufHwwPT09bi5sZW5ndGgpcmV0dXJuIHQ7dmFyIHI9bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldD09PWV9KSk7aWYoIXJ8fDA9PT1yLmxlbmd0aClyZXR1cm4gdDt2YXIgbz1yWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4tMT09PW8uaW5kZXhPZihlKX0pKX1mdW5jdGlvbiBfZShlLHQsbixyKXtlJiZqKGUsZ2UoZSx0LG4pLHIpfWZ1bmN0aW9uIG1lKGUsdCl7aWYoKCFFfHxTKSYmIVpvbmVbZS5zeW1ib2woInBhdGNoRXZlbnRzIildKXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYlNvY2tldCxvPXQuX19ab25lX2lnbm9yZV9vbl9wcm9wZXJ0aWVzO2lmKE8pe3ZhciBhPXdpbmRvdyxpPUY/W3t0YXJnZXQ6YSxpZ25vcmVQcm9wZXJ0aWVzOlsiZXJyb3IiXX1dOltdO19lKGEseWUuY29uY2F0KFsibWVzc2FnZWVycm9yIl0pLG8/by5jb25jYXQoaSk6byxuKGEpKSxfZShEb2N1bWVudC5wcm90b3R5cGUseWUsbyksdm9pZCAwIT09YS5TVkdFbGVtZW50JiZfZShhLlNWR0VsZW1lbnQucHJvdG90eXBlLHllLG8pLF9lKEVsZW1lbnQucHJvdG90eXBlLHllLG8pLF9lKEhUTUxFbGVtZW50LnByb3RvdHlwZSx5ZSxvKSxfZShIVE1MTWVkaWFFbGVtZW50LnByb3RvdHlwZSxzZSxvKSxfZShIVE1MRnJhbWVTZXRFbGVtZW50LnByb3RvdHlwZSxjZS5jb25jYXQobGUpLG8pLF9lKEhUTUxCb2R5RWxlbWVudC5wcm90b3R5cGUsY2UuY29uY2F0KGxlKSxvKSxfZShIVE1MRnJhbWVFbGVtZW50LnByb3RvdHlwZSx1ZSxvKSxfZShIVE1MSUZyYW1lRWxlbWVudC5wcm90b3R5cGUsdWUsbyk7dmFyIGM9YS5IVE1MTWFycXVlZUVsZW1lbnQ7YyYmX2UoYy5wcm90b3R5cGUsZmUsbyk7dmFyIHM9YS5Xb3JrZXI7cyYmX2Uocy5wcm90b3R5cGUsdmUsbyl9dmFyIHU9dC5YTUxIdHRwUmVxdWVzdDt1JiZfZSh1LnByb3RvdHlwZSxwZSxvKTt2YXIgbD10LlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7bCYmX2UobCYmbC5wcm90b3R5cGUscGUsbyksInVuZGVmaW5lZCIhPXR5cGVvZiBJREJJbmRleCYmKF9lKElEQkluZGV4LnByb3RvdHlwZSxoZSxvKSxfZShJREJSZXF1ZXN0LnByb3RvdHlwZSxoZSxvKSxfZShJREJPcGVuREJSZXF1ZXN0LnByb3RvdHlwZSxoZSxvKSxfZShJREJEYXRhYmFzZS5wcm90b3R5cGUsaGUsbyksX2UoSURCVHJhbnNhY3Rpb24ucHJvdG90eXBlLGhlLG8pLF9lKElEQkN1cnNvci5wcm90b3R5cGUsaGUsbykpLHImJl9lKFdlYlNvY2tldC5wcm90b3R5cGUsZGUsbyl9fWZ1bmN0aW9uIGJlKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCkscj1uLmV2ZW50TmFtZXMsbz1uLmdsb2JhbFNvdXJjZXMsYT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGk9bi5UUlVFX1NUUixjPW4uRkFMU0VfU1RSLHM9bi5aT05FX1NZTUJPTF9QUkVGSVgsdT0iQW5jaG9yLEFyZWEsQXVkaW8sQlIsQmFzZSxCYXNlRm9udCxCb2R5LEJ1dHRvbixDYW52YXMsQ29udGVudCxETGlzdCxEaXJlY3RvcnksRGl2LEVtYmVkLEZpZWxkU2V0LEZvbnQsRm9ybSxGcmFtZSxGcmFtZVNldCxIUixIZWFkLEhlYWRpbmcsSHRtbCxJRnJhbWUsSW1hZ2UsSW5wdXQsS2V5Z2VuLExJLExhYmVsLExlZ2VuZCxMaW5rLE1hcCxNYXJxdWVlLE1lZGlhLE1lbnUsTWV0YSxNZXRlcixNb2QsT0xpc3QsT2JqZWN0LE9wdEdyb3VwLE9wdGlvbixPdXRwdXQsUGFyYWdyYXBoLFByZSxQcm9ncmVzcyxRdW90ZSxTY3JpcHQsU2VsZWN0LFNvdXJjZSxTcGFuLFN0eWxlLFRhYmxlQ2FwdGlvbixUYWJsZUNlbGwsVGFibGVDb2wsVGFibGUsVGFibGVSb3csVGFibGVTZWN0aW9uLFRleHRBcmVhLFRpdGxlLFRyYWNrLFVMaXN0LFVua25vd24sVmlkZW8iLGw9IkFwcGxpY2F0aW9uQ2FjaGUsRXZlbnRTb3VyY2UsRmlsZVJlYWRlcixJbnB1dE1ldGhvZENvbnRleHQsTWVkaWFDb250cm9sbGVyLE1lc3NhZ2VQb3J0LE5vZGUsUGVyZm9ybWFuY2UsU1ZHRWxlbWVudEluc3RhbmNlLFNoYXJlZFdvcmtlcixUZXh0VHJhY2ssVGV4dFRyYWNrQ3VlLFRleHRUcmFja0xpc3QsV2ViS2l0TmFtZWRGbG93LFdpbmRvdyxXb3JrZXIsV29ya2VyR2xvYmFsU2NvcGUsWE1MSHR0cFJlcXVlc3QsWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCxYTUxIdHRwUmVxdWVzdFVwbG9hZCxJREJSZXF1ZXN0LElEQk9wZW5EQlJlcXVlc3QsSURCRGF0YWJhc2UsSURCVHJhbnNhY3Rpb24sSURCQ3Vyc29yLERCSW5kZXgsV2ViU29ja2V0Ii5zcGxpdCgiLCIpLGY9W10scD1lLnd0ZixoPXUuc3BsaXQoIiwiKTtwP2Y9aC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiJIVE1MIitlKyJFbGVtZW50In0pKS5jb25jYXQobCk6ZS5FdmVudFRhcmdldD9mLnB1c2goIkV2ZW50VGFyZ2V0Iik6Zj1sO2Zvcih2YXIgZD1lLl9fWm9uZV9kaXNhYmxlX0lFX2NoZWNrfHwhMSx2PWUuX19ab25lX2VuYWJsZV9jcm9zc19jb250ZXh0X2NoZWNrfHwhMSx5PXQuaXNJRU9yRWRnZSgpLGc9ImZ1bmN0aW9uIF9fQlJPV1NFUlRPT0xTX0NPTlNPTEVfU0FGRUZVTkMoKSB7IFtuYXRpdmUgY29kZV0gfSIsXz0wO188ci5sZW5ndGg7XysrKXt2YXIgbT1zKygoRT1yW19dKStjKSxiPXMrKEUraSk7YVtFXT17fSxhW0VdW2NdPW0sYVtFXVtpXT1ifWZvcihfPTA7Xzx1Lmxlbmd0aDtfKyspZm9yKHZhciBrPWhbX10sVD1vW2tdPXt9LHc9MDt3PHIubGVuZ3RoO3crKyl7dmFyIEU7VFtFPXJbd11dPWsrIi5hZGRFdmVudExpc3RlbmVyOiIrRX12YXIgTz1bXTtmb3IoXz0wO188Zi5sZW5ndGg7XysrKXt2YXIgUz1lW2ZbX11dO08ucHVzaChTJiZTLnByb3RvdHlwZSl9cmV0dXJuIHQucGF0Y2hFdmVudFRhcmdldChlLE8se3ZoOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFkJiZ5KXtpZih2KXRyeXt2YXIgbztpZigiW29iamVjdCBGdW5jdGlvbldyYXBwZXJdIj09PShvPXQudG9TdHJpbmcoKSl8fG89PWcpcmV0dXJuIGUuYXBwbHkobixyKSwhMX1jYXRjaChhKXtyZXR1cm4gZS5hcHBseShuLHIpLCExfWVsc2UgaWYoIltvYmplY3QgRnVuY3Rpb25XcmFwcGVyXSI9PT0obz10LnRvU3RyaW5nKCkpfHxvPT1nKXJldHVybiBlLmFwcGx5KG4sciksITF9ZWxzZSBpZih2KXRyeXt0LnRvU3RyaW5nKCl9Y2F0Y2goYSl7cmV0dXJuIGUuYXBwbHkobixyKSwhMX1yZXR1cm4hMH19KSxab25lW3Quc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildPSEhZS5FdmVudFRhcmdldCwhMH1mdW5jdGlvbiBrZShlLHQpe3ZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpO2lmKCghbi5pc05vZGV8fG4uaXNNaXgpJiYhZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmdldEdsb2JhbE9iamVjdHMoKTtpZigobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiYhZS5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCl7dmFyIHI9ZS5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siKTtpZihyJiYhci5jb25maWd1cmFibGUpcmV0dXJuITE7aWYocil7ZS5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0pO3ZhciBvPSEhZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikub25jbGljaztyZXR1cm4gZS5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIsciksb319dmFyIGE9dC5YTUxIdHRwUmVxdWVzdDtpZighYSlyZXR1cm4hMTt2YXIgaT1hLnByb3RvdHlwZSxjPWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksIm9ucmVhZHlzdGF0ZWNoYW5nZSIpO2lmKGMpcmV0dXJuIGUuT2JqZWN0RGVmaW5lUHJvcGVydHkoaSwib25yZWFkeXN0YXRlY2hhbmdlIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSksbz0hISh1PW5ldyBhKS5vbnJlYWR5c3RhdGVjaGFuZ2UsZS5PYmplY3REZWZpbmVQcm9wZXJ0eShpLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGN8fHt9KSxvO3ZhciBzPWUuc3ltYm9sKCJmYWtlIik7ZS5PYmplY3REZWZpbmVQcm9wZXJ0eShpLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tzXX0sc2V0OmZ1bmN0aW9uKGUpe3RoaXNbc109ZX19KTt2YXIgdT1uZXcgYSxsPWZ1bmN0aW9uKCl7fTtyZXR1cm4gdS5vbnJlYWR5c3RhdGVjaGFuZ2U9bCxvPXVbc109PT1sLHUub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsb30oZSx0KSl7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQ7IWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmdldEdsb2JhbE9iamVjdHMoKS5ldmVudE5hbWVzLG49ZS5zeW1ib2woInVuYm91bmQiKSxyPWZ1bmN0aW9uKHIpe3ZhciBvPXRbcl0sYT0ib24iK287c2VsZi5hZGRFdmVudExpc3RlbmVyKG8sKGZ1bmN0aW9uKHQpe3ZhciByLG8saT10LnRhcmdldDtmb3Iobz1pP2kuY29uc3RydWN0b3IubmFtZSsiLiIrYToidW5rbm93bi4iK2E7aTspaVthXSYmIWlbYV1bbl0mJigocj1lLndyYXBXaXRoQ3VycmVudFpvbmUoaVthXSxvKSlbbl09aVthXSxpW2FdPXIpLGk9aS5wYXJlbnRFbGVtZW50fSksITApfSxvPTA7bzx0Lmxlbmd0aDtvKyspcihvKX0oZSksZS5wYXRjaENsYXNzKCJYTUxIdHRwUmVxdWVzdCIpLHImJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCkscj1uLkFERF9FVkVOVF9MSVNURU5FUl9TVFIsbz1uLlJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFIsYT10LldlYlNvY2tldDt0LkV2ZW50VGFyZ2V0fHxlLnBhdGNoRXZlbnRUYXJnZXQodCxbYS5wcm90b3R5cGVdKSx0LldlYlNvY2tldD1mdW5jdGlvbih0LG4pe3ZhciBpLGMscz1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IGEodCxuKTpuZXcgYSh0KSx1PWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsIm9ubWVzc2FnZSIpO3JldHVybiB1JiYhMT09PXUuY29uZmlndXJhYmxlPyhpPWUuT2JqZWN0Q3JlYXRlKHMpLGM9cyxbcixvLCJzZW5kIiwiY2xvc2UiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtpW3RdPWZ1bmN0aW9uKCl7dmFyIG49ZS5BcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZih0PT09cnx8dD09PW8pe3ZhciBhPW4ubGVuZ3RoPjA/blswXTp2b2lkIDA7aWYoYSl7dmFyIGM9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIrYSk7c1tjXT1pW2NdfX1yZXR1cm4gc1t0XS5hcHBseShzLG4pfX0pKSk6aT1zLGUucGF0Y2hPblByb3BlcnRpZXMoaSxbImNsb3NlIiwiZXJyb3IiLCJtZXNzYWdlIiwib3BlbiJdLGMpLGl9O3ZhciBpPXQuV2ViU29ja2V0O2Zvcih2YXIgYyBpbiBhKWlbY109YVtjXX0oZSx0KSxab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50cyIpXT0hMH19Wm9uZS5fX2xvYWRfcGF0Y2goInV0aWwiLChmdW5jdGlvbihuLHIscyl7cy5wYXRjaE9uUHJvcGVydGllcz1qLHMucGF0Y2hNZXRob2Q9UixzLmJpbmRBcmd1bWVudHM9ayxzLnBhdGNoTWFjcm9UYXNrPXg7dmFyIHU9ci5fX3N5bWJvbF9fKCJCTEFDS19MSVNURURfRVZFTlRTIiksZD1yLl9fc3ltYm9sX18oIlVOUEFUQ0hFRF9FVkVOVFMiKTtuW2RdJiYoblt1XT1uW2RdKSxuW3VdJiYoclt1XT1yW2RdPW5bdV0pLHMucGF0Y2hFdmVudFByb3RvdHlwZT1KLHMucGF0Y2hFdmVudFRhcmdldD1YLHMuaXNJRU9yRWRnZT1BLHMuT2JqZWN0RGVmaW5lUHJvcGVydHk9dCxzLk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcj1lLHMuT2JqZWN0Q3JlYXRlPW8scy5BcnJheVNsaWNlPWEscy5wYXRjaENsYXNzPUMscy53cmFwV2l0aEN1cnJlbnRab25lPWgscy5maWx0ZXJQcm9wZXJ0aWVzPWdlLHMuYXR0YWNoT3JpZ2luVG9QYXRjaGVkPU0scy5fcmVkZWZpbmVQcm9wZXJ0eT1yZSxzLnBhdGNoQ2FsbGJhY2tzPUsscy5nZXRHbG9iYWxPYmplY3RzPWZ1bmN0aW9uKCl7cmV0dXJue2dsb2JhbFNvdXJjZXM6cSx6b25lU3ltYm9sRXZlbnROYW1lczpXLGV2ZW50TmFtZXM6eWUsaXNCcm93c2VyOk8saXNNaXg6Uyxpc05vZGU6RSxUUlVFX1NUUjpsLEZBTFNFX1NUUjpmLFpPTkVfU1lNQk9MX1BSRUZJWDpwLEFERF9FVkVOVF9MSVNURU5FUl9TVFI6aSxSRU1PVkVfRVZFTlRfTElTVEVORVJfU1RSOmN9fX0pKSxmdW5jdGlvbihlKXtlLl9fem9uZV9zeW1ib2xfX2xlZ2FjeVBhdGNoPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5ab25lO3QuX19sb2FkX3BhdGNoKCJyZWdpc3RlckVsZW1lbnQiLChmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCk7KG4uaXNCcm93c2VyfHxuLmlzTWl4KSYmInJlZ2lzdGVyRWxlbWVudCJpbiBlLmRvY3VtZW50JiZ0LnBhdGNoQ2FsbGJhY2tzKHQsZG9jdW1lbnQsIkRvY3VtZW50IiwicmVnaXN0ZXJFbGVtZW50IixbImNyZWF0ZWRDYWxsYmFjayIsImF0dGFjaGVkQ2FsbGJhY2siLCJkZXRhY2hlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfShlLG4pfSkpLHQuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldExlZ2FjeSIsKGZ1bmN0aW9uKGUsdCxuKXtiZShlLG4pLGtlKG4sZSl9KSl9fSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fGdsb2JhbCk7dmFyIFRlPXYoInpvbmVUYXNrIik7ZnVuY3Rpb24gd2UoZSx0LG4scil7dmFyIG89bnVsbCxhPW51bGw7bis9cjt2YXIgaT17fTtmdW5jdGlvbiBjKHQpe3ZhciBuPXQuZGF0YTtyZXR1cm4gbi5hcmdzWzBdPWZ1bmN0aW9uKCl7dHJ5e3QuaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e3QuZGF0YSYmdC5kYXRhLmlzUGVyaW9kaWN8fCgibnVtYmVyIj09dHlwZW9mIG4uaGFuZGxlSWQ/ZGVsZXRlIGlbbi5oYW5kbGVJZF06bi5oYW5kbGVJZCYmKG4uaGFuZGxlSWRbVGVdPW51bGwpKX19LG4uaGFuZGxlSWQ9by5hcHBseShlLG4uYXJncyksdH1mdW5jdGlvbiBzKGUpe3JldHVybiBhKGUuZGF0YS5oYW5kbGVJZCl9bz1SKGUsdCs9ciwoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8sYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGFbMF0pe3ZhciB1PWQodCxhWzBdLHtpc1BlcmlvZGljOiJJbnRlcnZhbCI9PT1yLGRlbGF5OiJUaW1lb3V0Ij09PXJ8fCJJbnRlcnZhbCI9PT1yP2FbMV18fDA6dm9pZCAwLGFyZ3M6YX0sYyxzKTtpZighdSlyZXR1cm4gdTt2YXIgbD11LmRhdGEuaGFuZGxlSWQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBsP2lbbF09dTpsJiYobFtUZV09dSksbCYmbC5yZWYmJmwudW5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBsLnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIGwudW5yZWYmJih1LnJlZj1sLnJlZi5iaW5kKGwpLHUudW5yZWY9bC51bnJlZi5iaW5kKGwpKSwibnVtYmVyIj09dHlwZW9mIGx8fGw/bDp1fXJldHVybiBuLmFwcGx5KGUsYSl9fSkpLGE9UihlLG4sKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciBvLGE9clswXTsibnVtYmVyIj09dHlwZW9mIGE/bz1pW2FdOihvPWEmJmFbVGVdKXx8KG89YSksbyYmInN0cmluZyI9PXR5cGVvZiBvLnR5cGU/Im5vdFNjaGVkdWxlZCIhPT1vLnN0YXRlJiYoby5jYW5jZWxGbiYmby5kYXRhLmlzUGVyaW9kaWN8fDA9PT1vLnJ1bkNvdW50KSYmKCJudW1iZXIiPT10eXBlb2YgYT9kZWxldGUgaVthXTphJiYoYVtUZV09bnVsbCksby56b25lLmNhbmNlbFRhc2sobykpOnQuYXBwbHkoZSxyKX19KSl9ZnVuY3Rpb24gRWUoZSx0KXtpZighWm9uZVt0LnN5bWJvbCgicGF0Y2hFdmVudFRhcmdldCIpXSl7Zm9yKHZhciBuPXQuZ2V0R2xvYmFsT2JqZWN0cygpLHI9bi5ldmVudE5hbWVzLG89bi56b25lU3ltYm9sRXZlbnROYW1lcyxhPW4uVFJVRV9TVFIsaT1uLkZBTFNFX1NUUixjPW4uWk9ORV9TWU1CT0xfUFJFRklYLHM9MDtzPHIubGVuZ3RoO3MrKyl7dmFyIHU9cltzXSxsPWMrKHUraSksZj1jKyh1K2EpO29bdV09e30sb1t1XVtpXT1sLG9bdV1bYV09Zn12YXIgcD1lLkV2ZW50VGFyZ2V0O2lmKHAmJnAucHJvdG90eXBlKXJldHVybiB0LnBhdGNoRXZlbnRUYXJnZXQoZSxbcCYmcC5wcm90b3R5cGVdKSwhMH19Wm9uZS5fX2xvYWRfcGF0Y2goImxlZ2FjeSIsKGZ1bmN0aW9uKGUpe3ZhciB0PWVbWm9uZS5fX3N5bWJvbF9fKCJsZWdhY3lQYXRjaCIpXTt0JiZ0KCl9KSksWm9uZS5fX2xvYWRfcGF0Y2goInRpbWVycyIsKGZ1bmN0aW9uKGUpe3dlKGUsInNldCIsImNsZWFyIiwiVGltZW91dCIpLHdlKGUsInNldCIsImNsZWFyIiwiSW50ZXJ2YWwiKSx3ZShlLCJzZXQiLCJjbGVhciIsIkltbWVkaWF0ZSIpfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLChmdW5jdGlvbihlKXt3ZShlLCJyZXF1ZXN0IiwiY2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKSx3ZShlLCJtb3pSZXF1ZXN0IiwibW96Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKSx3ZShlLCJ3ZWJraXRSZXF1ZXN0Iiwid2Via2l0Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiYmxvY2tpbmciLChmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bImFsZXJ0IiwicHJvbXB0IiwiY29uZmlybSJdLHI9MDtyPG4ubGVuZ3RoO3IrKylSKGUsbltyXSwoZnVuY3Rpb24obixyLG8pe3JldHVybiBmdW5jdGlvbihyLGEpe3JldHVybiB0LmN1cnJlbnQucnVuKG4sZSxhLG8pfX0pKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiRXZlbnRUYXJnZXQiLChmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7dC5wYXRjaEV2ZW50UHJvdG90eXBlKGUsdCl9KGUsbiksRWUoZSxuKTt2YXIgcj1lLlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7ciYmci5wcm90b3R5cGUmJm4ucGF0Y2hFdmVudFRhcmdldChlLFtyLnByb3RvdHlwZV0pLEMoIk11dGF0aW9uT2JzZXJ2ZXIiKSxDKCJXZWJLaXRNdXRhdGlvbk9ic2VydmVyIiksQygiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiKSxDKCJGaWxlUmVhZGVyIil9KSksWm9uZS5fX2xvYWRfcGF0Y2goIm9uX3Byb3BlcnR5IiwoZnVuY3Rpb24oZSx0LG4pe21lKG4sZSksT2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKGUsdCxuKXtpZihvZShlLHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBhc3NpZ24gdG8gcmVhZCBvbmx5IHByb3BlcnR5ICciK3QrIicgb2YgIitlKTt2YXIgcj1uLmNvbmZpZ3VyYWJsZTtyZXR1cm4icHJvdG90eXBlIiE9PXQmJihuPWFlKGUsdCxuKSksaWUoZSx0LG4scil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sdFtuXSl9KSksZX0sT2JqZWN0LmNyZWF0ZT1mdW5jdGlvbihlLHQpe3JldHVybiJvYmplY3QiIT10eXBlb2YgdHx8T2JqZWN0LmlzRnJvemVuKHQpfHxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXt0W25dPWFlKGUsbix0W25dKX0pKSx0ZShlLHQpfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZWUoZSx0KTtyZXR1cm4gbiYmb2UoZSx0KSYmKG4uY29uZmlndXJhYmxlPSExKSxufX0pKSxab25lLl9fbG9hZF9wYXRjaCgiY3VzdG9tRWxlbWVudHMiLChmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCk7KG4uaXNCcm93c2VyfHxuLmlzTWl4KSYmZS5jdXN0b21FbGVtZW50cyYmImN1c3RvbUVsZW1lbnRzImluIGUmJnQucGF0Y2hDYWxsYmFja3ModCxlLmN1c3RvbUVsZW1lbnRzLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSIsWyJjb25uZWN0ZWRDYWxsYmFjayIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwiYWRvcHRlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfShlLG4pfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJYSFIiLChmdW5jdGlvbihlLHQpeyFmdW5jdGlvbihlKXt2YXIgbD1lLlhNTEh0dHBSZXF1ZXN0O2lmKGwpe3ZhciBmPWwucHJvdG90eXBlLHA9ZltzXSxoPWZbdV07aWYoIXApe3ZhciB5PWUuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtpZih5KXt2YXIgZz15LnByb3RvdHlwZTtwPWdbc10saD1nW3VdfX12YXIgXz0icmVhZHlzdGF0ZWNoYW5nZSIsbT0ic2NoZWR1bGVkIixiPVIoZiwib3BlbiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbcl09MD09dFsyXSxlW2ldPXRbMV0sYi5hcHBseShlLHQpfX0pKSxrPXYoImZldGNoVGFza0Fib3J0aW5nIiksVD12KCJmZXRjaFRhc2tTY2hlZHVsaW5nIiksdz1SKGYsInNlbmQiLChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLG4pe2lmKCEwPT09dC5jdXJyZW50W1RdKXJldHVybiB3LmFwcGx5KGUsbik7aWYoZVtyXSlyZXR1cm4gdy5hcHBseShlLG4pO3ZhciBvPXt0YXJnZXQ6ZSx1cmw6ZVtpXSxpc1BlcmlvZGljOiExLGFyZ3M6bixhYm9ydGVkOiExfSxhPWQoIlhNTEh0dHBSZXF1ZXN0LnNlbmQiLFMsbyxPLFApO2UmJiEwPT09ZVtjXSYmIW8uYWJvcnRlZCYmYS5zdGF0ZT09PW0mJmEuaW52b2tlKCl9fSkpLEU9UihmLCJhYm9ydCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIG89ZVtuXTtpZihvJiYic3RyaW5nIj09dHlwZW9mIG8udHlwZSl7aWYobnVsbD09by5jYW5jZWxGbnx8by5kYXRhJiZvLmRhdGEuYWJvcnRlZClyZXR1cm47by56b25lLmNhbmNlbFRhc2sobyl9ZWxzZSBpZighMD09PXQuY3VycmVudFtrXSlyZXR1cm4gRS5hcHBseShlLHIpfX0pKX1mdW5jdGlvbiBPKGUpe3ZhciB0PWUuZGF0YSxyPXQudGFyZ2V0O3JbYV09ITEscltjXT0hMTt2YXIgaT1yW29dO3B8fChwPXJbc10saD1yW3VdKSxpJiZoLmNhbGwocixfLGkpO3ZhciBsPXJbb109ZnVuY3Rpb24oKXtpZihyLnJlYWR5U3RhdGU9PT1yLkRPTkUpaWYoIXQuYWJvcnRlZCYmclthXSYmZS5zdGF0ZT09PW0pe3ZhciBuPXIuX196b25lX3N5bWJvbF9fbG9hZGZhbHNlO2lmKG4mJm4ubGVuZ3RoPjApe3ZhciBvPWUuaW52b2tlO2UuaW52b2tlPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPXIuX196b25lX3N5bWJvbF9fbG9hZGZhbHNlLGE9MDthPG4ubGVuZ3RoO2ErKyluW2FdPT09ZSYmbi5zcGxpY2UoYSwxKTt0LmFib3J0ZWR8fGUuc3RhdGUhPT1tfHxvLmNhbGwoZSl9LG4ucHVzaChlKX1lbHNlIGUuaW52b2tlKCl9ZWxzZSB0LmFib3J0ZWR8fCExIT09clthXXx8KHJbY109ITApfTtyZXR1cm4gcC5jYWxsKHIsXyxsKSxyW25dfHwocltuXT1lKSx3LmFwcGx5KHIsdC5hcmdzKSxyW2FdPSEwLGV9ZnVuY3Rpb24gUygpe31mdW5jdGlvbiBQKGUpe3ZhciB0PWUuZGF0YTtyZXR1cm4gdC5hYm9ydGVkPSEwLEUuYXBwbHkodC50YXJnZXQsdC5hcmdzKX19KGUpO3ZhciBuPXYoInhoclRhc2siKSxyPXYoInhoclN5bmMiKSxvPXYoInhockxpc3RlbmVyIiksYT12KCJ4aHJTY2hlZHVsZWQiKSxpPXYoInhoclVSTCIpLGM9digieGhyRXJyb3JCZWZvcmVTY2hlZHVsZWQiKX0pKSxab25lLl9fbG9hZF9wYXRjaCgiZ2VvbG9jYXRpb24iLChmdW5jdGlvbih0KXt0Lm5hdmlnYXRvciYmdC5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJmZ1bmN0aW9uKHQsbil7Zm9yKHZhciByPXQuY29uc3RydWN0b3IubmFtZSxvPWZ1bmN0aW9uKG8pe3ZhciBhPW5bb10saT10W2FdO2lmKGkpe2lmKCFUKGUodCxhKSkpcmV0dXJuImNvbnRpbnVlIjt0W2FdPWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxrKGFyZ3VtZW50cyxyKyIuIithKSl9O3JldHVybiBNKHQsZSksdH0oaSl9fSxhPTA7YTxuLmxlbmd0aDthKyspbyhhKX0odC5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24sWyJnZXRDdXJyZW50UG9zaXRpb24iLCJ3YXRjaFBvc2l0aW9uIl0pfSkpLFpvbmUuX19sb2FkX3BhdGNoKCJQcm9taXNlUmVqZWN0aW9uRXZlbnQiLChmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe1koZSx0KS5mb3JFYWNoKChmdW5jdGlvbihyKXt2YXIgbz1lLlByb21pc2VSZWplY3Rpb25FdmVudDtpZihvKXt2YXIgYT1uZXcgbyh0LHtwcm9taXNlOm4ucHJvbWlzZSxyZWFzb246bi5yZWplY3Rpb259KTtyLmludm9rZShhKX19KSl9fWUuUHJvbWlzZVJlamVjdGlvbkV2ZW50JiYodFt2KCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpXT1uKCJ1bmhhbmRsZWRyZWplY3Rpb24iKSx0W3YoInJlamVjdGlvbkhhbmRsZWRIYW5kbGVyIildPW4oInJlamVjdGlvbmhhbmRsZWQiKSl9KSl9KCl9LDI6ZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKCJoTi9nIil9LCJoTi9nIjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24ucih0KSxuKCIwVFdwIil9LG1yU0c6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLnIodCksbi5kKHQsIl9fZXh0ZW5kcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIG99KSksbi5kKHQsIl9fYXNzaWduIiwoZnVuY3Rpb24oKXtyZXR1cm4gYX0pKSxuLmQodCwiX19yZXN0IiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQodCwiX19kZWNvcmF0ZSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN9KSksbi5kKHQsIl9fcGFyYW0iLChmdW5jdGlvbigpe3JldHVybiBzfSkpLG4uZCh0LCJfX21ldGFkYXRhIiwoZnVuY3Rpb24oKXtyZXR1cm4gdX0pKSxuLmQodCwiX19hd2FpdGVyIiwoZnVuY3Rpb24oKXtyZXR1cm4gbH0pKSxuLmQodCwiX19nZW5lcmF0b3IiLChmdW5jdGlvbigpe3JldHVybiBmfSkpLG4uZCh0LCJfX2V4cG9ydFN0YXIiLChmdW5jdGlvbigpe3JldHVybiBwfSkpLG4uZCh0LCJfX3ZhbHVlcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGh9KSksbi5kKHQsIl9fcmVhZCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGR9KSksbi5kKHQsIl9fc3ByZWFkIiwoZnVuY3Rpb24oKXtyZXR1cm4gdn0pKSxuLmQodCwiX19zcHJlYWRBcnJheXMiLChmdW5jdGlvbigpe3JldHVybiB5fSkpLG4uZCh0LCJfX2F3YWl0IiwoZnVuY3Rpb24oKXtyZXR1cm4gZ30pKSxuLmQodCwiX19hc3luY0dlbmVyYXRvciIsKGZ1bmN0aW9uKCl7cmV0dXJuIF99KSksbi5kKHQsIl9fYXN5bmNEZWxlZ2F0b3IiLChmdW5jdGlvbigpe3JldHVybiBtfSkpLG4uZCh0LCJfX2FzeW5jVmFsdWVzIiwoZnVuY3Rpb24oKXtyZXR1cm4gYn0pKSxuLmQodCwiX19tYWtlVGVtcGxhdGVPYmplY3QiLChmdW5jdGlvbigpe3JldHVybiBrfSkpLG4uZCh0LCJfX2ltcG9ydFN0YXIiLChmdW5jdGlvbigpe3JldHVybiBUfSkpLG4uZCh0LCJfX2ltcG9ydERlZmF1bHQiLChmdW5jdGlvbigpe3JldHVybiB3fSkpO3ZhciByPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmKGVbbl09dFtuXSl9KShlLHQpfTtmdW5jdGlvbiBvKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KToobi5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IG4pfXZhciBhPWZ1bmN0aW9uKCl7cmV0dXJuKGE9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIG8gaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbykmJihlW29dPXRbb10pO3JldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBpKGUsdCl7dmFyIG49e307Zm9yKHZhciByIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnQuaW5kZXhPZihyKTwwJiYobltyXT1lW3JdKTtpZihudWxsIT1lJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG89MDtmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO288ci5sZW5ndGg7bysrKXQuaW5kZXhPZihyW29dKTwwJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxyW29dKSYmKG5bcltvXV09ZVtyW29dXSl9cmV0dXJuIG59ZnVuY3Rpb24gYyhlLHQsbixyKXt2YXIgbyxhPWFyZ3VtZW50cy5sZW5ndGgsaT1hPDM/dDpudWxsPT09cj9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTpyO2lmKCJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmImZ1bmN0aW9uIj09dHlwZW9mIFJlZmxlY3QuZGVjb3I="
},
{
"key": "qwe?runtime.js?2?2",
"type": "binary",
"value": "base64:YXRlKWk9UmVmbGVjdC5kZWNvcmF0ZShlLHQsbixyKTtlbHNlIGZvcih2YXIgYz1lLmxlbmd0aC0xO2M+PTA7Yy0tKShvPWVbY10pJiYoaT0oYTwzP28oaSk6YT4zP28odCxuLGkpOm8odCxuKSl8fGkpO3JldHVybiBhPjMmJmkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4saSksaX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKG4scil7dChuLHIsZSl9fWZ1bmN0aW9uIHUoZSx0KXtpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhKXJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGUsdCl9ZnVuY3Rpb24gbChlLHQsbixyKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24obyxhKXtmdW5jdGlvbiBpKGUpe3RyeXtzKHIubmV4dChlKSl9Y2F0Y2godCl7YSh0KX19ZnVuY3Rpb24gYyhlKXt0cnl7cyhyLnRocm93KGUpKX1jYXRjaCh0KXthKHQpfX1mdW5jdGlvbiBzKGUpe2UuZG9uZT9vKGUudmFsdWUpOm5ldyBuKChmdW5jdGlvbih0KXt0KGUudmFsdWUpfSkpLnRoZW4oaSxjKX1zKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KSl9ZnVuY3Rpb24gZihlLHQpe3ZhciBuLHIsbyxhLGk9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGE9e25leHQ6YygwKSx0aHJvdzpjKDEpLHJldHVybjpjKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoYVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxhO2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBmdW5jdGlvbihhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2k7KXRyeXtpZihuPTEsciYmKG89MiZhWzBdP3IucmV0dXJuOmFbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixhWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihhPVsyJmFbMF0sby52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6bz1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gaS5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTppLmxhYmVsKysscj1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPWkub3BzLnBvcCgpLGkudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEobz0obz1pLnRyeXMpLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdKSYmKDY9PT1hWzBdfHwyPT09YVswXSkpe2k9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFvfHxhWzFdPm9bMF0mJmFbMV08b1szXSkpe2kubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmaS5sYWJlbDxvWzFdKXtpLmxhYmVsPW9bMV0sbz1hO2JyZWFrfWlmKG8mJmkubGFiZWw8b1syXSl7aS5sYWJlbD1vWzJdLGkub3BzLnB1c2goYSk7YnJlYWt9b1syXSYmaS5vcHMucG9wKCksaS50cnlzLnBvcCgpO2NvbnRpbnVlfWE9dC5jYWxsKGUsaSl9Y2F0Y2goYyl7YT1bNixjXSxyPTB9ZmluYWxseXtuPW89MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0oW2EsY10pfX19ZnVuY3Rpb24gcChlLHQpe2Zvcih2YXIgbiBpbiBlKXQuaGFzT3duUHJvcGVydHkobil8fCh0W25dPWVbbl0pfWZ1bmN0aW9uIGgoZSl7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdLG49MDtyZXR1cm4gdD90LmNhbGwoZSk6e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSYmbj49ZS5sZW5ndGgmJihlPXZvaWQgMCkse3ZhbHVlOmUmJmVbbisrXSxkb25lOiFlfX19fWZ1bmN0aW9uIGQoZSx0KXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl07aWYoIW4pcmV0dXJuIGU7dmFyIHIsbyxhPW4uY2FsbChlKSxpPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT10fHx0LS0gPjApJiYhKHI9YS5uZXh0KCkpLmRvbmU7KWkucHVzaChyLnZhbHVlKX1jYXRjaChjKXtvPXtlcnJvcjpjfX1maW5hbGx5e3RyeXtyJiYhci5kb25lJiYobj1hLnJldHVybikmJm4uY2FsbChhKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIGl9ZnVuY3Rpb24gdigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllPWUuY29uY2F0KGQoYXJndW1lbnRzW3RdKSk7cmV0dXJuIGV9ZnVuY3Rpb24geSgpe2Zvcih2YXIgZT0wLHQ9MCxuPWFyZ3VtZW50cy5sZW5ndGg7dDxuO3QrKyllKz1hcmd1bWVudHNbdF0ubGVuZ3RoO3ZhciByPUFycmF5KGUpLG89MDtmb3IodD0wO3Q8bjt0KyspZm9yKHZhciBhPWFyZ3VtZW50c1t0XSxpPTAsYz1hLmxlbmd0aDtpPGM7aSsrLG8rKylyW29dPWFbaV07cmV0dXJuIHJ9ZnVuY3Rpb24gZyhlKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGc/KHRoaXMudj1lLHRoaXMpOm5ldyBnKGUpfWZ1bmN0aW9uIF8oZSx0LG4pe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgcixvPW4uYXBwbHkoZSx0fHxbXSksYT1bXTtyZXR1cm4gcj17fSxpKCJuZXh0IiksaSgidGhyb3ciKSxpKCJyZXR1cm4iKSxyW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyO2Z1bmN0aW9uIGkoZSl7b1tlXSYmKHJbZV09ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihuLHIpe2EucHVzaChbZSx0LG4scl0pPjF8fGMoZSx0KX0pKX0pfWZ1bmN0aW9uIGMoZSx0KXt0cnl7KG49b1tlXSh0KSkudmFsdWUgaW5zdGFuY2VvZiBnP1Byb21pc2UucmVzb2x2ZShuLnZhbHVlLnYpLnRoZW4ocyx1KTpsKGFbMF1bMl0sbil9Y2F0Y2gocil7bChhWzBdWzNdLHIpfXZhciBufWZ1bmN0aW9uIHMoZSl7YygibmV4dCIsZSl9ZnVuY3Rpb24gdShlKXtjKCJ0aHJvdyIsZSl9ZnVuY3Rpb24gbChlLHQpe2UodCksYS5zaGlmdCgpLGEubGVuZ3RoJiZjKGFbMF1bMF0sYVswXVsxXSl9fWZ1bmN0aW9uIG0oZSl7dmFyIHQsbjtyZXR1cm4gdD17fSxyKCJuZXh0IikscigidGhyb3ciLChmdW5jdGlvbihlKXt0aHJvdyBlfSkpLHIoInJldHVybiIpLHRbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSx0O2Z1bmN0aW9uIHIocixvKXt0W3JdPWVbcl0/ZnVuY3Rpb24odCl7cmV0dXJuKG49IW4pP3t2YWx1ZTpnKGVbcl0odCkpLGRvbmU6InJldHVybiI9PT1yfTpvP28odCk6dH06b319ZnVuY3Rpb24gYihlKXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIHQsbj1lW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTtyZXR1cm4gbj9uLmNhbGwoZSk6KGU9aChlKSx0PXt9LHIoIm5leHQiKSxyKCJ0aHJvdyIpLHIoInJldHVybiIpLHRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LHQpO2Z1bmN0aW9uIHIobil7dFtuXT1lW25dJiZmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbyl7IWZ1bmN0aW9uKGUsdCxuLHIpe1Byb21pc2UucmVzb2x2ZShyKS50aGVuKChmdW5jdGlvbih0KXtlKHt2YWx1ZTp0LGRvbmU6bn0pfSksdCl9KHIsbywodD1lW25dKHQpKS5kb25lLHQudmFsdWUpfSkpfX19ZnVuY3Rpb24gayhlLHQpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInJhdyIse3ZhbHVlOnR9KTplLnJhdz10LGV9ZnVuY3Rpb24gVChlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodFtuXT1lW25dKTtyZXR1cm4gdC5kZWZhdWx0PWUsdH1mdW5jdGlvbiB3KGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX19fSxbWzIsMF1dXSk7"
}
],
"height": 792756,
"spentComplexity": 0
}