3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ · data · qwe?content.js?6?4
{
    "qwe?content.js?6?4": "base64:PWQucHJvdG90eXBlLHk9L2EvZyxiPS9hL2csbT1uZXcgZCh5KSE9PXk7aWYociYmaSgiUmVnRXhwIiwhbXx8cCgoZnVuY3Rpb24oKXtyZXR1cm4gYlt2XT0hMSxkKHkpIT15fHxkKGIpPT1ifHwiL2EvaSIhPWQoeSwiaSIpfSkpKSl7Zm9yKHZhciBrPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyBpbnN0YW5jZW9mIGsscj1zKHQpLG89dm9pZCAwPT09ZTtyZXR1cm4hbiYmciYmdC5jb25zdHJ1Y3Rvcj09PWsmJm8/dDphKG0/bmV3IGQociYmIW8/dC5zb3VyY2U6dCxlKTpkKChyPXQgaW5zdGFuY2VvZiBrKT90LnNvdXJjZTp0LHImJm8/Zi5jYWxsKHQpOmUpLG4/dGhpczpnLGspfSxfPWZ1bmN0aW9uKHQpe3QgaW4ga3x8YyhrLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZFt0XX0sc2V0OmZ1bmN0aW9uKGUpe2RbdF09ZX19KX0sdz11KGQpLHg9MDt3Lmxlbmd0aD54OylfKHdbeCsrXSk7Zy5jb25zdHJ1Y3Rvcj1rLGsucHJvdG90eXBlPWcsbChvLCJSZWdFeHAiLGspfWgoIlJlZ0V4cCIpfSxUV1FiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIvR3FVIiksbz1uKCJVTVNRIiksaT1uKCJJOHZoIiksYT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGEpe3ZhciBjLHU9cihlKSxzPW8odS5sZW5ndGgpLGY9aShhLHMpO2lmKHQmJm4hPW4pe2Zvcig7cz5mOylpZigoYz11W2YrK10pIT1jKXJldHVybiEwfWVsc2UgZm9yKDtzPmY7ZisrKWlmKCh0fHxmIGluIHUpJiZ1W2ZdPT09bilyZXR1cm4gdHx8Znx8MDtyZXR1cm4hdCYmLTF9fTt0LmV4cG9ydHM9e2luY2x1ZGVzOmEoITApLGluZGV4T2Y6YSghMSl9fSxUZVFGOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigidHljUiIpLmZpbHRlcjtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IW4oIkhkNWYiKSgiZmlsdGVyIil9LHtmaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sVGZUaTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIitNTHgiKSxvPW4oImV3dlciKSxpPW4oIm05Mm4iKSxhPW4oIjZWb0UiKSxjPW4oIlVNU1EiKSx1PW4oImhCak4iKSxzPW4oIk5hRlciKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUsbixmLGwscD1vKHQpLGg9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSx2PWFyZ3VtZW50cy5sZW5ndGgsZD12PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnPXZvaWQgMCE9PWQseT0wLGI9cyhwKTtpZihnJiYoZD1yKGQsdj4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMikpLG51bGw9PWJ8fGg9PUFycmF5JiZhKGIpKWZvcihuPW5ldyBoKGU9YyhwLmxlbmd0aCkpO2U+eTt5KyspdShuLHksZz9kKHBbeV0seSk6cFt5XSk7ZWxzZSBmb3IobD1iLmNhbGwocCksbj1uZXcgaDshKGY9bC5uZXh0KCkpLmRvbmU7eSsrKXUobix5LGc/aShsLGQsW2YudmFsdWUseV0sITApOmYudmFsdWUpO3JldHVybiBuLmxlbmd0aD15LG59fSxUb0p5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiSEF1TSIpLGk9bigiZXd2VyIpLGE9bigiMERreSIpLGM9bigic3dGTCIpLHU9W10uc29ydCxzPVsxLDIsM10sZj1hKChmdW5jdGlvbigpe3Muc29ydCh2b2lkIDApfSkpLGw9YSgoZnVuY3Rpb24oKXtzLnNvcnQobnVsbCl9KSkscD1jKCJzb3J0Iik7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOmZ8fCFsfHxwfSx7c29ydDpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD91LmNhbGwoaSh0aGlzKSk6dS5jYWxsKGkodGhpcyksbyh0KSl9fSl9LFRza3E6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJiV0ZoIiksbz1uKCJaV2FRIik7dC5leHBvcnRzPXIoIk1hcCIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19KSxvLCEwKX0sVTNmNDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigibS9MOCIpLGk9bigiclcwdCIpO3ImJiJnIiE9Ly4vZy5mbGFncyYmby5mKFJlZ0V4cC5wcm90b3R5cGUsImZsYWdzIix7Y29uZmlndXJhYmxlOiEwLGdldDppfSl9LFVNU1E6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInBwR0IiKSxvPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD4wP28ocih0KSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sVVRWUzpmdW5jdGlvbih0LGUpe3ZhciBuPXt9Lmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuLmNhbGwodCxlKX19LFVlc0w6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJnbHJrIiksbz1uKCJ3RTZ2Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciIT09dCYmIm51bWJlciIhPT10JiYiZGVmYXVsdCIhPT10KXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0IGhpbnQiKTtyZXR1cm4gbyhyKHRoaXMpLCJudW1iZXIiIT09dCl9fSxVeGxDOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMTRTbCIpLG89bigiZ2xyayIpLGk9bigiZXd2VyIpLGE9bigiVU1TUSIpLGM9bigicHBHQiIpLHU9bigiSFlBRiIpLHM9bigiaXFXVyIpLGY9bigiRk1OTSIpLGw9TWF0aC5tYXgscD1NYXRoLm1pbixoPU1hdGguZmxvb3Isdj0vXCQoWyQmJ2BdfFxkXGQ/fDxbXj5dKj4pL2csZD0vXCQoWyQmJ2BdfFxkXGQ/KS9nO3IoInJlcGxhY2UiLDIsKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bZnVuY3Rpb24obixyKXt2YXIgbz11KHRoaXMpLGk9bnVsbD09bj92b2lkIDA6blt0XTtyZXR1cm4gdm9pZCAwIT09aT9pLmNhbGwobixvLHIpOmUuY2FsbChTdHJpbmcobyksbixyKX0sZnVuY3Rpb24odCxpKXt2YXIgdT1uKGUsdCx0aGlzLGkpO2lmKHUuZG9uZSlyZXR1cm4gdS52YWx1ZTt2YXIgaD1vKHQpLHY9U3RyaW5nKHRoaXMpLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIGk7ZHx8KGk9U3RyaW5nKGkpKTt2YXIgZz1oLmdsb2JhbDtpZihnKXt2YXIgeT1oLnVuaWNvZGU7aC5sYXN0SW5kZXg9MH1mb3IodmFyIGI9W107Oyl7dmFyIG09ZihoLHYpO2lmKG51bGw9PT1tKWJyZWFrO2lmKGIucHVzaChtKSwhZylicmVhazsiIj09PVN0cmluZyhtWzBdKSYmKGgubGFzdEluZGV4PXModixhKGgubGFzdEluZGV4KSx5KSl9Zm9yKHZhciBrLF89IiIsdz0wLHg9MDt4PGIubGVuZ3RoO3grKyl7bT1iW3hdO2Zvcih2YXIgUz1TdHJpbmcobVswXSksRT1sKHAoYyhtLmluZGV4KSx2Lmxlbmd0aCksMCksTz1bXSxUPTE7VDxtLmxlbmd0aDtUKyspTy5wdXNoKHZvaWQgMD09PShrPW1bVF0pP2s6U3RyaW5nKGspKTt2YXIgST1tLmdyb3VwcztpZihkKXt2YXIgaj1bU10uY29uY2F0KE8sRSx2KTt2b2lkIDAhPT1JJiZqLnB1c2goSSk7dmFyIE09U3RyaW5nKGkuYXBwbHkodm9pZCAwLGopKX1lbHNlIE09cihTLHYsRSxPLEksaSk7RT49dyYmKF8rPXYuc2xpY2UodyxFKStNLHc9RStTLmxlbmd0aCl9cmV0dXJuIF8rdi5zbGljZSh3KX1dO2Z1bmN0aW9uIHIodCxuLHIsbyxhLGMpe3ZhciB1PXIrdC5sZW5ndGgscz1vLmxlbmd0aCxmPWQ7cmV0dXJuIHZvaWQgMCE9PWEmJihhPWkoYSksZj12KSxlLmNhbGwoYyxmLChmdW5jdGlvbihlLGkpe3ZhciBjO3N3aXRjaChpLmNoYXJBdCgwKSl7Y2FzZSIkIjpyZXR1cm4iJCI7Y2FzZSImIjpyZXR1cm4gdDtjYXNlImAiOnJldHVybiBuLnNsaWNlKDAscik7Y2FzZSInIjpyZXR1cm4gbi5zbGljZSh1KTtjYXNlIjwiOmM9YVtpLnNsaWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBmPStpO2lmKDA9PT1mKXJldHVybiBlO2lmKGY+cyl7dmFyIGw9aChmLzEwKTtyZXR1cm4gMD09PWw/ZTpsPD1zP3ZvaWQgMD09PW9bbC0xXT9pLmNoYXJBdCgxKTpvW2wtMV0raS5jaGFyQXQoMSk6ZX1jPW9bZi0xXX1yZXR1cm4gdm9pZCAwPT09Yz8iIjpjfSkpfX0pKX0sVXlkeTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiSHNIQSIpLGk9TWF0aC5hY29zaCxhPU1hdGgubG9nLGM9TWF0aC5zcXJ0LHU9TWF0aC5MTjI7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohaXx8NzEwIT1NYXRoLmZsb29yKGkoTnVtYmVyLk1BWF9WQUxVRSkpfHxpKDEvMCkhPTEvMH0se2Fjb3NoOmZ1bmN0aW9uKHQpe3JldHVybih0PSt0KTwxP05hTjp0Pjk0OTA2MjY1LjYyNDI1MTU2P2EodCkrdTpvKHQtMStjKHQtMSkqYyh0KzEpKX19KX0sVkMzTDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oIlFJcGQiKSxhPTEuLnRvUHJlY2lzaW9uO3Ioe3RhcmdldDoiTnVtYmVyIixwcm90bzohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXtyZXR1cm4iMSIhPT1hLmNhbGwoMSx2b2lkIDApfSkpfHwhbygoZnVuY3Rpb24oKXthLmNhbGwoe30pfSkpfSx7dG9QcmVjaXNpb246ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/YS5jYWxsKGkodGhpcykpOmEuY2FsbChpKHRoaXMpLHQpfX0pfSxWcElUOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIiksbz1uKCJ6azYwIiksaT1uKCJ4REJSIiksYT1yWyJfX2NvcmUtanNfc2hhcmVkX18iXXx8bygiX19jb3JlLWpzX3NoYXJlZF9fIix7fSk7KHQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBhW3RdfHwoYVt0XT12b2lkIDAhPT1lP2U6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy4yLjEiLG1vZGU6aT8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiLCqSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIn0pfSxWdTgxOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwR2JZIiksbz1uKCJKQnk4IiksaT1uKCJkQmcrIiksYT1uKCJnbHJrIik7dC5leHBvcnRzPXIoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKHQpe3ZhciBlPW8uZihhKHQpKSxuPWkuZjtyZXR1cm4gbj9lLmNvbmNhdChuKHQpKTplfX0sV0RzUjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiWG9sOCIpLGk9TWF0aC5hYnM7cih7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKHQpe3JldHVybiBvKHQpJiZpKHQpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSxXSmtKOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPSJcdFxuXHZcZlxyIMKg4ZqA4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCv4oGf44CAXHUyMDI4XHUyMDI5XHVmZWZmIn0sV0tpSDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSFlBRiIpLG89IlsiK24oIldKa0oiKSsiXSIsaT1SZWdFeHAoIl4iK28rbysiKiIpLGE9UmVnRXhwKG8rbysiKiQiKSxjPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1TdHJpbmcocihlKSk7cmV0dXJuIDEmdCYmKG49bi5yZXBsYWNlKGksIiIpKSwyJnQmJihuPW4ucmVwbGFjZShhLCIiKSksbn19O3QuZXhwb3J0cz17c3RhcnQ6YygxKSxlbmQ6YygyKSx0cmltOmMoMyl9fSxXalJiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJST2RQIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHIodCkpdGhyb3cgVHlwZUVycm9yKCJUaGUgbWV0aG9kIGRvZXNuJ3QgYWNjZXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnMiKTtyZXR1cm4gdH19LCJYMlUrIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigibS9MOCIpLGk9bigiWEd3QyIpO3QuZXhwb3J0cz1yP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm4gby5mKHQsZSxpKDEsbikpfTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bix0fX0sWEd3QzpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybntlbnVtZXJhYmxlOiEoMSZ0KSxjb25maWd1cmFibGU6ISgyJnQpLHdyaXRhYmxlOiEoNCZ0KSx2YWx1ZTplfX19LFhlM0w6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCIwRGt5IiksaT1uKCJoQmpOIik7cih7dGFyZ2V0OiJBcnJheSIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiEoQXJyYXkub2YuY2FsbCh0KWluc3RhbmNlb2YgdCl9KSl9LHtvZjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldygiZnVuY3Rpb24iPT10eXBlb2YgdGhpcz90aGlzOkFycmF5KShlKTtlPnQ7KWkobix0LGFyZ3VtZW50c1t0KytdKTtyZXR1cm4gbi5sZW5ndGg9ZSxufX0pfSxYb2w4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iiksbz1NYXRoLmZsb29yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4hcih0KSYmaXNGaW5pdGUodCkmJm8odCk9PT10fX0sWUdLNDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImJXRmgiKSxvPW4oIlpXYVEiKTt0LmV4cG9ydHM9cigiU2V0IiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0pLG8pfSxZTnJWOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZzZ2LyIpLG89bigiMERreSIpLGk9bigiMzNXaCIpLGE9bigiZEJnKyIpLGM9bigiMGVlZiIpLHU9bigiZXd2VyIpLHM9bigiUkszdCIpLGY9T2JqZWN0LmFzc2lnbjt0LmV4cG9ydHM9IWZ8fG8oKGZ1bmN0aW9uKCl7dmFyIHQ9e30sZT17fSxuPVN5bWJvbCgpO3JldHVybiB0W25dPTcsImFiY2RlZmdoaWprbG1ub3BxcnN0Ii5zcGxpdCgiIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT10fSkpLDchPWYoe30sdClbbl18fCJhYmNkZWZnaGlqa2xtbm9wcXJzdCIhPWkoZih7fSxlKSkuam9pbigiIil9KSk/ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dSh0KSxvPWFyZ3VtZW50cy5sZW5ndGgsZj0xLGw9YS5mLHA9Yy5mO28+ZjspZm9yKHZhciBoLHY9cyhhcmd1bWVudHNbZisrXSksZD1sP2kodikuY29uY2F0KGwodikpOmkodiksZz1kLmxlbmd0aCx5PTA7Zz55OyloPWRbeSsrXSxyJiYhcC5jYWxsKHYsaCl8fChuW2hdPXZbaF0pO3JldHVybiBufTpmfSxaT1hiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMERreSIpLG89bigiRE10MiIpLnN0YXJ0LGk9TWF0aC5hYnMsYT1EYXRlLnByb3RvdHlwZSxjPWEuZ2V0VGltZSx1PWEudG9JU09TdHJpbmc7dC5leHBvcnRzPXIoKGZ1bmN0aW9uKCl7cmV0dXJuIjAzODUtMDctMjVUMDc6MDY6MzkuOTk5WiIhPXUuY2FsbChuZXcgRGF0ZSgtNWUxMy0xKSl9KSl8fCFyKChmdW5jdGlvbigpe3UuY2FsbChuZXcgRGF0ZShOYU4pKX0pKT9mdW5jdGlvbigpe2lmKCFpc0Zpbml0ZShjLmNhbGwodGhpcykpKXRocm93IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO3ZhciB0PXRoaXMuZ2V0VVRDRnVsbFllYXIoKSxlPXRoaXMuZ2V0VVRDTWlsbGlzZWNvbmRzKCksbj10PDA/Ii0iOnQ+OTk5OT8iKyI6IiI7cmV0dXJuIG4rbyhpKHQpLG4/Njo0LDApKyItIitvKHRoaXMuZ2V0VVRDTW9udGgoKSsxLDIsMCkrIi0iK28odGhpcy5nZXRVVENEYXRlKCksMiwwKSsiVCIrbyh0aGlzLmdldFVUQ0hvdXJzKCksMiwwKSsiOiIrbyh0aGlzLmdldFVUQ01pbnV0ZXMoKSwyLDApKyI6IitvKHRoaXMuZ2V0VVRDU2Vjb25kcygpLDIsMCkrIi4iK28oZSwzLDApKyJaIn06dX0sWlVkODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigicHBHQiIpLG89bigiSFlBRiIpLGk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGksYSxjPVN0cmluZyhvKGUpKSx1PXIobikscz1jLmxlbmd0aDtyZXR1cm4gdTwwfHx1Pj1zP3Q/IiI6dm9pZCAwOihpPWMuY2hhckNvZGVBdCh1KSk8NTUyOTZ8fGk+NTYzMTl8fHUrMT09PXN8fChhPWMuY2hhckNvZGVBdCh1KzEpKTw1NjMyMHx8YT41NzM0Mz90P2MuY2hhckF0KHUpOmk6dD9jLnNsaWNlKHUsdSsyKTphLTU2MzIwKyhpLTU1Mjk2PDwxMCkrNjU1MzZ9fTt0LmV4cG9ydHM9e2NvZGVBdDppKCExKSxjaGFyQXQ6aSghMCl9fSxaV2FROmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigibS9MOCIpLmYsbz1uKCJmSE1ZIiksaT1uKCI0c3l3IiksYT1uKCIrTUx4IiksYz1uKCJHYXJVIiksdT1uKCJJbVpOIikscz1uKCJmZEF5IiksZj1uKCJKaVpiIiksbD1uKCJnNnYvIikscD1uKCI4WU9hIikuZmFzdEtleSxoPW4oImFmTzgiKSx2PWguc2V0LGQ9aC5nZXR0ZXJGb3I7dC5leHBvcnRzPXtnZXRDb25zdHJ1Y3RvcjpmdW5jdGlvbih0LGUsbixzKXt2YXIgZj10KChmdW5jdGlvbih0LHIpe2ModCxmLGUpLHYodCx7dHlwZTplLGluZGV4Om8obnVsbCksZmlyc3Q6dm9pZCAwLGxhc3Q6dm9pZCAwLHNpemU6MH0pLGx8fCh0LnNpemU9MCksbnVsbCE9ciYmdShyLHRbc10sdCxuKX0pKSxoPWQoZSksZz1mdW5jdGlvbih0LGUsbil7dmFyIHIsbyxpPWgodCksYT15KHQsZSk7cmV0dXJuIGE/YS52YWx1ZT1uOihpLmxhc3Q9YT17aW5kZXg6bz1wKGUsITApLGtleTplLHZhbHVlOm4scHJldmlvdXM6cj1pLmxhc3QsbmV4dDp2b2lkIDAscmVtb3ZlZDohMX0saS5maXJzdHx8KGkuZmlyc3Q9YSksciYmKHIubmV4dD1hKSxsP2kuc2l6ZSsrOnQuc2l6ZSsrLCJGIiE9PW8mJihpLmluZGV4W29dPWEpKSx0fSx5PWZ1bmN0aW9uKHQsZSl7dmFyIG4scj1oKHQpLG89cChlKTtpZigiRiIhPT1vKXJldHVybiByLmluZGV4W29dO2ZvcihuPXIuZmlyc3Q7bjtuPW4ubmV4dClpZihuLmtleT09ZSlyZXR1cm4gbn07cmV0dXJuIGkoZi5wcm90b3R5cGUse2NsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWgodGhpcyksZT10LmluZGV4LG49dC5maXJzdDtuOyluLnJlbW92ZWQ9ITAsbi5wcmV2aW91cyYmKG4ucHJldmlvdXM9bi5wcmV2aW91cy5uZXh0PXZvaWQgMCksZGVsZXRlIGVbbi5pbmRleF0sbj1uLm5leHQ7dC5maXJzdD10Lmxhc3Q9dm9pZCAwLGw/dC5zaXplPTA6dGhpcy5zaXplPTB9LGRlbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT1oKHRoaXMpLG49eSh0aGlzLHQpO2lmKG4pe3ZhciByPW4ubmV4dCxvPW4ucHJldmlvdXM7ZGVsZXRlIGUuaW5kZXhbbi5pbmRleF0sbi5yZW1vdmVkPSEwLG8mJihvLm5leHQ9ciksciYmKHIucHJldmlvdXM9byksZS5maXJzdD09biYmKGUuZmlyc3Q9ciksZS5sYXN0PT1uJiYoZS5sYXN0PW8pLGw/ZS5zaXplLS06dGhpcy5zaXplLS19cmV0dXJuISFufSxmb3JFYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPWgodGhpcykscj1hKHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7ZT1lP2UubmV4dDpuLmZpcnN0Oylmb3IocihlLnZhbHVlLGUua2V5LHRoaXMpO2UmJmUucmVtb3ZlZDspZT1lLnByZXZpb3VzfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISF5KHRoaXMsdCl9fSksaShmLnByb3RvdHlwZSxuP3tnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9eSh0aGlzLHQpO3JldHVybiBlJiZlLnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZyh0aGlzLDA9PT10PzA6dCxlKX19OnthZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcyx0PTA9PT10PzA6dCx0KX19KSxsJiZyKGYucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcykuc2l6ZX19KSxmfSxzZXRTdHJvbmc6ZnVuY3Rpb24odCxlLG4pe3ZhciByPWUrIiBJdGVyYXRvciIsbz1kKGUpLGk9ZChyKTtzKHQsZSwoZnVuY3Rpb24odCxlKXt2KHRoaXMse3R5cGU6cix0YXJnZXQ6dCxzdGF0ZTpvKHQpLGtpbmQ6ZSxsYXN0OnZvaWQgMH0pfSksKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWkodGhpcyksZT10LmtpbmQsbj10Lmxhc3Q7biYmbi5yZW1vdmVkOyluPW4ucHJldmlvdXM7cmV0dXJuIHQudGFyZ2V0JiYodC5sYXN0PW49bj9uLm5leHQ6dC5zdGF0ZS5maXJzdCk/ImtleXMiPT1lP3t2YWx1ZTpuLmtleSxkb25lOiExfToidmFsdWVzIj09ZT97dmFsdWU6bi52YWx1ZSxkb25lOiExfTp7dmFsdWU6W24ua2V5LG4udmFsdWVdLGRvbmU6ITF9Oih0LnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSl9KSxuPyJlbnRyaWVzIjoidmFsdWVzIiwhbiwhMCksZihlKX19fSxaZkR2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iiksbz1uKCI2TFdBIiksaT1uKCJ0aUtwIikoInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gbyh0KSYmKCJmdW5jdGlvbiIhPXR5cGVvZihuPXQuY29uc3RydWN0b3IpfHxuIT09QXJyYXkmJiFvKG4ucHJvdG90eXBlKT9yKG4pJiZudWxsPT09KG49bltpXSkmJihuPXZvaWQgMCk6bj12b2lkIDApLG5ldyh2b2lkIDA9PT1uP0FycmF5Om4pKDA9PT1lPzA6ZSl9fSxaazhYOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJzdXAiKX0se3N1cDpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsInN1cCIsIiIsIiIpfX0pfSxhNTduOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoInNlYXJjaCIpfSxhNU5LOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1NYXRoLmxvZyxpPU1hdGguTE9HMTBFO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMH0se2xvZzEwOmZ1bmN0aW9uKHQpe3JldHVybiBvKHQpKml9fSl9LGFmTzg6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8saSxhPW4oImY1cDEiKSxjPW4oIjJvUm8iKSx1PW4oImhoMXYiKSxzPW4oIlgyVSsiKSxmPW4oIlVUVlMiKSxsPW4oIjkzSTAiKSxwPW4oIjBCSzIiKTtpZihhKXt2YXIgaD1uZXcoMCxjLldlYWtNYXApLHY9aC5nZXQsZD1oLmhhcyxnPWguc2V0O3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZy5jYWxsKGgsdCxlKSxlfSxvPWZ1bmN0aW9uKHQpe3JldHVybiB2LmNhbGwoaCx0KXx8e319LGk9ZnVuY3Rpb24odCl7cmV0dXJuIGQuY2FsbChoLHQpfX1lbHNle3ZhciB5PWwoInN0YXRlIik7cFt5XT0hMCxyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHModCx5LGUpLGV9LG89ZnVuY3Rpb24odCl7cmV0dXJuIGYodCx5KT90W3ldOnt9fSxpPWZ1bmN0aW9uKHQpe3JldHVybiBmKHQseSl9fXQuZXhwb3J0cz17c2V0OnIsZ2V0Om8saGFzOmksZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gaSh0KT9vKHQpOnIodCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG47aWYoIXUoZSl8fChuPW8oZSkpLnR5cGUhPT10KXRocm93IFR5cGVFcnJvcigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3QrIiByZXF1aXJlZCIpO3JldHVybiBufX19fSwiYitWVCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIldLaUgiKS50cmltLGk9bigiV0prSiIpLGE9ci5wYXJzZUZsb2F0LGM9MS9hKGkrIi0wIikhPS0xLzA7dC5leHBvcnRzPWM/ZnVuY3Rpb24odCl7dmFyIGU9byhTdHJpbmcodCkpLG49YShlKTtyZXR1cm4gMD09PW4mJiItIj09ZS5jaGFyQXQoMCk/LTA6bn06YX0sYldGaDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIjJvUm8iKSxpPW4oImxNcTUiKSxhPW4oImJ1c0UiKSxjPW4oIjhZT2EiKSx1PW4oIkltWk4iKSxzPW4oIkdhclUiKSxmPW4oImhoMXYiKSxsPW4oIjBEa3kiKSxwPW4oIkhING8iKSxoPW4oIjFFNXoiKSx2PW4oImNWWUgiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sZCxnKXt2YXIgeT1vW3RdLGI9eSYmeS5wcm90b3R5cGUsbT15LGs9ZD8ic2V0IjoiYWRkIixfPXt9LHc9ZnVuY3Rpb24odCl7dmFyIGU9Ylt0XTthKGIsdCwiYWRkIj09dD9mdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxsKHRoaXMsMD09PXQ/MDp0KSx0aGlzfToiZGVsZXRlIj09dD9mdW5jdGlvbih0KXtyZXR1cm4hKGcmJiFmKHQpKSYmZS5jYWxsKHRoaXMsMD09PXQ/MDp0KX06ImdldCI9PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIGcmJiFmKHQpP3ZvaWQgMDplLmNhbGwodGhpcywwPT09dD8wOnQpfToiaGFzIj09dD9mdW5jdGlvbih0KXtyZXR1cm4hKGcmJiFmKHQpKSYmZS5jYWxsKHRoaXMsMD09PXQ/MDp0KX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5jYWxsKHRoaXMsMD09PXQ/MDp0LG4pLHRoaXN9KX07aWYoaSh0LCJmdW5jdGlvbiIhPXR5cGVvZiB5fHwhKGd8fGIuZm9yRWFjaCYmIWwoKGZ1bmN0aW9uKCl7KG5ldyB5KS5lbnRyaWVzKCkubmV4dCgpfSkpKSkpbT1uLmdldENvbnN0cnVjdG9yKGUsdCxkLGspLGMuUkVRVUlSRUQ9ITA7ZWxzZSBpZihpKHQsITApKXt2YXIgeD1uZXcgbSxTPXhba10oZz97fTotMCwxKSE9eCxFPWwoKGZ1bmN0aW9uKCl7eC5oYXMoMSl9KSksTz1wKChmdW5jdGlvbih0KXtuZXcgeSh0KX0pKSxUPSFnJiZsKChmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgeSxlPTU7ZS0tOyl0W2tdKGUsZSk7cmV0dXJuIXQuaGFzKC0wKX0pKTtPfHwoKG09ZSgoZnVuY3Rpb24oZSxuKXtzKGUsbSx0KTt2YXIgcj12KG5ldyB5LGUsbSk7cmV0dXJuIG51bGwhPW4mJnUobixyW2tdLHIsZCkscn0pKSkucHJvdG90eXBlPWIsYi5jb25zdHJ1Y3Rvcj1tKSwoRXx8VCkmJih3KCJkZWxldGUiKSx3KCJoYXMiKSxkJiZ3KCJnZXQiKSksKFR8fFMpJiZ3KGspLGcmJmIuY2xlYXImJmRlbGV0ZSBiLmNsZWFyfXJldHVybiBfW3RdPW0scih7Z2xvYmFsOiEwLGZvcmNlZDptIT15fSxfKSxoKG0sdCksZ3x8bi5zZXRTdHJvbmcobSx0LGQpLG19fSxicnAyOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiRGF0ZSIsc3RhdDohMH0se25vdzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfX0pfSxidXNFOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIiksbz1uKCJWcElUIiksaT1uKCJYMlUrIiksYT1uKCJVVFZTIiksYz1uKCJ6azYwIiksdT1uKCJub0dvIikscz1uKCJhZk84IiksZj1zLmdldCxsPXMuZW5mb3JjZSxwPVN0cmluZyh1KS5zcGxpdCgidG9TdHJpbmciKTtvKCJpbnNwZWN0U291cmNlIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUuY2FsbCh0KX0pKSwodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLG8pe3ZhciB1PSEhbyYmISFvLnVuc2FmZSxzPSEhbyYmISFvLmVudW1lcmFibGUsZj0hIW8mJiEhby5ub1RhcmdldEdldDsiZnVuY3Rpb24iPT10eXBlb2YgbiYmKCJzdHJpbmciIT10eXBlb2YgZXx8YShuLCJuYW1lIil8fGkobiwibmFtZSIsZSksbChuKS5zb3VyY2U9cC5qb2luKCJzdHJpbmciPT10eXBlb2YgZT9lOiIiKSksdCE9PXI/KHU/IWYmJnRbZV0mJihzPSEwKTpkZWxldGUgdFtlXSxzP3RbZV09bjppKHQsZSxuKSk6cz90W2VdPW46YyhlLG4pfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJmYodGhpcykuc291cmNlfHx1LmNhbGwodGhpcyl9KSl9LGNEa2U6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oIkJYL2IiKS5mO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcygxKX0pKX0se2dldE93blByb3BlcnR5TmFtZXM6aX0pfSxjVllIOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iiksbz1uKCIwcnZyIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxhO3JldHVybiBvJiYiZnVuY3Rpb24iPT10eXBlb2YoaT1lLmNvbnN0cnVjdG9yKSYmaSE9PW4mJnIoYT1pLnByb3RvdHlwZSkmJmEhPT1uLnByb3RvdHlwZSYmbyh0LGEpLHR9fSwiZEJnKyI6ZnVuY3Rpb24odCxlKXtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc30sImRHL24iOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJRbzlsIiksbz1uKCJVVFZTIiksaT1uKCJ3RExvIiksYT1uKCJtL0w4IikuZjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9ci5TeW1ib2x8fChyLlN5bWJvbD17fSk7byhlLHQpfHxhKGUsdCx7dmFsdWU6aS5mKHQpfSl9fSwiZURsKyI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sZUppUjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigianJVdiIpLGk9TWF0aC5leHA7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7dGFuaDpmdW5jdGlvbih0KXt2YXIgZT1vKHQ9K3QpLG49bygtdCk7cmV0dXJuIGU9PTEvMD8xOm49PTEvMD8tMTooZS1uKS8oaSh0KStpKC10KSl9fSl9LGVhanY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPU1hdGguYXNpbmgsaT1NYXRoLmxvZyxhPU1hdGguc3FydDtyKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiEobyYmMS9vKDApPjApfSx7YXNpbmg6ZnVuY3Rpb24gdChlKXtyZXR1cm4gaXNGaW5pdGUoZT0rZSkmJjAhPWU/ZTwwPy10KC1lKTppKGUrYShlKmUrMSkpOmV9fSl9LGVvTDg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oImc2di8iKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6IW8sc2hhbTohb30se2RlZmluZVByb3BlcnR5Om4oIm0vTDgiKS5mfSl9LGV3dlc6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkhZQUYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdChyKHQpKX19LGY1cDE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIm5vR28iKSxpPXIuV2Vha01hcDt0LmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIGkmJi9uYXRpdmUgY29kZS8udGVzdChvLmNhbGwoaSkpfSxmSE1ZOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnbHJrIiksbz1uKCJOK2cwIiksaT1uKCJlRGwrIiksYT1uKCIwQksyIiksYz1uKCJHK1J4IiksdT1uKCJ6Qko0Iikscz1uKCI5M0kwIikoIklFX1BST1RPIiksZj1mdW5jdGlvbigpe30sbD1mdW5jdGlvbigpe3ZhciB0LGU9dSgiaWZyYW1lIiksbj1pLmxlbmd0aDtmb3IoZS5zdHlsZS5kaXNwbGF5PSJub25lIixjLmFwcGVuZENoaWxkKGUpLGUuc3JjPVN0cmluZygiamF2YXNjcmlwdDoiKSwodD1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSx0LndyaXRlKCI8c2NyaXB0PmRvY3VtZW50LkY9T2JqZWN0PFwvc2NyaXB0PiIpLHQuY2xvc2UoKSxsPXQuRjtuLS07KWRlbGV0ZSBsLnByb3RvdHlwZVtpW25dXTtyZXR1cm4gbCgpfTt0LmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gbnVsbCE9PXQ/KGYucHJvdG90eXBlPXIodCksbj1uZXcgZixmLnByb3RvdHlwZT1udWxsLG5bc109dCk6bj1sKCksdm9pZCAwPT09ZT9uOm8obixlKX0sYVtzXT0hMH0sZmJDVzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oInR5Y1IiKS5maW5kLGk9bigiUk5JcyIpLGE9ITA7ImZpbmQiaW5bXSYmQXJyYXkoMSkuZmluZCgoZnVuY3Rpb24oKXthPSExfSkpLHIoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDphfSx7ZmluZDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGkoImZpbmQiKX0sZmRBeTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIm50T1UiKSxpPW4oIjRXT0QiKSxhPW4oIjBydnIiKSxjPW4oIjFFNXoiKSx1PW4oIlgyVSsiKSxzPW4oImJ1c0UiKSxmPW4oInRpS3AiKSxsPW4oInhEQlIiKSxwPW4oIlA0eTEiKSxoPW4oInJwTmsiKSx2PWguSXRlcmF0b3JQcm90b3R5cGUsZD1oLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsZz1mKCJpdGVyYXRvciIpLHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGYsaCxiLG0pe28obixlLGYpO3ZhciBrLF8sdyx4PWZ1bmN0aW9uKHQpe2lmKHQ9PT1oJiZJKXJldHVybiBJO2lmKCFkJiZ0IGluIE8pcmV0dXJuIE9bdF07c3dpdGNoKHQpe2Nhc2Uia2V5cyI6Y2FzZSJ2YWx1ZXMiOmNhc2UiZW50cmllcyI6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMsdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzKX19LFM9ZSsiIEl0ZXJhdG9yIixFPSExLE89dC5wcm90b3R5cGUsVD1PW2ddfHxPWyJAQGl0ZXJhdG9yIl18fGgmJk9baF0sST0hZCYmVHx8eChoKSxqPSJBcnJheSI9PWUmJk8uZW50cmllc3x8VDtpZihqJiYoaz1pKGouY2FsbChuZXcgdCkpLHYhPT1PYmplY3QucHJvdG90eXBlJiZrLm5leHQmJihsfHxpKGspPT09dnx8KGE/YShrLHYpOiJmdW5jdGlvbiIhPXR5cGVvZiBrW2ddJiZ1KGssZyx5KSksYyhrLFMsITAsITApLGwmJihwW1NdPXkpKSksInZhbHVlcyI9PWgmJlQmJiJ2YWx1ZXMiIT09VC5uYW1lJiYoRT0hMCxJPWZ1bmN0aW9uKCl7cmV0dXJuIFQuY2FsbCh0aGlzKX0pLGwmJiFtfHxPW2ddPT09SXx8dShPLGcsSSkscFtlXT1JLGgpaWYoXz17dmFsdWVzOngoInZhbHVlcyIpLGtleXM6Yj9JOngoImtleXMiKSxlbnRyaWVzOngoImVudHJpZXMiKX0sbSlmb3IodyBpbiBfKSFkJiYhRSYmdyBpbiBPfHxzKE8sdyxfW3ddKTtlbHNlIHIoe3RhcmdldDplLHByb3RvOiEwLGZvcmNlZDpkfHxFfSxfKTtyZXR1cm4gX319LGZ0S2c6ZnVuY3Rpb24odCxlLG4pe24oImJycDIiKSxuKCI5TFBqIiksbigick16NyIpLG4oIkRRTmEiKSxuKCI3K3pzIik7dmFyIHI9bigiUW85bCIpO3QuZXhwb3J0cz1yLkRhdGV9LCJnNnYvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMERreSIpO3QuZXhwb3J0cz0hcigoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sZ09DYjpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJyZXBsYWNlIil9LGdYSUs6ZnVuY3Rpb24odCxlLG4pe24oImRHL24iKSgidG9QcmltaXRpdmUiKX0sZ2JpVDpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJ1bnNjb3BhYmxlcyIpfSxnZFZsOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZXd2VyIpLG89bigiSTh2aCIpLGk9bigiVU1TUSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9cih0aGlzKSxuPWkoZS5sZW5ndGgpLGE9YXJndW1lbnRzLmxlbmd0aCxjPW8oYT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbiksdT1hPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxzPXZvaWQgMD09PXU/bjpvKHUsbik7cz5jOyllW2MrK109dDtyZXR1cm4gZX19LGdscms6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImhoMXYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXIodCkpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KSsiIGlzIG5vdCBhbiBvYmplY3QiKTtyZXR1cm4gdH19LGhCak46ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJ3RTZ2Iiksbz1uKCJtL0w4IiksaT1uKCJYR3dDIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgYT1yKGUpO2EgaW4gdD9vLmYodCxhLGkoMCxuKSk6dFthXT1ufX0saEJ5UTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjE0U2wiKSxvPW4oImdscmsiKSxpPW4oIkhZQUYiKSxhPW4oIkVwOUkiKSxjPW4oIkZNTk0iKTtyKCJzZWFyY2giLDEsKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bZnVuY3Rpb24oZSl7dmFyIG49aSh0aGlzKSxyPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PXI/ci5jYWxsKGUsbik6bmV3IFJlZ0V4cChlKVt0XShTdHJpbmcobikpfSxmdW5jdGlvbih0KXt2YXIgcj1uKGUsdCx0aGlzKTtpZihyLmRvbmUpcmV0dXJuIHIudmFsdWU7dmFyIGk9byh0KSx1PVN0cmluZyh0aGlzKSxzPWkubGFzdEluZGV4O2EocywwKXx8KGkubGFzdEluZGV4PTApO3ZhciBmPWMoaSx1KTtyZXR1cm4gYShpLmxhc3RJbmRleCxzKXx8KGkubGFzdEluZGV4PXMpLG51bGw9PT1mPy0xOmYuaW5kZXh9XX0pKX0sImhOL2ciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpLG4oIjBUV3AiKX0saFhwTzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSFlBRiIpLG89LyIvZzt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4saSl7dmFyIGE9U3RyaW5nKHIodCkpLGM9IjwiK2U7cmV0dXJuIiIhPT1uJiYoYys9IiAiK24rJz0iJytTdHJpbmcoaSkucmVwbGFjZShvLCImcXVvdDsiKSsnIicpLGMrIj4iK2ErIjwvIitlKyI+In19LGhoMXY6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0P251bGwhPT10OiJmdW5jdGlvbiI9PXR5cGVvZiB0fX0saTZRRjpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se2lzSW50ZWdlcjpuKCJYb2w4Iil9KX0saW5sQTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIlVNU1EiKSxpPW4oIldqUmIiKSxhPW4oIkhZQUYiKSxjPW4oInF4UFoiKSx1PSIiLmVuZHNXaXRoLHM9TWF0aC5taW47cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohYygiZW5kc1dpdGgiKX0se2VuZHNXaXRoOmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhhKHRoaXMpKTtpKHQpO3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLHI9byhlLmxlbmd0aCksYz12b2lkIDA9PT1uP3I6cyhvKG4pLHIpLGY9U3RyaW5nKHQpO3JldHVybiB1P3UuY2FsbChlLGYsYyk6ZS5zbGljZShjLWYubGVuZ3RoLGMpPT09Zn19KX0saXFXVzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIlpVZDgiKS5jaGFyQXQ7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZSsobj9yKHQsZSkubGVuZ3RoOjEpfX0sanJVdjpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguZXhwbTEscj1NYXRoLmV4cDt0LmV4cG9ydHM9IW58fG4oMTApPjIyMDI1LjQ2NTc5NDgwNjcxOHx8bigxMCk8MjIwMjUuNDY1Nzk0ODA2NzE4fHwtMmUtMTchPW4oLTJlLTE3KT9mdW5jdGlvbih0KXtyZXR1cm4gMD09KHQ9K3QpP3Q6dD4tMWUtNiYmdDwxZS02P3QrdCp0LzI6cih0KS0xfTpufSxqdDJGOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoIm1hdGNoQWxsIil9LGtOY1U6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPU1hdGgubG9nLGk9TWF0aC5MTjI7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7bG9nMjpmdW5jdGlvbih0KXtyZXR1cm4gbyh0KS9pfX0pfSxrT09sOmZ1bmN0aW9uKHQsZSl7dmFyIG49MCxyPU1hdGgucmFuZG9tKCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIitTdHJpbmcodm9pZCAwPT09dD8iIjp0KSsiKV8iKygrK24rcikudG9TdHJpbmcoMzYpfX0sa1NrbzpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se2lzTmFOOmZ1bmN0aW9uKHQpe3JldHVybiB0IT10fX0pfSxrbU1WOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbyxpPW4oInJXMHQiKSxhPVJlZ0V4cC5wcm90b3R5cGUuZXhlYyxjPVN0cmluZy5wcm90b3R5cGUucmVwbGFjZSx1PWEscz0obz0vYiovZyxhLmNhbGwocj0vYS8sImEiKSxhLmNhbGwobywiYSIpLDAhPT1yLmxhc3RJbmRleHx8MCE9PW8ubGFzdEluZGV4KSxmPXZvaWQgMCE9PS8oKT8/Ly5leGVjKCIiKVsxXTsoc3x8ZikmJih1PWZ1bmN0aQ=="
}

Changelog:

{
    "2019.12.04 14:00": "base64:PWQucHJvdG90eXBlLHk9L2EvZyxiPS9hL2csbT1uZXcgZCh5KSE9PXk7aWYociYmaSgiUmVnRXhwIiwhbXx8cCgoZnVuY3Rpb24oKXtyZXR1cm4gYlt2XT0hMSxkKHkpIT15fHxkKGIpPT1ifHwiL2EvaSIhPWQoeSwiaSIpfSkpKSl7Zm9yKHZhciBrPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcyBpbnN0YW5jZW9mIGsscj1zKHQpLG89dm9pZCAwPT09ZTtyZXR1cm4hbiYmciYmdC5jb25zdHJ1Y3Rvcj09PWsmJm8/dDphKG0/bmV3IGQociYmIW8/dC5zb3VyY2U6dCxlKTpkKChyPXQgaW5zdGFuY2VvZiBrKT90LnNvdXJjZTp0LHImJm8/Zi5jYWxsKHQpOmUpLG4/dGhpczpnLGspfSxfPWZ1bmN0aW9uKHQpe3QgaW4ga3x8YyhrLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZFt0XX0sc2V0OmZ1bmN0aW9uKGUpe2RbdF09ZX19KX0sdz11KGQpLHg9MDt3Lmxlbmd0aD54OylfKHdbeCsrXSk7Zy5jb25zdHJ1Y3Rvcj1rLGsucHJvdG90eXBlPWcsbChvLCJSZWdFeHAiLGspfWgoIlJlZ0V4cCIpfSxUV1FiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIvR3FVIiksbz1uKCJVTVNRIiksaT1uKCJJOHZoIiksYT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGEpe3ZhciBjLHU9cihlKSxzPW8odS5sZW5ndGgpLGY9aShhLHMpO2lmKHQmJm4hPW4pe2Zvcig7cz5mOylpZigoYz11W2YrK10pIT1jKXJldHVybiEwfWVsc2UgZm9yKDtzPmY7ZisrKWlmKCh0fHxmIGluIHUpJiZ1W2ZdPT09bilyZXR1cm4gdHx8Znx8MDtyZXR1cm4hdCYmLTF9fTt0LmV4cG9ydHM9e2luY2x1ZGVzOmEoITApLGluZGV4T2Y6YSghMSl9fSxUZVFGOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigidHljUiIpLmZpbHRlcjtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IW4oIkhkNWYiKSgiZmlsdGVyIil9LHtmaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sVGZUaTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIitNTHgiKSxvPW4oImV3dlciKSxpPW4oIm05Mm4iKSxhPW4oIjZWb0UiKSxjPW4oIlVNU1EiKSx1PW4oImhCak4iKSxzPW4oIk5hRlciKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUsbixmLGwscD1vKHQpLGg9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSx2PWFyZ3VtZW50cy5sZW5ndGgsZD12PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnPXZvaWQgMCE9PWQseT0wLGI9cyhwKTtpZihnJiYoZD1yKGQsdj4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMikpLG51bGw9PWJ8fGg9PUFycmF5JiZhKGIpKWZvcihuPW5ldyBoKGU9YyhwLmxlbmd0aCkpO2U+eTt5KyspdShuLHksZz9kKHBbeV0seSk6cFt5XSk7ZWxzZSBmb3IobD1iLmNhbGwocCksbj1uZXcgaDshKGY9bC5uZXh0KCkpLmRvbmU7eSsrKXUobix5LGc/aShsLGQsW2YudmFsdWUseV0sITApOmYudmFsdWUpO3JldHVybiBuLmxlbmd0aD15LG59fSxUb0p5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiSEF1TSIpLGk9bigiZXd2VyIpLGE9bigiMERreSIpLGM9bigic3dGTCIpLHU9W10uc29ydCxzPVsxLDIsM10sZj1hKChmdW5jdGlvbigpe3Muc29ydCh2b2lkIDApfSkpLGw9YSgoZnVuY3Rpb24oKXtzLnNvcnQobnVsbCl9KSkscD1jKCJzb3J0Iik7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOmZ8fCFsfHxwfSx7c29ydDpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD91LmNhbGwoaSh0aGlzKSk6dS5jYWxsKGkodGhpcyksbyh0KSl9fSl9LFRza3E6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJiV0ZoIiksbz1uKCJaV2FRIik7dC5leHBvcnRzPXIoIk1hcCIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19KSxvLCEwKX0sVTNmNDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigibS9MOCIpLGk9bigiclcwdCIpO3ImJiJnIiE9Ly4vZy5mbGFncyYmby5mKFJlZ0V4cC5wcm90b3R5cGUsImZsYWdzIix7Y29uZmlndXJhYmxlOiEwLGdldDppfSl9LFVNU1E6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInBwR0IiKSxvPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD4wP28ocih0KSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sVVRWUzpmdW5jdGlvbih0LGUpe3ZhciBuPXt9Lmhhc093blByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuLmNhbGwodCxlKX19LFVlc0w6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJnbHJrIiksbz1uKCJ3RTZ2Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciIT09dCYmIm51bWJlciIhPT10JiYiZGVmYXVsdCIhPT10KXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0IGhpbnQiKTtyZXR1cm4gbyhyKHRoaXMpLCJudW1iZXIiIT09dCl9fSxVeGxDOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMTRTbCIpLG89bigiZ2xyayIpLGk9bigiZXd2VyIpLGE9bigiVU1TUSIpLGM9bigicHBHQiIpLHU9bigiSFlBRiIpLHM9bigiaXFXVyIpLGY9bigiRk1OTSIpLGw9TWF0aC5tYXgscD1NYXRoLm1pbixoPU1hdGguZmxvb3Isdj0vXCQoWyQmJ2BdfFxkXGQ/fDxbXj5dKj4pL2csZD0vXCQoWyQmJ2BdfFxkXGQ/KS9nO3IoInJlcGxhY2UiLDIsKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bZnVuY3Rpb24obixyKXt2YXIgbz11KHRoaXMpLGk9bnVsbD09bj92b2lkIDA6blt0XTtyZXR1cm4gdm9pZCAwIT09aT9pLmNhbGwobixvLHIpOmUuY2FsbChTdHJpbmcobyksbixyKX0sZnVuY3Rpb24odCxpKXt2YXIgdT1uKGUsdCx0aGlzLGkpO2lmKHUuZG9uZSlyZXR1cm4gdS52YWx1ZTt2YXIgaD1vKHQpLHY9U3RyaW5nKHRoaXMpLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIGk7ZHx8KGk9U3RyaW5nKGkpKTt2YXIgZz1oLmdsb2JhbDtpZihnKXt2YXIgeT1oLnVuaWNvZGU7aC5sYXN0SW5kZXg9MH1mb3IodmFyIGI9W107Oyl7dmFyIG09ZihoLHYpO2lmKG51bGw9PT1tKWJyZWFrO2lmKGIucHVzaChtKSwhZylicmVhazsiIj09PVN0cmluZyhtWzBdKSYmKGgubGFzdEluZGV4PXModixhKGgubGFzdEluZGV4KSx5KSl9Zm9yKHZhciBrLF89IiIsdz0wLHg9MDt4PGIubGVuZ3RoO3grKyl7bT1iW3hdO2Zvcih2YXIgUz1TdHJpbmcobVswXSksRT1sKHAoYyhtLmluZGV4KSx2Lmxlbmd0aCksMCksTz1bXSxUPTE7VDxtLmxlbmd0aDtUKyspTy5wdXNoKHZvaWQgMD09PShrPW1bVF0pP2s6U3RyaW5nKGspKTt2YXIgST1tLmdyb3VwcztpZihkKXt2YXIgaj1bU10uY29uY2F0KE8sRSx2KTt2b2lkIDAhPT1JJiZqLnB1c2goSSk7dmFyIE09U3RyaW5nKGkuYXBwbHkodm9pZCAwLGopKX1lbHNlIE09cihTLHYsRSxPLEksaSk7RT49dyYmKF8rPXYuc2xpY2UodyxFKStNLHc9RStTLmxlbmd0aCl9cmV0dXJuIF8rdi5zbGljZSh3KX1dO2Z1bmN0aW9uIHIodCxuLHIsbyxhLGMpe3ZhciB1PXIrdC5sZW5ndGgscz1vLmxlbmd0aCxmPWQ7cmV0dXJuIHZvaWQgMCE9PWEmJihhPWkoYSksZj12KSxlLmNhbGwoYyxmLChmdW5jdGlvbihlLGkpe3ZhciBjO3N3aXRjaChpLmNoYXJBdCgwKSl7Y2FzZSIkIjpyZXR1cm4iJCI7Y2FzZSImIjpyZXR1cm4gdDtjYXNlImAiOnJldHVybiBuLnNsaWNlKDAscik7Y2FzZSInIjpyZXR1cm4gbi5zbGljZSh1KTtjYXNlIjwiOmM9YVtpLnNsaWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBmPStpO2lmKDA9PT1mKXJldHVybiBlO2lmKGY+cyl7dmFyIGw9aChmLzEwKTtyZXR1cm4gMD09PWw/ZTpsPD1zP3ZvaWQgMD09PW9bbC0xXT9pLmNoYXJBdCgxKTpvW2wtMV0raS5jaGFyQXQoMSk6ZX1jPW9bZi0xXX1yZXR1cm4gdm9pZCAwPT09Yz8iIjpjfSkpfX0pKX0sVXlkeTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiSHNIQSIpLGk9TWF0aC5hY29zaCxhPU1hdGgubG9nLGM9TWF0aC5zcXJ0LHU9TWF0aC5MTjI7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohaXx8NzEwIT1NYXRoLmZsb29yKGkoTnVtYmVyLk1BWF9WQUxVRSkpfHxpKDEvMCkhPTEvMH0se2Fjb3NoOmZ1bmN0aW9uKHQpe3JldHVybih0PSt0KTwxP05hTjp0Pjk0OTA2MjY1LjYyNDI1MTU2P2EodCkrdTpvKHQtMStjKHQtMSkqYyh0KzEpKX19KX0sVkMzTDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oIlFJcGQiKSxhPTEuLnRvUHJlY2lzaW9uO3Ioe3RhcmdldDoiTnVtYmVyIixwcm90bzohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXtyZXR1cm4iMSIhPT1hLmNhbGwoMSx2b2lkIDApfSkpfHwhbygoZnVuY3Rpb24oKXthLmNhbGwoe30pfSkpfSx7dG9QcmVjaXNpb246ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/YS5jYWxsKGkodGhpcykpOmEuY2FsbChpKHRoaXMpLHQpfX0pfSxWcElUOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIiksbz1uKCJ6azYwIiksaT1uKCJ4REJSIiksYT1yWyJfX2NvcmUtanNfc2hhcmVkX18iXXx8bygiX19jb3JlLWpzX3NoYXJlZF9fIix7fSk7KHQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBhW3RdfHwoYVt0XT12b2lkIDAhPT1lP2U6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy4yLjEiLG1vZGU6aT8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiLCqSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIn0pfSxWdTgxOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwR2JZIiksbz1uKCJKQnk4IiksaT1uKCJkQmcrIiksYT1uKCJnbHJrIik7dC5leHBvcnRzPXIoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKHQpe3ZhciBlPW8uZihhKHQpKSxuPWkuZjtyZXR1cm4gbj9lLmNvbmNhdChuKHQpKTplfX0sV0RzUjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiWG9sOCIpLGk9TWF0aC5hYnM7cih7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITB9LHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKHQpe3JldHVybiBvKHQpJiZpKHQpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSxXSmtKOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPSJcdFxuXHZcZlxyIMKg4ZqA4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCv4oGf44CAXHUyMDI4XHUyMDI5XHVmZWZmIn0sV0tpSDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSFlBRiIpLG89IlsiK24oIldKa0oiKSsiXSIsaT1SZWdFeHAoIl4iK28rbysiKiIpLGE9UmVnRXhwKG8rbysiKiQiKSxjPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbj1TdHJpbmcocihlKSk7cmV0dXJuIDEmdCYmKG49bi5yZXBsYWNlKGksIiIpKSwyJnQmJihuPW4ucmVwbGFjZShhLCIiKSksbn19O3QuZXhwb3J0cz17c3RhcnQ6YygxKSxlbmQ6YygyKSx0cmltOmMoMyl9fSxXalJiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJST2RQIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHIodCkpdGhyb3cgVHlwZUVycm9yKCJUaGUgbWV0aG9kIGRvZXNuJ3QgYWNjZXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnMiKTtyZXR1cm4gdH19LCJYMlUrIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigibS9MOCIpLGk9bigiWEd3QyIpO3QuZXhwb3J0cz1yP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm4gby5mKHQsZSxpKDEsbikpfTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bix0fX0sWEd3QzpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybntlbnVtZXJhYmxlOiEoMSZ0KSxjb25maWd1cmFibGU6ISgyJnQpLHdyaXRhYmxlOiEoNCZ0KSx2YWx1ZTplfX19LFhlM0w6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCIwRGt5IiksaT1uKCJoQmpOIik7cih7dGFyZ2V0OiJBcnJheSIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiEoQXJyYXkub2YuY2FsbCh0KWluc3RhbmNlb2YgdCl9KSl9LHtvZjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldygiZnVuY3Rpb24iPT10eXBlb2YgdGhpcz90aGlzOkFycmF5KShlKTtlPnQ7KWkobix0LGFyZ3VtZW50c1t0KytdKTtyZXR1cm4gbi5sZW5ndGg9ZSxufX0pfSxYb2w4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iiksbz1NYXRoLmZsb29yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4hcih0KSYmaXNGaW5pdGUodCkmJm8odCk9PT10fX0sWUdLNDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImJXRmgiKSxvPW4oIlpXYVEiKTt0LmV4cG9ydHM9cigiU2V0IiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0pLG8pfSxZTnJWOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZzZ2LyIpLG89bigiMERreSIpLGk9bigiMzNXaCIpLGE9bigiZEJnKyIpLGM9bigiMGVlZiIpLHU9bigiZXd2VyIpLHM9bigiUkszdCIpLGY9T2JqZWN0LmFzc2lnbjt0LmV4cG9ydHM9IWZ8fG8oKGZ1bmN0aW9uKCl7dmFyIHQ9e30sZT17fSxuPVN5bWJvbCgpO3JldHVybiB0W25dPTcsImFiY2RlZmdoaWprbG1ub3BxcnN0Ii5zcGxpdCgiIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT10fSkpLDchPWYoe30sdClbbl18fCJhYmNkZWZnaGlqa2xtbm9wcXJzdCIhPWkoZih7fSxlKSkuam9pbigiIil9KSk/ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dSh0KSxvPWFyZ3VtZW50cy5sZW5ndGgsZj0xLGw9YS5mLHA9Yy5mO28+ZjspZm9yKHZhciBoLHY9cyhhcmd1bWVudHNbZisrXSksZD1sP2kodikuY29uY2F0KGwodikpOmkodiksZz1kLmxlbmd0aCx5PTA7Zz55OyloPWRbeSsrXSxyJiYhcC5jYWxsKHYsaCl8fChuW2hdPXZbaF0pO3JldHVybiBufTpmfSxaT1hiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMERreSIpLG89bigiRE10MiIpLnN0YXJ0LGk9TWF0aC5hYnMsYT1EYXRlLnByb3RvdHlwZSxjPWEuZ2V0VGltZSx1PWEudG9JU09TdHJpbmc7dC5leHBvcnRzPXIoKGZ1bmN0aW9uKCl7cmV0dXJuIjAzODUtMDctMjVUMDc6MDY6MzkuOTk5WiIhPXUuY2FsbChuZXcgRGF0ZSgtNWUxMy0xKSl9KSl8fCFyKChmdW5jdGlvbigpe3UuY2FsbChuZXcgRGF0ZShOYU4pKX0pKT9mdW5jdGlvbigpe2lmKCFpc0Zpbml0ZShjLmNhbGwodGhpcykpKXRocm93IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO3ZhciB0PXRoaXMuZ2V0VVRDRnVsbFllYXIoKSxlPXRoaXMuZ2V0VVRDTWlsbGlzZWNvbmRzKCksbj10PDA/Ii0iOnQ+OTk5OT8iKyI6IiI7cmV0dXJuIG4rbyhpKHQpLG4/Njo0LDApKyItIitvKHRoaXMuZ2V0VVRDTW9udGgoKSsxLDIsMCkrIi0iK28odGhpcy5nZXRVVENEYXRlKCksMiwwKSsiVCIrbyh0aGlzLmdldFVUQ0hvdXJzKCksMiwwKSsiOiIrbyh0aGlzLmdldFVUQ01pbnV0ZXMoKSwyLDApKyI6IitvKHRoaXMuZ2V0VVRDU2Vjb25kcygpLDIsMCkrIi4iK28oZSwzLDApKyJaIn06dX0sWlVkODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigicHBHQiIpLG89bigiSFlBRiIpLGk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7dmFyIGksYSxjPVN0cmluZyhvKGUpKSx1PXIobikscz1jLmxlbmd0aDtyZXR1cm4gdTwwfHx1Pj1zP3Q/IiI6dm9pZCAwOihpPWMuY2hhckNvZGVBdCh1KSk8NTUyOTZ8fGk+NTYzMTl8fHUrMT09PXN8fChhPWMuY2hhckNvZGVBdCh1KzEpKTw1NjMyMHx8YT41NzM0Mz90P2MuY2hhckF0KHUpOmk6dD9jLnNsaWNlKHUsdSsyKTphLTU2MzIwKyhpLTU1Mjk2PDwxMCkrNjU1MzZ9fTt0LmV4cG9ydHM9e2NvZGVBdDppKCExKSxjaGFyQXQ6aSghMCl9fSxaV2FROmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigibS9MOCIpLmYsbz1uKCJmSE1ZIiksaT1uKCI0c3l3IiksYT1uKCIrTUx4IiksYz1uKCJHYXJVIiksdT1uKCJJbVpOIikscz1uKCJmZEF5IiksZj1uKCJKaVpiIiksbD1uKCJnNnYvIikscD1uKCI4WU9hIikuZmFzdEtleSxoPW4oImFmTzgiKSx2PWguc2V0LGQ9aC5nZXR0ZXJGb3I7dC5leHBvcnRzPXtnZXRDb25zdHJ1Y3RvcjpmdW5jdGlvbih0LGUsbixzKXt2YXIgZj10KChmdW5jdGlvbih0LHIpe2ModCxmLGUpLHYodCx7dHlwZTplLGluZGV4Om8obnVsbCksZmlyc3Q6dm9pZCAwLGxhc3Q6dm9pZCAwLHNpemU6MH0pLGx8fCh0LnNpemU9MCksbnVsbCE9ciYmdShyLHRbc10sdCxuKX0pKSxoPWQoZSksZz1mdW5jdGlvbih0LGUsbil7dmFyIHIsbyxpPWgodCksYT15KHQsZSk7cmV0dXJuIGE/YS52YWx1ZT1uOihpLmxhc3Q9YT17aW5kZXg6bz1wKGUsITApLGtleTplLHZhbHVlOm4scHJldmlvdXM6cj1pLmxhc3QsbmV4dDp2b2lkIDAscmVtb3ZlZDohMX0saS5maXJzdHx8KGkuZmlyc3Q9YSksciYmKHIubmV4dD1hKSxsP2kuc2l6ZSsrOnQuc2l6ZSsrLCJGIiE9PW8mJihpLmluZGV4W29dPWEpKSx0fSx5PWZ1bmN0aW9uKHQsZSl7dmFyIG4scj1oKHQpLG89cChlKTtpZigiRiIhPT1vKXJldHVybiByLmluZGV4W29dO2ZvcihuPXIuZmlyc3Q7bjtuPW4ubmV4dClpZihuLmtleT09ZSlyZXR1cm4gbn07cmV0dXJuIGkoZi5wcm90b3R5cGUse2NsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWgodGhpcyksZT10LmluZGV4LG49dC5maXJzdDtuOyluLnJlbW92ZWQ9ITAsbi5wcmV2aW91cyYmKG4ucHJldmlvdXM9bi5wcmV2aW91cy5uZXh0PXZvaWQgMCksZGVsZXRlIGVbbi5pbmRleF0sbj1uLm5leHQ7dC5maXJzdD10Lmxhc3Q9dm9pZCAwLGw/dC5zaXplPTA6dGhpcy5zaXplPTB9LGRlbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT1oKHRoaXMpLG49eSh0aGlzLHQpO2lmKG4pe3ZhciByPW4ubmV4dCxvPW4ucHJldmlvdXM7ZGVsZXRlIGUuaW5kZXhbbi5pbmRleF0sbi5yZW1vdmVkPSEwLG8mJihvLm5leHQ9ciksciYmKHIucHJldmlvdXM9byksZS5maXJzdD09biYmKGUuZmlyc3Q9ciksZS5sYXN0PT1uJiYoZS5sYXN0PW8pLGw/ZS5zaXplLS06dGhpcy5zaXplLS19cmV0dXJuISFufSxmb3JFYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPWgodGhpcykscj1hKHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7ZT1lP2UubmV4dDpuLmZpcnN0Oylmb3IocihlLnZhbHVlLGUua2V5LHRoaXMpO2UmJmUucmVtb3ZlZDspZT1lLnByZXZpb3VzfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISF5KHRoaXMsdCl9fSksaShmLnByb3RvdHlwZSxuP3tnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9eSh0aGlzLHQpO3JldHVybiBlJiZlLnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZyh0aGlzLDA9PT10PzA6dCxlKX19OnthZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcyx0PTA9PT10PzA6dCx0KX19KSxsJiZyKGYucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcykuc2l6ZX19KSxmfSxzZXRTdHJvbmc6ZnVuY3Rpb24odCxlLG4pe3ZhciByPWUrIiBJdGVyYXRvciIsbz1kKGUpLGk9ZChyKTtzKHQsZSwoZnVuY3Rpb24odCxlKXt2KHRoaXMse3R5cGU6cix0YXJnZXQ6dCxzdGF0ZTpvKHQpLGtpbmQ6ZSxsYXN0OnZvaWQgMH0pfSksKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWkodGhpcyksZT10LmtpbmQsbj10Lmxhc3Q7biYmbi5yZW1vdmVkOyluPW4ucHJldmlvdXM7cmV0dXJuIHQudGFyZ2V0JiYodC5sYXN0PW49bj9uLm5leHQ6dC5zdGF0ZS5maXJzdCk/ImtleXMiPT1lP3t2YWx1ZTpuLmtleSxkb25lOiExfToidmFsdWVzIj09ZT97dmFsdWU6bi52YWx1ZSxkb25lOiExfTp7dmFsdWU6W24ua2V5LG4udmFsdWVdLGRvbmU6ITF9Oih0LnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSl9KSxuPyJlbnRyaWVzIjoidmFsdWVzIiwhbiwhMCksZihlKX19fSxaZkR2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iiksbz1uKCI2TFdBIiksaT1uKCJ0aUtwIikoInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gbyh0KSYmKCJmdW5jdGlvbiIhPXR5cGVvZihuPXQuY29uc3RydWN0b3IpfHxuIT09QXJyYXkmJiFvKG4ucHJvdG90eXBlKT9yKG4pJiZudWxsPT09KG49bltpXSkmJihuPXZvaWQgMCk6bj12b2lkIDApLG5ldyh2b2lkIDA9PT1uP0FycmF5Om4pKDA9PT1lPzA6ZSl9fSxaazhYOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJzdXAiKX0se3N1cDpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsInN1cCIsIiIsIiIpfX0pfSxhNTduOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoInNlYXJjaCIpfSxhNU5LOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1NYXRoLmxvZyxpPU1hdGguTE9HMTBFO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMH0se2xvZzEwOmZ1bmN0aW9uKHQpe3JldHVybiBvKHQpKml9fSl9LGFmTzg6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8saSxhPW4oImY1cDEiKSxjPW4oIjJvUm8iKSx1PW4oImhoMXYiKSxzPW4oIlgyVSsiKSxmPW4oIlVUVlMiKSxsPW4oIjkzSTAiKSxwPW4oIjBCSzIiKTtpZihhKXt2YXIgaD1uZXcoMCxjLldlYWtNYXApLHY9aC5nZXQsZD1oLmhhcyxnPWguc2V0O3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZy5jYWxsKGgsdCxlKSxlfSxvPWZ1bmN0aW9uKHQpe3JldHVybiB2LmNhbGwoaCx0KXx8e319LGk9ZnVuY3Rpb24odCl7cmV0dXJuIGQuY2FsbChoLHQpfX1lbHNle3ZhciB5PWwoInN0YXRlIik7cFt5XT0hMCxyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHModCx5LGUpLGV9LG89ZnVuY3Rpb24odCl7cmV0dXJuIGYodCx5KT90W3ldOnt9fSxpPWZ1bmN0aW9uKHQpe3JldHVybiBmKHQseSl9fXQuZXhwb3J0cz17c2V0OnIsZ2V0Om8saGFzOmksZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gaSh0KT9vKHQpOnIodCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG47aWYoIXUoZSl8fChuPW8oZSkpLnR5cGUhPT10KXRocm93IFR5cGVFcnJvcigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3QrIiByZXF1aXJlZCIpO3JldHVybiBufX19fSwiYitWVCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIldLaUgiKS50cmltLGk9bigiV0prSiIpLGE9ci5wYXJzZUZsb2F0LGM9MS9hKGkrIi0wIikhPS0xLzA7dC5leHBvcnRzPWM/ZnVuY3Rpb24odCl7dmFyIGU9byhTdHJpbmcodCkpLG49YShlKTtyZXR1cm4gMD09PW4mJiItIj09ZS5jaGFyQXQoMCk/LTA6bn06YX0sYldGaDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIjJvUm8iKSxpPW4oImxNcTUiKSxhPW4oImJ1c0UiKSxjPW4oIjhZT2EiKSx1PW4oIkltWk4iKSxzPW4oIkdhclUiKSxmPW4oImhoMXYiKSxsPW4oIjBEa3kiKSxwPW4oIkhING8iKSxoPW4oIjFFNXoiKSx2PW4oImNWWUgiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sZCxnKXt2YXIgeT1vW3RdLGI9eSYmeS5wcm90b3R5cGUsbT15LGs9ZD8ic2V0IjoiYWRkIixfPXt9LHc9ZnVuY3Rpb24odCl7dmFyIGU9Ylt0XTthKGIsdCwiYWRkIj09dD9mdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxsKHRoaXMsMD09PXQ/MDp0KSx0aGlzfToiZGVsZXRlIj09dD9mdW5jdGlvbih0KXtyZXR1cm4hKGcmJiFmKHQpKSYmZS5jYWxsKHRoaXMsMD09PXQ/MDp0KX06ImdldCI9PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIGcmJiFmKHQpP3ZvaWQgMDplLmNhbGwodGhpcywwPT09dD8wOnQpfToiaGFzIj09dD9mdW5jdGlvbih0KXtyZXR1cm4hKGcmJiFmKHQpKSYmZS5jYWxsKHRoaXMsMD09PXQ/MDp0KX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5jYWxsKHRoaXMsMD09PXQ/MDp0LG4pLHRoaXN9KX07aWYoaSh0LCJmdW5jdGlvbiIhPXR5cGVvZiB5fHwhKGd8fGIuZm9yRWFjaCYmIWwoKGZ1bmN0aW9uKCl7KG5ldyB5KS5lbnRyaWVzKCkubmV4dCgpfSkpKSkpbT1uLmdldENvbnN0cnVjdG9yKGUsdCxkLGspLGMuUkVRVUlSRUQ9ITA7ZWxzZSBpZihpKHQsITApKXt2YXIgeD1uZXcgbSxTPXhba10oZz97fTotMCwxKSE9eCxFPWwoKGZ1bmN0aW9uKCl7eC5oYXMoMSl9KSksTz1wKChmdW5jdGlvbih0KXtuZXcgeSh0KX0pKSxUPSFnJiZsKChmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgeSxlPTU7ZS0tOyl0W2tdKGUsZSk7cmV0dXJuIXQuaGFzKC0wKX0pKTtPfHwoKG09ZSgoZnVuY3Rpb24oZSxuKXtzKGUsbSx0KTt2YXIgcj12KG5ldyB5LGUsbSk7cmV0dXJuIG51bGwhPW4mJnUobixyW2tdLHIsZCkscn0pKSkucHJvdG90eXBlPWIsYi5jb25zdHJ1Y3Rvcj1tKSwoRXx8VCkmJih3KCJkZWxldGUiKSx3KCJoYXMiKSxkJiZ3KCJnZXQiKSksKFR8fFMpJiZ3KGspLGcmJmIuY2xlYXImJmRlbGV0ZSBiLmNsZWFyfXJldHVybiBfW3RdPW0scih7Z2xvYmFsOiEwLGZvcmNlZDptIT15fSxfKSxoKG0sdCksZ3x8bi5zZXRTdHJvbmcobSx0LGQpLG19fSxicnAyOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiRGF0ZSIsc3RhdDohMH0se25vdzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfX0pfSxidXNFOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIiksbz1uKCJWcElUIiksaT1uKCJYMlUrIiksYT1uKCJVVFZTIiksYz1uKCJ6azYwIiksdT1uKCJub0dvIikscz1uKCJhZk84IiksZj1zLmdldCxsPXMuZW5mb3JjZSxwPVN0cmluZyh1KS5zcGxpdCgidG9TdHJpbmciKTtvKCJpbnNwZWN0U291cmNlIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUuY2FsbCh0KX0pKSwodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLG8pe3ZhciB1PSEhbyYmISFvLnVuc2FmZSxzPSEhbyYmISFvLmVudW1lcmFibGUsZj0hIW8mJiEhby5ub1RhcmdldEdldDsiZnVuY3Rpb24iPT10eXBlb2YgbiYmKCJzdHJpbmciIT10eXBlb2YgZXx8YShuLCJuYW1lIil8fGkobiwibmFtZSIsZSksbChuKS5zb3VyY2U9cC5qb2luKCJzdHJpbmciPT10eXBlb2YgZT9lOiIiKSksdCE9PXI/KHU/IWYmJnRbZV0mJihzPSEwKTpkZWxldGUgdFtlXSxzP3RbZV09bjppKHQsZSxuKSk6cz90W2VdPW46YyhlLG4pfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJmYodGhpcykuc291cmNlfHx1LmNhbGwodGhpcyl9KSl9LGNEa2U6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oIjBEa3kiKSxpPW4oIkJYL2IiKS5mO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcygxKX0pKX0se2dldE93blByb3BlcnR5TmFtZXM6aX0pfSxjVllIOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iiksbz1uKCIwcnZyIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxhO3JldHVybiBvJiYiZnVuY3Rpb24iPT10eXBlb2YoaT1lLmNvbnN0cnVjdG9yKSYmaSE9PW4mJnIoYT1pLnByb3RvdHlwZSkmJmEhPT1uLnByb3RvdHlwZSYmbyh0LGEpLHR9fSwiZEJnKyI6ZnVuY3Rpb24odCxlKXtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc30sImRHL24iOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJRbzlsIiksbz1uKCJVVFZTIiksaT1uKCJ3RExvIiksYT1uKCJtL0w4IikuZjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9ci5TeW1ib2x8fChyLlN5bWJvbD17fSk7byhlLHQpfHxhKGUsdCx7dmFsdWU6aS5mKHQpfSl9fSwiZURsKyI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXX0sZUppUjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigianJVdiIpLGk9TWF0aC5leHA7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7dGFuaDpmdW5jdGlvbih0KXt2YXIgZT1vKHQ9K3QpLG49bygtdCk7cmV0dXJuIGU9PTEvMD8xOm49PTEvMD8tMTooZS1uKS8oaSh0KStpKC10KSl9fSl9LGVhanY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPU1hdGguYXNpbmgsaT1NYXRoLmxvZyxhPU1hdGguc3FydDtyKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITAsZm9yY2VkOiEobyYmMS9vKDApPjApfSx7YXNpbmg6ZnVuY3Rpb24gdChlKXtyZXR1cm4gaXNGaW5pdGUoZT0rZSkmJjAhPWU/ZTwwPy10KC1lKTppKGUrYShlKmUrMSkpOmV9fSl9LGVvTDg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPW4oImc2di8iKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6IW8sc2hhbTohb30se2RlZmluZVByb3BlcnR5Om4oIm0vTDgiKS5mfSl9LGV3dlc6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkhZQUYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdChyKHQpKX19LGY1cDE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIm5vR28iKSxpPXIuV2Vha01hcDt0LmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIGkmJi9uYXRpdmUgY29kZS8udGVzdChvLmNhbGwoaSkpfSxmSE1ZOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnbHJrIiksbz1uKCJOK2cwIiksaT1uKCJlRGwrIiksYT1uKCIwQksyIiksYz1uKCJHK1J4IiksdT1uKCJ6Qko0Iikscz1uKCI5M0kwIikoIklFX1BST1RPIiksZj1mdW5jdGlvbigpe30sbD1mdW5jdGlvbigpe3ZhciB0LGU9dSgiaWZyYW1lIiksbj1pLmxlbmd0aDtmb3IoZS5zdHlsZS5kaXNwbGF5PSJub25lIixjLmFwcGVuZENoaWxkKGUpLGUuc3JjPVN0cmluZygiamF2YXNjcmlwdDoiKSwodD1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSx0LndyaXRlKCI8c2NyaXB0PmRvY3VtZW50LkY9T2JqZWN0PFwvc2NyaXB0PiIpLHQuY2xvc2UoKSxsPXQuRjtuLS07KWRlbGV0ZSBsLnByb3RvdHlwZVtpW25dXTtyZXR1cm4gbCgpfTt0LmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gbnVsbCE9PXQ/KGYucHJvdG90eXBlPXIodCksbj1uZXcgZixmLnByb3RvdHlwZT1udWxsLG5bc109dCk6bj1sKCksdm9pZCAwPT09ZT9uOm8obixlKX0sYVtzXT0hMH0sZmJDVzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oInR5Y1IiKS5maW5kLGk9bigiUk5JcyIpLGE9ITA7ImZpbmQiaW5bXSYmQXJyYXkoMSkuZmluZCgoZnVuY3Rpb24oKXthPSExfSkpLHIoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDphfSx7ZmluZDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGkoImZpbmQiKX0sZmRBeTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIm50T1UiKSxpPW4oIjRXT0QiKSxhPW4oIjBydnIiKSxjPW4oIjFFNXoiKSx1PW4oIlgyVSsiKSxzPW4oImJ1c0UiKSxmPW4oInRpS3AiKSxsPW4oInhEQlIiKSxwPW4oIlA0eTEiKSxoPW4oInJwTmsiKSx2PWguSXRlcmF0b3JQcm90b3R5cGUsZD1oLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsZz1mKCJpdGVyYXRvciIpLHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGYsaCxiLG0pe28obixlLGYpO3ZhciBrLF8sdyx4PWZ1bmN0aW9uKHQpe2lmKHQ9PT1oJiZJKXJldHVybiBJO2lmKCFkJiZ0IGluIE8pcmV0dXJuIE9bdF07c3dpdGNoKHQpe2Nhc2Uia2V5cyI6Y2FzZSJ2YWx1ZXMiOmNhc2UiZW50cmllcyI6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMsdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzKX19LFM9ZSsiIEl0ZXJhdG9yIixFPSExLE89dC5wcm90b3R5cGUsVD1PW2ddfHxPWyJAQGl0ZXJhdG9yIl18fGgmJk9baF0sST0hZCYmVHx8eChoKSxqPSJBcnJheSI9PWUmJk8uZW50cmllc3x8VDtpZihqJiYoaz1pKGouY2FsbChuZXcgdCkpLHYhPT1PYmplY3QucHJvdG90eXBlJiZrLm5leHQmJihsfHxpKGspPT09dnx8KGE/YShrLHYpOiJmdW5jdGlvbiIhPXR5cGVvZiBrW2ddJiZ1KGssZyx5KSksYyhrLFMsITAsITApLGwmJihwW1NdPXkpKSksInZhbHVlcyI9PWgmJlQmJiJ2YWx1ZXMiIT09VC5uYW1lJiYoRT0hMCxJPWZ1bmN0aW9uKCl7cmV0dXJuIFQuY2FsbCh0aGlzKX0pLGwmJiFtfHxPW2ddPT09SXx8dShPLGcsSSkscFtlXT1JLGgpaWYoXz17dmFsdWVzOngoInZhbHVlcyIpLGtleXM6Yj9JOngoImtleXMiKSxlbnRyaWVzOngoImVudHJpZXMiKX0sbSlmb3IodyBpbiBfKSFkJiYhRSYmdyBpbiBPfHxzKE8sdyxfW3ddKTtlbHNlIHIoe3RhcmdldDplLHByb3RvOiEwLGZvcmNlZDpkfHxFfSxfKTtyZXR1cm4gX319LGZ0S2c6ZnVuY3Rpb24odCxlLG4pe24oImJycDIiKSxuKCI5TFBqIiksbigick16NyIpLG4oIkRRTmEiKSxuKCI3K3pzIik7dmFyIHI9bigiUW85bCIpO3QuZXhwb3J0cz1yLkRhdGV9LCJnNnYvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMERreSIpO3QuZXhwb3J0cz0hcigoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sZ09DYjpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJyZXBsYWNlIil9LGdYSUs6ZnVuY3Rpb24odCxlLG4pe24oImRHL24iKSgidG9QcmltaXRpdmUiKX0sZ2JpVDpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJ1bnNjb3BhYmxlcyIpfSxnZFZsOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZXd2VyIpLG89bigiSTh2aCIpLGk9bigiVU1TUSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9cih0aGlzKSxuPWkoZS5sZW5ndGgpLGE9YXJndW1lbnRzLmxlbmd0aCxjPW8oYT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbiksdT1hPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxzPXZvaWQgMD09PXU/bjpvKHUsbik7cz5jOyllW2MrK109dDtyZXR1cm4gZX19LGdscms6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImhoMXYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXIodCkpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KSsiIGlzIG5vdCBhbiBvYmplY3QiKTtyZXR1cm4gdH19LGhCak46ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJ3RTZ2Iiksbz1uKCJtL0w4IiksaT1uKCJYR3dDIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgYT1yKGUpO2EgaW4gdD9vLmYodCxhLGkoMCxuKSk6dFthXT1ufX0saEJ5UTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjE0U2wiKSxvPW4oImdscmsiKSxpPW4oIkhZQUYiKSxhPW4oIkVwOUkiKSxjPW4oIkZNTk0iKTtyKCJzZWFyY2giLDEsKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bZnVuY3Rpb24oZSl7dmFyIG49aSh0aGlzKSxyPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PXI/ci5jYWxsKGUsbik6bmV3IFJlZ0V4cChlKVt0XShTdHJpbmcobikpfSxmdW5jdGlvbih0KXt2YXIgcj1uKGUsdCx0aGlzKTtpZihyLmRvbmUpcmV0dXJuIHIudmFsdWU7dmFyIGk9byh0KSx1PVN0cmluZyh0aGlzKSxzPWkubGFzdEluZGV4O2EocywwKXx8KGkubGFzdEluZGV4PTApO3ZhciBmPWMoaSx1KTtyZXR1cm4gYShpLmxhc3RJbmRleCxzKXx8KGkubGFzdEluZGV4PXMpLG51bGw9PT1mPy0xOmYuaW5kZXh9XX0pKX0sImhOL2ciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpLG4oIjBUV3AiKX0saFhwTzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSFlBRiIpLG89LyIvZzt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4saSl7dmFyIGE9U3RyaW5nKHIodCkpLGM9IjwiK2U7cmV0dXJuIiIhPT1uJiYoYys9IiAiK24rJz0iJytTdHJpbmcoaSkucmVwbGFjZShvLCImcXVvdDsiKSsnIicpLGMrIj4iK2ErIjwvIitlKyI+In19LGhoMXY6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0P251bGwhPT10OiJmdW5jdGlvbiI9PXR5cGVvZiB0fX0saTZRRjpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se2lzSW50ZWdlcjpuKCJYb2w4Iil9KX0saW5sQTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIlVNU1EiKSxpPW4oIldqUmIiKSxhPW4oIkhZQUYiKSxjPW4oInF4UFoiKSx1PSIiLmVuZHNXaXRoLHM9TWF0aC5taW47cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohYygiZW5kc1dpdGgiKX0se2VuZHNXaXRoOmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhhKHRoaXMpKTtpKHQpO3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLHI9byhlLmxlbmd0aCksYz12b2lkIDA9PT1uP3I6cyhvKG4pLHIpLGY9U3RyaW5nKHQpO3JldHVybiB1P3UuY2FsbChlLGYsYyk6ZS5zbGljZShjLWYubGVuZ3RoLGMpPT09Zn19KX0saXFXVzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIlpVZDgiKS5jaGFyQXQ7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZSsobj9yKHQsZSkubGVuZ3RoOjEpfX0sanJVdjpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguZXhwbTEscj1NYXRoLmV4cDt0LmV4cG9ydHM9IW58fG4oMTApPjIyMDI1LjQ2NTc5NDgwNjcxOHx8bigxMCk8MjIwMjUuNDY1Nzk0ODA2NzE4fHwtMmUtMTchPW4oLTJlLTE3KT9mdW5jdGlvbih0KXtyZXR1cm4gMD09KHQ9K3QpP3Q6dD4tMWUtNiYmdDwxZS02P3QrdCp0LzI6cih0KS0xfTpufSxqdDJGOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoIm1hdGNoQWxsIil9LGtOY1U6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPU1hdGgubG9nLGk9TWF0aC5MTjI7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7bG9nMjpmdW5jdGlvbih0KXtyZXR1cm4gbyh0KS9pfX0pfSxrT09sOmZ1bmN0aW9uKHQsZSl7dmFyIG49MCxyPU1hdGgucmFuZG9tKCk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIitTdHJpbmcodm9pZCAwPT09dD8iIjp0KSsiKV8iKygrK24rcikudG9TdHJpbmcoMzYpfX0sa1NrbzpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se2lzTmFOOmZ1bmN0aW9uKHQpe3JldHVybiB0IT10fX0pfSxrbU1WOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbyxpPW4oInJXMHQiKSxhPVJlZ0V4cC5wcm90b3R5cGUuZXhlYyxjPVN0cmluZy5wcm90b3R5cGUucmVwbGFjZSx1PWEscz0obz0vYiovZyxhLmNhbGwocj0vYS8sImEiKSxhLmNhbGwobywiYSIpLDAhPT1yLmxhc3RJbmRleHx8MCE9PW8ubGFzdEluZGV4KSxmPXZvaWQgMCE9PS8oKT8/Ly5leGVjKCIiKVsxXTsoc3x8ZikmJih1PWZ1bmN0aQ=="
}

github/deemru/w8io/169f3d6 
3.93 ms