3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ · data · qwe?polyfills-es5.js?6?3
{
    "qwe?polyfills-es5.js?6?3": "base64:Im0vTDgiKS5mLGM9bigia09PbCIpLHU9bigidXk4MyIpLHM9YygibWV0YSIpLGY9MCxsPU9iamVjdC5pc0V4dGVuc2libGV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LHA9ZnVuY3Rpb24odCl7YSh0LHMse3ZhbHVlOntvYmplY3RJRDoiTyIrICsrZix3ZWFrRGF0YTp7fX19KX0saD10LmV4cG9ydHM9e1JFUVVJUkVEOiExLGZhc3RLZXk6ZnVuY3Rpb24odCxlKXtpZighbyh0KSlyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDooInN0cmluZyI9PXR5cGVvZiB0PyJTIjoiUCIpK3Q7aWYoIWkodCxzKSl7aWYoIWwodCkpcmV0dXJuIkYiO2lmKCFlKXJldHVybiJFIjtwKHQpfXJldHVybiB0W3NdLm9iamVjdElEfSxnZXRXZWFrRGF0YTpmdW5jdGlvbih0LGUpe2lmKCFpKHQscykpe2lmKCFsKHQpKXJldHVybiEwO2lmKCFlKXJldHVybiExO3AodCl9cmV0dXJuIHRbc10ud2Vha0RhdGF9LG9uRnJlZXplOmZ1bmN0aW9uKHQpe3JldHVybiB1JiZoLlJFUVVJUkVEJiZsKHQpJiYhaSh0LHMpJiZwKHQpLHR9fTtyW3NdPSEwfSwiOTBoVyI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gMD09KHQ9K3QpfHx0IT10P3Q6dDwwPy0xOjF9fSwiOTNJMCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlZwSVQiKSxvPW4oImtPT2wiKSxpPXIoImtleXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGlbdF18fChpW3RdPW8odCkpfX0sIjlMUGoiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiZXd2VyIpLGE9bigid0U2diIpO3Ioe3RhcmdldDoiRGF0ZSIscHJvdG86ITAsZm9yY2VkOm8oKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1uZXcgRGF0ZShOYU4pLnRvSlNPTigpfHwxIT09RGF0ZS5wcm90b3R5cGUudG9KU09OLmNhbGwoe3RvSVNPU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDF9fSl9KSl9LHt0b0pTT046ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxuPWEoZSk7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBufHxpc0Zpbml0ZShuKT9lLnRvSVNPU3RyaW5nKCk6bnVsbH19KX0sIjlOMjkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMVkvbiIpLnJpZ2h0O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpuKCJzd0ZMIikoInJlZHVjZVJpZ2h0Iil9LHtyZWR1Y2VSaWdodDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LCI5Yko3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIlpVZDgiKS5jb2RlQXQ7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7Y29kZVBvaW50QXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0KX19KX0sIjlkL3QiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ4cllLIiksbz1uKCJ0aUtwIikoInRvU3RyaW5nVGFnIiksaT0iQXJndW1lbnRzIj09cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxuLGE7cmV0dXJuIHZvaWQgMD09PXQ/IlVuZGVmaW5lZCI6bnVsbD09PXQ/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yobj1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaChuKXt9fShlPU9iamVjdCh0KSxvKSk/bjppP3IoZSk6Ik9iamVjdCI9PShhPXIoZSkpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jYWxsZWU/IkFyZ3VtZW50cyI6YX19LCI5bVJXIjpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITB9LHtmcm91bmQ6bigidm80ViIpfSl9LCI5dGIvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiSTh2aCIpLGk9U3RyaW5nLmZyb21DaGFyQ29kZSxhPVN0cmluZy5mcm9tQ29kZVBvaW50O3Ioe3RhcmdldDoiU3RyaW5nIixzdGF0OiEwLGZvcmNlZDohIWEmJjEhPWEubGVuZ3RofSx7ZnJvbUNvZGVQb2ludDpmdW5jdGlvbih0KXtmb3IodmFyIGUsbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGgsYT0wO3I+YTspe2lmKGU9K2FyZ3VtZW50c1thKytdLG8oZSwxMTE0MTExKSE9PWUpdGhyb3cgUmFuZ2VFcnJvcihlKyIgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCIpO24ucHVzaChlPDY1NTM2P2koZSk6aSg1NTI5NisoKGUtPTY1NTM2KT4+MTApLGUlMTAyNCs1NjMyMCkpfXJldHVybiBuLmpvaW4oIiIpfX0pfSxBbUZPOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCIwRGt5IiksaT1uKCJqclV2IiksYT1NYXRoLmFicyxjPU1hdGguZXhwLHU9TWF0aC5FO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXtyZXR1cm4tMmUtMTchPU1hdGguc2luaCgtMmUtMTcpfSkpfSx7c2luaDpmdW5jdGlvbih0KXtyZXR1cm4gYSh0PSt0KTwxPyhpKHQpLWkoLXQpKS8yOihjKHQtMSktYygtdC0xKSkqKHUvMil9fSl9LEJOTXQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoImJsaW5rIil9LHtibGluazpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LEJUaG86ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJIQXVNIiksbz1uKCJoaDF2IiksaT1bXS5zbGljZSxhPXt9LGM9ZnVuY3Rpb24odCxlLG4pe2lmKCEoZSBpbiBhKSl7Zm9yKHZhciByPVtdLG89MDtvPGU7bysrKXJbb109ImFbIitvKyJdIjthW2VdPUZ1bmN0aW9uKCJDLGEiLCJyZXR1cm4gbmV3IEMoIityLmpvaW4oIiwiKSsiKSIpfXJldHVybiBhW2VdKHQsbil9O3QuZXhwb3J0cz1GdW5jdGlvbi5iaW5kfHxmdW5jdGlvbih0KXt2YXIgZT1yKHRoaXMpLG49aS5jYWxsKGFyZ3VtZW50cywxKSxhPWZ1bmN0aW9uKCl7dmFyIHI9bi5jb25jYXQoaS5jYWxsKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2YgYT9jKGUsci5sZW5ndGgscik6ZS5hcHBseSh0LHIpfTtyZXR1cm4gbyhlLnByb3RvdHlwZSkmJihhLnByb3RvdHlwZT1lLnByb3RvdHlwZSksYX19LCJCWC9iIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiL0dxVSIpLG89bigiSkJ5OCIpLmYsaT17fS50b1N0cmluZyxhPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W107dC5leHBvcnRzLmY9ZnVuY3Rpb24odCl7cmV0dXJuIGEmJiJbb2JqZWN0IFdpbmRvd10iPT1pLmNhbGwodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBvKHQpfWNhdGNoKGUpe3JldHVybiBhLnNsaWNlKCl9fSh0KTpvKHIodCkpfX0sQnM4VjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigiMGVlZiIpLGk9bigiWEd3QyIpLGE9bigiL0dxVSIpLGM9bigid0U2diIpLHU9bigiVVRWUyIpLHM9bigiRFBzeCIpLGY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtlLmY9cj9mOmZ1bmN0aW9uKHQsZSl7aWYodD1hKHQpLGU9YyhlLCEwKSxzKXRyeXtyZXR1cm4gZih0LGUpfWNhdGNoKG4pe31pZih1KHQsZSkpcmV0dXJuIGkoIW8uZi5jYWxsKHQsZSksdFtlXSl9fSxDc2dEOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJqclV2Iik7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDpvIT1NYXRoLmV4cG0xfSx7ZXhwbTE6b30pfSxERWZ1OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIik7bigiMUU1eiIpKHIuSlNPTiwiSlNPTiIsITApfSxETXQyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJVTVNRIiksbz1uKCJFVWphIiksaT1uKCJIWUFGIiksYT1NYXRoLmNlaWwsYz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGMpe3ZhciB1LHMsZj1TdHJpbmcoaShlKSksbD1mLmxlbmd0aCxwPXZvaWQgMD09PWM/IiAiOlN0cmluZyhjKSxoPXIobik7cmV0dXJuIGg8PWx8fCIiPT1wP2Y6KChzPW8uY2FsbChwLGEoKHU9aC1sKS9wLmxlbmd0aCkpKS5sZW5ndGg+dSYmKHM9cy5zbGljZSgwLHUpKSx0P2YrczpzK2YpfX07dC5leHBvcnRzPXtzdGFydDpjKCExKSxlbmQ6YyghMCl9fSxEUHN4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCIwRGt5IiksaT1uKCJ6Qko0Iik7dC5leHBvcnRzPSFyJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGkoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sRFFOYTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYnVzRSIpLG89RGF0ZS5wcm90b3R5cGUsaT1vLnRvU3RyaW5nLGE9by5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPSJJbnZhbGlkIERhdGUiJiZyKG8sInRvU3RyaW5nIiwoZnVuY3Rpb24oKXt2YXIgdD1hLmNhbGwodGhpcyk7cmV0dXJuIHQ9PXQ/aS5jYWxsKHRoaXMpOiJJbnZhbGlkIERhdGUifSkpfSxFNU5NOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJiaWciKX0se2JpZzpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsImJpZyIsIiIsIiIpfX0pfSxFOVhEOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMVkvbiIpLmxlZnQ7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOm4oInN3RkwiKSgicmVkdWNlIil9LHtyZWR1Y2U6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxFTkY5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbz1uKCIyb1JvIiksaT1uKCI0c3l3IiksYT1uKCI4WU9hIiksYz1uKCJiV0ZoIiksdT1uKCJyS3piIikscz1uKCJoaDF2IiksZj1uKCJhZk84IikuZW5mb3JjZSxsPW4oImY1cDEiKSxwPSFvLkFjdGl2ZVhPYmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIG8saD1PYmplY3QuaXNFeHRlbnNpYmxlLHY9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sZD10LmV4cG9ydHM9YygiV2Vha01hcCIsdix1LCEwLCEwKTtpZihsJiZwKXtyPXUuZ2V0Q29uc3RydWN0b3IodiwiV2Vha01hcCIsITApLGEuUkVRVUlSRUQ9ITA7dmFyIGc9ZC5wcm90b3R5cGUseT1nLmRlbGV0ZSxiPWcuaGFzLG09Zy5nZXQsaz1nLnNldDtpKGcse2RlbGV0ZTpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgcikseS5jYWxsKHRoaXMsdCl8fGUuZnJvemVuLmRlbGV0ZSh0KX1yZXR1cm4geS5jYWxsKHRoaXMsdCl9LGhhczpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCl8fGUuZnJvemVuLmhhcyh0KX1yZXR1cm4gYi5jYWxsKHRoaXMsdCl9LGdldDpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCk/bS5jYWxsKHRoaXMsdCk6ZS5mcm96ZW4uZ2V0KHQpfXJldHVybiBtLmNhbGwodGhpcyx0KX0sc2V0OmZ1bmN0aW9uKHQsZSl7aWYocyh0KSYmIWgodCkpe3ZhciBuPWYodGhpcyk7bi5mcm96ZW58fChuLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCk/ay5jYWxsKHRoaXMsdCxlKTpuLmZyb3plbi5zZXQodCxlKX1lbHNlIGsuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXN9fSl9fSxFVWphOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigicHBHQiIpLG89bigiSFlBRiIpO3QuZXhwb3J0cz0iIi5yZXBlYXR8fGZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhvKHRoaXMpKSxuPSIiLGk9cih0KTtpZihpPDB8fGk9PTEvMCl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO2k+MDsoaT4+Pj0xKSYmKGUrPWUpKTEmaSYmKG4rPWUpO3JldHVybiBufX0sRW5aeTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjE0U2wiKSxvPW4oIlJPZFAiKSxpPW4oImdscmsiKSxhPW4oIkhZQUYiKSxjPW4oIlNFQmgiKSx1PW4oImlxV1ciKSxzPW4oIlVNU1EiKSxmPW4oIkZNTk0iKSxsPW4oImttTVYiKSxwPW4oIjBEa3kiKSxoPVtdLnB1c2gsdj1NYXRoLm1pbixkPSFwKChmdW5jdGlvbigpe3JldHVybiFSZWdFeHAoNDI5NDk2NzI5NSwieSIpfSkpO3IoInNwbGl0IiwyLChmdW5jdGlvbih0LGUsbil7dmFyIHI7cmV0dXJuIHI9ImMiPT0iYWJiYyIuc3BsaXQoLyhiKSovKVsxXXx8NCE9InRlc3QiLnNwbGl0KC8oPzopLywtMSkubGVuZ3RofHwyIT0iYWIiLnNwbGl0KC8oPzphYikqLykubGVuZ3RofHw0IT0iLiIuc3BsaXQoLyguPykoLj8pLykubGVuZ3RofHwiLiIuc3BsaXQoLygpKCkvKS5sZW5ndGg+MXx8IiIuc3BsaXQoLy4/LykubGVuZ3RoP2Z1bmN0aW9uKHQsbil7dmFyIHI9U3RyaW5nKGEodGhpcykpLGk9dm9pZCAwPT09bj80Mjk0OTY3Mjk1Om4+Pj4wO2lmKDA9PT1pKXJldHVybltdO2lmKHZvaWQgMD09PXQpcmV0dXJuW3JdO2lmKCFvKHQpKXJldHVybiBlLmNhbGwocix0LGkpO2Zvcih2YXIgYyx1LHMsZj1bXSxwPTAsdj1uZXcgUmVnRXhwKHQuc291cmNlLCh0Lmlnbm9yZUNhc2U/ImkiOiIiKSsodC5tdWx0aWxpbmU/Im0iOiIiKSsodC51bmljb2RlPyJ1IjoiIikrKHQuc3RpY2t5PyJ5IjoiIikrImciKTsoYz1sLmNhbGwodixyKSkmJiEoKHU9di5sYXN0SW5kZXgpPnAmJihmLnB1c2goci5zbGljZShwLGMuaW5kZXgpKSxjLmxlbmd0aD4xJiZjLmluZGV4PHIubGVuZ3RoJiZoLmFwcGx5KGYsYy5zbGljZSgxKSkscz1jWzBdLmxlbmd0aCxwPXUsZi5sZW5ndGg+PWkpKTspdi5sYXN0SW5kZXg9PT1jLmluZGV4JiZ2Lmxhc3RJbmRleCsrO3JldHVybiBwPT09ci5sZW5ndGg/IXMmJnYudGVzdCgiIil8fGYucHVzaCgiIik6Zi5wdXNoKHIuc2xpY2UocCkpLGYubGVuZ3RoPmk/Zi5zbGljZSgwLGkpOmZ9OiIwIi5zcGxpdCh2b2lkIDAsMCkubGVuZ3RoP2Z1bmN0aW9uKHQsbil7cmV0dXJuIHZvaWQgMD09PXQmJjA9PT1uP1tdOmUuY2FsbCh0aGlzLHQsbil9OmUsW2Z1bmN0aW9uKGUsbil7dmFyIG89YSh0aGlzKSxpPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKGUsbyxuKTpyLmNhbGwoU3RyaW5nKG8pLGUsbil9LGZ1bmN0aW9uKHQsbyl7dmFyIGE9bihyLHQsdGhpcyxvLHIhPT1lKTtpZihhLmRvbmUpcmV0dXJuIGEudmFsdWU7dmFyIGw9aSh0KSxwPVN0cmluZyh0aGlzKSxoPWMobCxSZWdFeHApLGc9bC51bmljb2RlLHk9bmV3IGgoZD9sOiJeKD86IitsLnNvdXJjZSsiKSIsKGwuaWdub3JlQ2FzZT8iaSI6IiIpKyhsLm11bHRpbGluZT8ibSI6IiIpKyhsLnVuaWNvZGU/InUiOiIiKSsoZD8ieSI6ImciKSksYj12b2lkIDA9PT1vPzQyOTQ5NjcyOTU6bz4+PjA7aWYoMD09PWIpcmV0dXJuW107aWYoMD09PXAubGVuZ3RoKXJldHVybiBudWxsPT09Zih5LHApP1twXTpbXTtmb3IodmFyIG09MCxrPTAsXz1bXTtrPHAubGVuZ3RoOyl7eS5sYXN0SW5kZXg9ZD9rOjA7dmFyIHcseD1mKHksZD9wOnAuc2xpY2UoaykpO2lmKG51bGw9PT14fHwodz12KHMoeS5sYXN0SW5kZXgrKGQ/MDprKSkscC5sZW5ndGgpKT09PW0paz11KHAsayxnKTtlbHNle2lmKF8ucHVzaChwLnNsaWNlKG0saykpLF8ubGVuZ3RoPT09YilyZXR1cm4gXztmb3IodmFyIFM9MTtTPD14Lmxlbmd0aC0xO1MrKylpZihfLnB1c2goeFtTXSksXy5sZW5ndGg9PT1iKXJldHVybiBfO2s9bT13fX1yZXR1cm4gXy5wdXNoKHAuc2xpY2UobSkpLF99XX0pLCFkKX0sRXA5STpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1PYmplY3QuaXN8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lPzAhPT10fHwxL3Q9PTEvZTp0IT10JiZlIT1lfX0sRXhvQzpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se3NldFByb3RvdHlwZU9mOm4oIjBydnIiKX0pfSxGOEpSOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigidHljUiIpLmZvckVhY2gsbz1uKCJzd0ZMIik7dC5leHBvcnRzPW8oImZvckVhY2giKT9mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfTpbXS5mb3JFYWNofSxGRjZsOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZXd2VyIpLG89bigiSTh2aCIpLGk9bigiVU1TUSIpLGE9TWF0aC5taW47dC5leHBvcnRzPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKHQsZSl7dmFyIG49cih0aGlzKSxjPWkobi5sZW5ndGgpLHU9byh0LGMpLHM9byhlLGMpLGY9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbD1hKCh2b2lkIDA9PT1mP2M6byhmLGMpKS1zLGMtdSkscD0xO2ZvcihzPHUmJnU8cytsJiYocD0tMSxzKz1sLTEsdSs9bC0xKTtsLS0gPjA7KXMgaW4gbj9uW3VdPW5bc106ZGVsZXRlIG5bdV0sdSs9cCxzKz1wO3JldHVybiBufX0sRk1OTTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieHJZSyIpLG89bigia21NViIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXQuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2Ygbil7dmFyIGk9bi5jYWxsKHQsZSk7aWYoIm9iamVjdCIhPXR5cGVvZiBpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIGl9aWYoIlJlZ0V4cCIhPT1yKHQpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpO3JldHVybiBvLmNhbGwodCxlKX19LEZadFA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIi9ieXQiKSxpPW4oIkY4SlIiKSxhPW4oIlgyVSsiKTtmb3IodmFyIGMgaW4gbyl7dmFyIHU9cltjXSxzPXUmJnUucHJvdG90eXBlO2lmKHMmJnMuZm9yRWFjaCE9PWkpdHJ5e2EocywiZm9yRWFjaCIsaSl9Y2F0Y2goZil7cy5mb3JFYWNoPWl9fX0sIkcrUngiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwR2JZIik7dC5leHBvcnRzPXIoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LEdLVlU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoImFuY2hvciIpfSx7YW5jaG9yOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsImEiLCJuYW1lIix0KX19KX0sR1JQRjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oImhYcE8iKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjZ1bksiKSgiZm9udHNpemUiKX0se2ZvbnRzaXplOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsImZvbnQiLCJzaXplIix0KX19KX0sR1h2ZDpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJzcGVjaWVzIil9LEdhclU6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0ICIrKG4/bisiICI6IiIpKyJpbnZvY2F0aW9uIik7cmV0dXJuIHR9fSxIMHBiOmZ1bmN0aW9uKHQsZSxuKXtuKCJtYTlJIiksbigiMDdkNyIpLG4oInBOTU8iKSxuKCJ0alpNIiksbigiNEJyZiIpLG4oIjNJMVIiKSxuKCI3K2tkIiksbigiMG91ZyIpLG4oIktoc1MiKSxuKCJqdDJGIiksbigiZ09DYiIpLG4oImE1N24iKSxuKCJHWHZkIiksbigiSTFHdyIpLG4oImdYSUsiKSxuKCJsRW91IiksbigiZ2JpVCIpLG4oIkk5eGoiKSxuKCJERWZ1Iik7dmFyIHI9bigiUW85bCIpO3QuZXhwb3J0cz1yLlN5bWJvbH0sSEF1TTpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKHQpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gdH19LEhING86ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInRpS3AiKSgiaXRlcmF0b3IiKSxvPSExO3RyeXt2YXIgaT0wLGE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWkrK319LHJldHVybjpmdW5jdGlvbigpe289ITB9fTthW3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oYSwoZnVuY3Rpb24oKXt0aHJvdyAyfSkpfWNhdGNoKGMpe310LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighZSYmIW8pcmV0dXJuITE7dmFyIG49ITE7dHJ5e3ZhciBpPXt9O2lbcl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOm49ITB9fX19LHQoaSl9Y2F0Y2goYyl7fXJldHVybiBufX0sSFJ4VTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiZzZ2LyIpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohbyxzaGFtOiFvfSx7ZGVmaW5lUHJvcGVydGllczpuKCJOK2cwIil9KX0sSFlBRjpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihudWxsPT10KXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIit0KTtyZXR1cm4gdH19LEhkNWY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKSxvPW4oInRpS3AiKSgic3BlY2llcyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4hcigoZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4oZS5jb25zdHJ1Y3Rvcj17fSlbb109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09ZVt0XShCb29sZWFuKS5mb299KSl9fSxIc0hBOmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5sb2c7dC5leHBvcnRzPU1hdGgubG9nMXB8fGZ1bmN0aW9uKHQpe3JldHVybih0PSt0KT4tMWUtOCYmdDwxZS04P3QtdCp0LzI6bigxK3QpfX0sIkkrZWIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIiksbz1uKCJCczhWIikuZixpPW4oIlgyVSsiKSxhPW4oImJ1c0UiKSxjPW4oInprNjAiKSx1PW4oIjZKTnEiKSxzPW4oImxNcTUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgbixmLGwscCxoLHY9dC50YXJnZXQsZD10Lmdsb2JhbCxnPXQuc3RhdDtpZihuPWQ/cjpnP3Jbdl18fGModix7fSk6KHJbdl18fHt9KS5wcm90b3R5cGUpZm9yKGYgaW4gZSl7aWYocD1lW2ZdLGw9dC5ub1RhcmdldEdldD8oaD1vKG4sZikpJiZoLnZhbHVlOm5bZl0sIXMoZD9mOnYrKGc/Ii4iOiIjIikrZix0LmZvcmNlZCkmJnZvaWQgMCE9PWwpe2lmKHR5cGVvZiBwPT10eXBlb2YgbCljb250aW51ZTt1KHAsbCl9KHQuc2hhbXx8bCYmbC5zaGFtKSYmaShwLCJzaGFtIiwhMCksYShuLGYscCx0KX19fSxJMUd3OmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoInNwbGl0Iil9LEk4dmg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInBwR0IiKSxvPU1hdGgubWF4LGk9TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49cih0KTtyZXR1cm4gbjwwP28obitlLDApOmkobixlKX19LEk5eGo6ZnVuY3Rpb24odCxlLG4pe24oIjFFNXoiKShNYXRoLCJNYXRoIiwhMCl9LEltWk46ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImdscmsiKSxvPW4oIjZWb0UiKSxpPW4oIlVNU1EiKSxhPW4oIitNTHgiKSxjPW4oIk5hRlciKSx1PW4oIm05Mm4iKSxzPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdG9wcGVkPXQsdGhpcy5yZXN1bHQ9ZX07KHQuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixmLGwpe3ZhciBwLGgsdixkLGcseSxiPWEoZSxuLGY/MjoxKTtpZihsKXA9dDtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihoPWModCkpKXRocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBpdGVyYWJsZSIpO2lmKG8oaCkpe2Zvcih2PTAsZD1pKHQubGVuZ3RoKTtkPnY7disrKWlmKChnPWY/YihyKHk9dFt2XSlbMF0seVsxXSk6Yih0W3ZdKSkmJmcgaW5zdGFuY2VvZiBzKXJldHVybiBnO3JldHVybiBuZXcgcyghMSl9cD1oLmNhbGwodCl9Zm9yKDshKHk9cC5uZXh0KCkpLmRvbmU7KWlmKChnPXUocCxiLHkudmFsdWUsZikpJiZnIGluc3RhbmNlb2YgcylyZXR1cm4gZztyZXR1cm4gbmV3IHMoITEpfSkuc3RvcD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHMoITAsdCl9fSxJeFhSOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJzdHJpa2UiKX0se3N0cmlrZTpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsInN0cmlrZSIsIiIsIiIpfX0pfSxKMzBYOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiQXJyYXkiLHN0YXQ6ITB9LHtpc0FycmF5Om4oIjZMV0EiKX0pfSxKQnk4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ5b1JnIiksbz1uKCJlRGwrIikuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiByKHQsbyl9fSxKVEpnOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiV2pSYiIpLGk9bigiSFlBRiIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6IW4oInF4UFoiKSgiaW5jbHVkZXMiKX0se2luY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiEhflN0cmluZyhpKHRoaXMpKS5pbmRleE9mKG8odCksYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxKZXZBOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCI1WU9RIik7cih7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITAsZm9yY2VkOk51bWJlci5wYXJzZUludCE9b30se3BhcnNlSW50Om99KX0sSmZBQTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImJ1c0UiKSxvPW4oImdscmsiKSxpPW4oIjBEa3kiKSxhPW4oInJXMHQiKSxjPVJlZ0V4cC5wcm90b3R5cGUsdT1jLnRvU3RyaW5nOyhpKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9dS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSkpfHwidG9TdHJpbmciIT11Lm5hbWUpJiZyKFJlZ0V4cC5wcm90b3R5cGUsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXt2YXIgdD1vKHRoaXMpLGU9U3RyaW5nKHQuc291cmNlKSxuPXQuZmxhZ3M7cmV0dXJuIi8iK2UrIi8iK1N0cmluZyh2b2lkIDA9PT1uJiZ0IGluc3RhbmNlb2YgUmVnRXhwJiYhKCJmbGFncyJpbiBjKT9hLmNhbGwodCk6bil9KSx7dW5zYWZlOiEwfSl9LEppWmI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIwR2JZIiksbz1uKCJtL0w4IiksaT1uKCJ0aUtwIiksYT1uKCJnNnYvIiksYz1pKCJzcGVjaWVzIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCk7YSYmZSYmIWVbY10mJigwLG8uZikoZSxjLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSxLaHNTOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoIm1hdGNoIil9LEt2OWw6ZnVuY3Rpb24odCxlLG4pe24oIlRXTnMiKSxuKCJKZkFBIiksbigickI5aiIpLG4oIlUzZjQiKSxuKCJSbTFTIiksbigiVXhsQyIpLG4oImhCeVEiKSxuKCJFblp5Iil9LEt2R2k6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7c2lnbjpuKCI5MGhXIil9KX0sS3hsZDpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se2lzOm4oIkVwOUkiKX0pfSxMS0J4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiVU1TUSIpLGk9bigiV2pSYiIpLGE9bigiSFlBRiIpLGM9bigicXhQWiIpLHU9IiIuc3RhcnRzV2l0aCxzPU1hdGgubWluO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6IWMoInN0YXJ0c1dpdGgiKX0se3N0YXJ0c1dpdGg6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKGEodGhpcykpO2kodCk7dmFyIG49byhzKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGUubGVuZ3RoKSkscj1TdHJpbmcodCk7cmV0dXJuIHU/dS5jYWxsKGUscixuKTplLnNsaWNlKG4sbityLmxlbmd0aCk9PT1yfX0pfSxMUFNTOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvLGksYT1uKCIyb1JvIiksYz1uKCIwRGt5IiksdT1uKCJ4cllLIikscz1uKCIrTUx4IiksZj1uKCJHK1J4IiksbD1uKCJ6Qko0IikscD1hLmxvY2F0aW9uLGg9YS5zZXRJbW1lZGlhdGUsdj1hLmNsZWFySW1tZWRpYXRlLGQ9YS5wcm9jZXNzLGc9YS5NZXNzYWdlQ2hhbm5lbCx5PWEuRGlzcGF0Y2gsYj0wLG09e30saz1mdW5jdGlvbih0KXtpZihtLmhhc093blByb3BlcnR5KHQpKXt2YXIgZT1tW3RdO2RlbGV0ZSBtW3RdLGUoKX19LF89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7ayh0KX19LHc9ZnVuY3Rpb24odCl7ayh0LmRhdGEpfSx4PWZ1bmN0aW9uKHQpe2EucG9zdE1lc3NhZ2UodCsiIixwLnByb3RvY29sKyIvLyIrcC5ob3N0KX07aCYmdnx8KGg9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTthcmd1bWVudHMubGVuZ3RoPm47KWUucHVzaChhcmd1bWVudHNbbisrXSk7cmV0dXJuIG1bKytiXT1mdW5jdGlvbigpeygiZnVuY3Rpb24iPT10eXBlb2YgdD90OkZ1bmN0aW9uKHQpKS5hcHBseSh2b2lkIDAsZSl9LHIoYiksYn0sdj1mdW5jdGlvbih0KXtkZWxldGUgbVt0XX0sInByb2Nlc3MiPT11KGQpP3I9ZnVuY3Rpb24odCl7ZC5uZXh0VGljayhfKHQpKX06eSYmeS5ub3c/cj1mdW5jdGlvbih0KXt5Lm5vdyhfKHQpKX06Zz8oaT0obz1uZXcgZykucG9ydDIsby5wb3J0MS5vbm1lc3NhZ2U9dyxyPXMoaS5wb3N0TWVzc2FnZSxpLDEpKTohYS5hZGRFdmVudExpc3RlbmVyfHwiZnVuY3Rpb24iIT10eXBlb2YgcG9zdE1lc3NhZ2V8fGEuaW1wb3J0U2NyaXB0c3x8Yyh4KT9yPSJvbnJlYWR5c3RhdGVjaGFuZ2UiaW4gbCgic2NyaXB0Iik/ZnVuY3Rpb24odCl7Zi5hcHBlbmRDaGlsZChsKCJzY3JpcHQiKSkub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7Zi5yZW1vdmVDaGlsZCh0aGlzKSxrKHQpfX06ZnVuY3Rpb24odCl7c2V0VGltZW91dChfKHQpLDApfToocj14LGEuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdywhMSkpKSx0LmV4cG9ydHM9e3NldDpoLGNsZWFyOnZ9fSwiTitnMCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImc2di8iKSxvPW4oIm0vTDgiKSxpPW4oImdscmsiKSxhPW4oIjMzV2giKTt0LmV4cG9ydHM9cj9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbih0LGUpe2kodCk7Zm9yKHZhciBuLHI9YShlKSxjPXIubGVuZ3RoLHU9MDtjPnU7KW8uZih0LG49clt1KytdLGVbbl0pO3JldHVybiB0fX0sTkJBUzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiZXd2VyIpLGE9bigiNFdPRCIpLGM9bigiNFhldCIpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe2EoMSl9KSksc2hhbTohY30se2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX0pfSxOYUZXOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI5ZC90Iiksbz1uKCJQNHkxIiksaT1uKCJ0aUtwIikoIml0ZXJhdG9yIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpcmV0dXJuIHRbaV18fHRbIkBAaXRlcmF0b3IiXXx8b1tyKHQpXX19LCJOYk4rIjpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se0VQU0lMT046TWF0aC5wb3coMiwtNTIpfSl9LE83NDE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImhoMXYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXIodCkmJm51bGwhPT10KXRocm93IFR5cGVFcnJvcigiQ2FuJ3Qgc2V0ICIrU3RyaW5nKHQpKyIgYXMgYSBwcm90b3R5cGUiKTtyZXR1cm4gdH19LE9NOVo6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7cmVwZWF0Om4oIkVVamEiKX0pfSxQNHkxOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPXt9fSxQS1BrOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiWlVkOCIpLmNoYXJBdCxvPW4oImFmTzgiKSxpPW4oImZkQXkiKSxhPW8uc2V0LGM9by5nZXR0ZXJGb3IoIlN0cmluZyBJdGVyYXRvciIpO2koU3RyaW5nLCJTdHJpbmciLChmdW5jdGlvbih0KXthKHRoaXMse3R5cGU6IlN0cmluZyBJdGVyYXRvciIsc3RyaW5nOlN0cmluZyh0KSxpbmRleDowfSl9KSwoZnVuY3Rpb24oKXt2YXIgdCxlPWModGhpcyksbj1lLnN0cmluZyxvPWUuaW5kZXg7cmV0dXJuIG8+PW4ubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KHQ9cihuLG8pLGUuaW5kZXgrPXQubGVuZ3RoLHt2YWx1ZTp0LGRvbmU6ITF9KX0pKX0sUHFPSTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiOTBoVyIpLGk9TWF0aC5hYnMsYT1NYXRoLnBvdztyKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITB9LHtjYnJ0OmZ1bmN0aW9uKHQpe3JldHVybiBvKHQ9K3QpKmEoaSh0KSwxLzMpfX0pfSxRRmNUOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1NYXRoLmh5cG90LGk9TWF0aC5hYnMsYT1NYXRoLnNxcnQ7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohIW8mJm8oMS8wLE5hTikhPT0xLzB9LHtoeXBvdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbixyLG89MCxjPTAsdT1hcmd1bWVudHMubGVuZ3RoLHM9MDtjPHU7KXM8KG49aShhcmd1bWVudHNbYysrXSkpPyhvPW8qKHI9cy9uKSpyKzEscz1uKTpvKz1uPjA/KHI9bi9zKSpyOm47cmV0dXJuIHM9PT0xLzA/MS8wOnMqYShvKX19KX0sUUlwZDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieHJZSyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQmJiJOdW1iZXIiIT1yKHQpKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0IGludm9jYXRpb24iKTtyZXR1cm4rdH19LFFObnA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPU1hdGguZmxvb3IsaT1NYXRoLmxvZyxhPU1hdGguTE9HMkU7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7Y2x6MzI6ZnVuY3Rpb24odCl7cmV0dXJuKHQ+Pj49MCk/MzEtbyhpKHQrLjUpKmEpOjMyfX0pfSxRV0JsOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiRjhKUiIpO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpbXS5mb3JFYWNoIT1vfSx7Zm9yRWFjaDpvfSl9LFFvOWw6ZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1uKCIyb1JvIil9LFJLM3Q6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKSxvPW4oInhyWUsiKSxpPSIiLnNwbGl0O3QuZXhwb3J0cz1yKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09byh0KT9pLmNhbGwodCwiIik6T2JqZWN0KHQpfTpPYmplY3R9LFJONmM6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgbj1yLmNvbnNvbGU7biYmbi5lcnJvciYmKDE9PT1hcmd1bWVudHMubGVuZ3RoP24uZXJyb3IodCk6bi5lcnJvcih0LGUpKX19LFJOSXM6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInRpS3AiKSxvPW4oImZITVkiKSxpPW4oIlgyVSsiKSxhPXIoInVuc2NvcGFibGVzIiksYz1BcnJheS5wcm90b3R5cGU7bnVsbD09Y1thXSYmaShjLGEsbyhudWxsKSksdC5leHBvcnRzPWZ1bmN0aW9uKHQpe2NbYV1bdF09ITB9fSxST2RQOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iiksbz1uKCJ4cllLIiksaT1uKCJ0aUtwIikoIm1hdGNoIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiByKHQpJiYodm9pZCAwIT09KGU9dFtpXSk/ISFlOiJSZWdFeHAiPT1vKHQpKX19LFJmeHo6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJ0eWNSIikuc29tZTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6bigic3dGTCIpKCJzb21lIil9LHtzb21lOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LFJtMVM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIxNFNsIiksbz1uKCJnbHJrIiksaT1uKCJVTVNRIiksYT1uKCJIWUFGIiksYz1uKCJpcVdXIiksdT1uKCJGTU5NIik7cigibWF0Y2giLDEsKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bZnVuY3Rpb24oZSl7dmFyIG49YSh0aGlzKSxyPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PXI/ci5jYWxsKGUsbik6bmV3IFJlZ0V4cChlKVt0XShTdHJpbmcobikpfSxmdW5jdGlvbih0KXt2YXIgcj1uKGUsdCx0aGlzKTtpZihyLmRvbmUpcmV0dXJuIHIudmFsdWU7dmFyIGE9byh0KSxzPVN0cmluZyh0aGlzKTtpZighYS5nbG9iYWwpcmV0dXJuIHUoYSxzKTt2YXIgZj1hLnVuaWNvZGU7YS5sYXN0SW5kZXg9MDtmb3IodmFyIGwscD1bXSxoPTA7bnVsbCE9PShsPXUoYSxzKSk7KXt2YXIgdj1TdHJpbmcobFswXSk7cFtoXT12LCIiPT09diYmKGEubGFzdEluZGV4PWMocyxpKGEubGFzdEluZGV4KSxmKSksaCsrfXJldHVybiAwPT09aD9udWxsOnB9XX0pKX0sU0VCaDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZ2xyayIpLG89bigiSEF1TSIpLGk9bigidGlLcCIpKCJzcGVjaWVzIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG4sYT1yKHQpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1hfHxudWxsPT0obj1yKGEpW2ldKT9lOm8obil9fSxTVEFFOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwRGt5Iik7dC5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXIoKGZ1bmN0aW9uKCl7cmV0dXJuIVN0cmluZyhTeW1ib2woKSl9KSl9LFNZb3I6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJXS2lIIikudHJpbTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjRIQ2kiKSgidHJpbSIpfSx7dHJpbTpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMpfX0pfSxURlBUOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJzdWIiKX0se3N1YjpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsInN1YiIsIiIsIiIpfX0pfSxUV05zOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCIyb1JvIiksaT1uKCJsTXE1IiksYT1uKCJjVllIIiksYz1uKCJtL0w4IikuZix1PW4oIkpCeTgiKS5mLHM9bigiUk9kUCIpLGY9bigiclcwdCIpLGw9bigiYnVzRSIpLHA9bigiMERreSIpLGg9bigiSmlaYiIpLHY9bigidGlLcCIpKCJtYXRjaCIpLGQ9by5SZWdFeHAsZw=="
}

Changelog:

{
    "2019.12.03 23:09": "base64:Im0vTDgiKS5mLGM9bigia09PbCIpLHU9bigidXk4MyIpLHM9YygibWV0YSIpLGY9MCxsPU9iamVjdC5pc0V4dGVuc2libGV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LHA9ZnVuY3Rpb24odCl7YSh0LHMse3ZhbHVlOntvYmplY3RJRDoiTyIrICsrZix3ZWFrRGF0YTp7fX19KX0saD10LmV4cG9ydHM9e1JFUVVJUkVEOiExLGZhc3RLZXk6ZnVuY3Rpb24odCxlKXtpZighbyh0KSlyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHQ/dDooInN0cmluZyI9PXR5cGVvZiB0PyJTIjoiUCIpK3Q7aWYoIWkodCxzKSl7aWYoIWwodCkpcmV0dXJuIkYiO2lmKCFlKXJldHVybiJFIjtwKHQpfXJldHVybiB0W3NdLm9iamVjdElEfSxnZXRXZWFrRGF0YTpmdW5jdGlvbih0LGUpe2lmKCFpKHQscykpe2lmKCFsKHQpKXJldHVybiEwO2lmKCFlKXJldHVybiExO3AodCl9cmV0dXJuIHRbc10ud2Vha0RhdGF9LG9uRnJlZXplOmZ1bmN0aW9uKHQpe3JldHVybiB1JiZoLlJFUVVJUkVEJiZsKHQpJiYhaSh0LHMpJiZwKHQpLHR9fTtyW3NdPSEwfSwiOTBoVyI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gMD09KHQ9K3QpfHx0IT10P3Q6dDwwPy0xOjF9fSwiOTNJMCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIlZwSVQiKSxvPW4oImtPT2wiKSxpPXIoImtleXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGlbdF18fChpW3RdPW8odCkpfX0sIjlMUGoiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiZXd2VyIpLGE9bigid0U2diIpO3Ioe3RhcmdldDoiRGF0ZSIscHJvdG86ITAsZm9yY2VkOm8oKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1uZXcgRGF0ZShOYU4pLnRvSlNPTigpfHwxIT09RGF0ZS5wcm90b3R5cGUudG9KU09OLmNhbGwoe3RvSVNPU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDF9fSl9KSl9LHt0b0pTT046ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKSxuPWEoZSk7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBufHxpc0Zpbml0ZShuKT9lLnRvSVNPU3RyaW5nKCk6bnVsbH19KX0sIjlOMjkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMVkvbiIpLnJpZ2h0O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpuKCJzd0ZMIikoInJlZHVjZVJpZ2h0Iil9LHtyZWR1Y2VSaWdodDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LCI5Yko3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oIlpVZDgiKS5jb2RlQXQ7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7Y29kZVBvaW50QXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0KX19KX0sIjlkL3QiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ4cllLIiksbz1uKCJ0aUtwIikoInRvU3RyaW5nVGFnIiksaT0iQXJndW1lbnRzIj09cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxuLGE7cmV0dXJuIHZvaWQgMD09PXQ/IlVuZGVmaW5lZCI6bnVsbD09PXQ/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yobj1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaChuKXt9fShlPU9iamVjdCh0KSxvKSk/bjppP3IoZSk6Ik9iamVjdCI9PShhPXIoZSkpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jYWxsZWU/IkFyZ3VtZW50cyI6YX19LCI5bVJXIjpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITB9LHtmcm91bmQ6bigidm80ViIpfSl9LCI5dGIvIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiSTh2aCIpLGk9U3RyaW5nLmZyb21DaGFyQ29kZSxhPVN0cmluZy5mcm9tQ29kZVBvaW50O3Ioe3RhcmdldDoiU3RyaW5nIixzdGF0OiEwLGZvcmNlZDohIWEmJjEhPWEubGVuZ3RofSx7ZnJvbUNvZGVQb2ludDpmdW5jdGlvbih0KXtmb3IodmFyIGUsbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGgsYT0wO3I+YTspe2lmKGU9K2FyZ3VtZW50c1thKytdLG8oZSwxMTE0MTExKSE9PWUpdGhyb3cgUmFuZ2VFcnJvcihlKyIgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCIpO24ucHVzaChlPDY1NTM2P2koZSk6aSg1NTI5NisoKGUtPTY1NTM2KT4+MTApLGUlMTAyNCs1NjMyMCkpfXJldHVybiBuLmpvaW4oIiIpfX0pfSxBbUZPOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCIwRGt5IiksaT1uKCJqclV2IiksYT1NYXRoLmFicyxjPU1hdGguZXhwLHU9TWF0aC5FO3Ioe3RhcmdldDoiTWF0aCIsc3RhdDohMCxmb3JjZWQ6bygoZnVuY3Rpb24oKXtyZXR1cm4tMmUtMTchPU1hdGguc2luaCgtMmUtMTcpfSkpfSx7c2luaDpmdW5jdGlvbih0KXtyZXR1cm4gYSh0PSt0KTwxPyhpKHQpLWkoLXQpKS8yOihjKHQtMSktYygtdC0xKSkqKHUvMil9fSl9LEJOTXQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoImJsaW5rIil9LHtibGluazpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LEJUaG86ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJIQXVNIiksbz1uKCJoaDF2IiksaT1bXS5zbGljZSxhPXt9LGM9ZnVuY3Rpb24odCxlLG4pe2lmKCEoZSBpbiBhKSl7Zm9yKHZhciByPVtdLG89MDtvPGU7bysrKXJbb109ImFbIitvKyJdIjthW2VdPUZ1bmN0aW9uKCJDLGEiLCJyZXR1cm4gbmV3IEMoIityLmpvaW4oIiwiKSsiKSIpfXJldHVybiBhW2VdKHQsbil9O3QuZXhwb3J0cz1GdW5jdGlvbi5iaW5kfHxmdW5jdGlvbih0KXt2YXIgZT1yKHRoaXMpLG49aS5jYWxsKGFyZ3VtZW50cywxKSxhPWZ1bmN0aW9uKCl7dmFyIHI9bi5jb25jYXQoaS5jYWxsKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2YgYT9jKGUsci5sZW5ndGgscik6ZS5hcHBseSh0LHIpfTtyZXR1cm4gbyhlLnByb3RvdHlwZSkmJihhLnByb3RvdHlwZT1lLnByb3RvdHlwZSksYX19LCJCWC9iIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiL0dxVSIpLG89bigiSkJ5OCIpLmYsaT17fS50b1N0cmluZyxhPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W107dC5leHBvcnRzLmY9ZnVuY3Rpb24odCl7cmV0dXJuIGEmJiJbb2JqZWN0IFdpbmRvd10iPT1pLmNhbGwodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBvKHQpfWNhdGNoKGUpe3JldHVybiBhLnNsaWNlKCl9fSh0KTpvKHIodCkpfX0sQnM4VjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZzZ2LyIpLG89bigiMGVlZiIpLGk9bigiWEd3QyIpLGE9bigiL0dxVSIpLGM9bigid0U2diIpLHU9bigiVVRWUyIpLHM9bigiRFBzeCIpLGY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtlLmY9cj9mOmZ1bmN0aW9uKHQsZSl7aWYodD1hKHQpLGU9YyhlLCEwKSxzKXRyeXtyZXR1cm4gZih0LGUpfWNhdGNoKG4pe31pZih1KHQsZSkpcmV0dXJuIGkoIW8uZi5jYWxsKHQsZSksdFtlXSl9fSxDc2dEOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCJqclV2Iik7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDpvIT1NYXRoLmV4cG0xfSx7ZXhwbTE6b30pfSxERWZ1OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIik7bigiMUU1eiIpKHIuSlNPTiwiSlNPTiIsITApfSxETXQyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJVTVNRIiksbz1uKCJFVWphIiksaT1uKCJIWUFGIiksYT1NYXRoLmNlaWwsYz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGMpe3ZhciB1LHMsZj1TdHJpbmcoaShlKSksbD1mLmxlbmd0aCxwPXZvaWQgMD09PWM/IiAiOlN0cmluZyhjKSxoPXIobik7cmV0dXJuIGg8PWx8fCIiPT1wP2Y6KChzPW8uY2FsbChwLGEoKHU9aC1sKS9wLmxlbmd0aCkpKS5sZW5ndGg+dSYmKHM9cy5zbGljZSgwLHUpKSx0P2YrczpzK2YpfX07dC5leHBvcnRzPXtzdGFydDpjKCExKSxlbmQ6YyghMCl9fSxEUHN4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCIwRGt5IiksaT1uKCJ6Qko0Iik7dC5leHBvcnRzPSFyJiYhbygoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGkoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sRFFOYTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYnVzRSIpLG89RGF0ZS5wcm90b3R5cGUsaT1vLnRvU3RyaW5nLGE9by5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPSJJbnZhbGlkIERhdGUiJiZyKG8sInRvU3RyaW5nIiwoZnVuY3Rpb24oKXt2YXIgdD1hLmNhbGwodGhpcyk7cmV0dXJuIHQ9PXQ/aS5jYWxsKHRoaXMpOiJJbnZhbGlkIERhdGUifSkpfSxFNU5NOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJiaWciKX0se2JpZzpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsImJpZyIsIiIsIiIpfX0pfSxFOVhEOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiMVkvbiIpLmxlZnQ7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOm4oInN3RkwiKSgicmVkdWNlIil9LHtyZWR1Y2U6ZnVuY3Rpb24odCl7cmV0dXJuIG8odGhpcyx0LGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxFTkY5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsbz1uKCIyb1JvIiksaT1uKCI0c3l3IiksYT1uKCI4WU9hIiksYz1uKCJiV0ZoIiksdT1uKCJyS3piIikscz1uKCJoaDF2IiksZj1uKCJhZk84IikuZW5mb3JjZSxsPW4oImY1cDEiKSxwPSFvLkFjdGl2ZVhPYmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIG8saD1PYmplY3QuaXNFeHRlbnNpYmxlLHY9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sZD10LmV4cG9ydHM9YygiV2Vha01hcCIsdix1LCEwLCEwKTtpZihsJiZwKXtyPXUuZ2V0Q29uc3RydWN0b3IodiwiV2Vha01hcCIsITApLGEuUkVRVUlSRUQ9ITA7dmFyIGc9ZC5wcm90b3R5cGUseT1nLmRlbGV0ZSxiPWcuaGFzLG09Zy5nZXQsaz1nLnNldDtpKGcse2RlbGV0ZTpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgcikseS5jYWxsKHRoaXMsdCl8fGUuZnJvemVuLmRlbGV0ZSh0KX1yZXR1cm4geS5jYWxsKHRoaXMsdCl9LGhhczpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCl8fGUuZnJvemVuLmhhcyh0KX1yZXR1cm4gYi5jYWxsKHRoaXMsdCl9LGdldDpmdW5jdGlvbih0KXtpZihzKHQpJiYhaCh0KSl7dmFyIGU9Zih0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCk/bS5jYWxsKHRoaXMsdCk6ZS5mcm96ZW4uZ2V0KHQpfXJldHVybiBtLmNhbGwodGhpcyx0KX0sc2V0OmZ1bmN0aW9uKHQsZSl7aWYocyh0KSYmIWgodCkpe3ZhciBuPWYodGhpcyk7bi5mcm96ZW58fChuLmZyb3plbj1uZXcgciksYi5jYWxsKHRoaXMsdCk/ay5jYWxsKHRoaXMsdCxlKTpuLmZyb3plbi5zZXQodCxlKX1lbHNlIGsuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXN9fSl9fSxFVWphOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigicHBHQiIpLG89bigiSFlBRiIpO3QuZXhwb3J0cz0iIi5yZXBlYXR8fGZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhvKHRoaXMpKSxuPSIiLGk9cih0KTtpZihpPDB8fGk9PTEvMCl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO2k+MDsoaT4+Pj0xKSYmKGUrPWUpKTEmaSYmKG4rPWUpO3JldHVybiBufX0sRW5aeTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjE0U2wiKSxvPW4oIlJPZFAiKSxpPW4oImdscmsiKSxhPW4oIkhZQUYiKSxjPW4oIlNFQmgiKSx1PW4oImlxV1ciKSxzPW4oIlVNU1EiKSxmPW4oIkZNTk0iKSxsPW4oImttTVYiKSxwPW4oIjBEa3kiKSxoPVtdLnB1c2gsdj1NYXRoLm1pbixkPSFwKChmdW5jdGlvbigpe3JldHVybiFSZWdFeHAoNDI5NDk2NzI5NSwieSIpfSkpO3IoInNwbGl0IiwyLChmdW5jdGlvbih0LGUsbil7dmFyIHI7cmV0dXJuIHI9ImMiPT0iYWJiYyIuc3BsaXQoLyhiKSovKVsxXXx8NCE9InRlc3QiLnNwbGl0KC8oPzopLywtMSkubGVuZ3RofHwyIT0iYWIiLnNwbGl0KC8oPzphYikqLykubGVuZ3RofHw0IT0iLiIuc3BsaXQoLyguPykoLj8pLykubGVuZ3RofHwiLiIuc3BsaXQoLygpKCkvKS5sZW5ndGg+MXx8IiIuc3BsaXQoLy4/LykubGVuZ3RoP2Z1bmN0aW9uKHQsbil7dmFyIHI9U3RyaW5nKGEodGhpcykpLGk9dm9pZCAwPT09bj80Mjk0OTY3Mjk1Om4+Pj4wO2lmKDA9PT1pKXJldHVybltdO2lmKHZvaWQgMD09PXQpcmV0dXJuW3JdO2lmKCFvKHQpKXJldHVybiBlLmNhbGwocix0LGkpO2Zvcih2YXIgYyx1LHMsZj1bXSxwPTAsdj1uZXcgUmVnRXhwKHQuc291cmNlLCh0Lmlnbm9yZUNhc2U/ImkiOiIiKSsodC5tdWx0aWxpbmU/Im0iOiIiKSsodC51bmljb2RlPyJ1IjoiIikrKHQuc3RpY2t5PyJ5IjoiIikrImciKTsoYz1sLmNhbGwodixyKSkmJiEoKHU9di5sYXN0SW5kZXgpPnAmJihmLnB1c2goci5zbGljZShwLGMuaW5kZXgpKSxjLmxlbmd0aD4xJiZjLmluZGV4PHIubGVuZ3RoJiZoLmFwcGx5KGYsYy5zbGljZSgxKSkscz1jWzBdLmxlbmd0aCxwPXUsZi5sZW5ndGg+PWkpKTspdi5sYXN0SW5kZXg9PT1jLmluZGV4JiZ2Lmxhc3RJbmRleCsrO3JldHVybiBwPT09ci5sZW5ndGg/IXMmJnYudGVzdCgiIil8fGYucHVzaCgiIik6Zi5wdXNoKHIuc2xpY2UocCkpLGYubGVuZ3RoPmk/Zi5zbGljZSgwLGkpOmZ9OiIwIi5zcGxpdCh2b2lkIDAsMCkubGVuZ3RoP2Z1bmN0aW9uKHQsbil7cmV0dXJuIHZvaWQgMD09PXQmJjA9PT1uP1tdOmUuY2FsbCh0aGlzLHQsbil9OmUsW2Z1bmN0aW9uKGUsbil7dmFyIG89YSh0aGlzKSxpPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKGUsbyxuKTpyLmNhbGwoU3RyaW5nKG8pLGUsbil9LGZ1bmN0aW9uKHQsbyl7dmFyIGE9bihyLHQsdGhpcyxvLHIhPT1lKTtpZihhLmRvbmUpcmV0dXJuIGEudmFsdWU7dmFyIGw9aSh0KSxwPVN0cmluZyh0aGlzKSxoPWMobCxSZWdFeHApLGc9bC51bmljb2RlLHk9bmV3IGgoZD9sOiJeKD86IitsLnNvdXJjZSsiKSIsKGwuaWdub3JlQ2FzZT8iaSI6IiIpKyhsLm11bHRpbGluZT8ibSI6IiIpKyhsLnVuaWNvZGU/InUiOiIiKSsoZD8ieSI6ImciKSksYj12b2lkIDA9PT1vPzQyOTQ5NjcyOTU6bz4+PjA7aWYoMD09PWIpcmV0dXJuW107aWYoMD09PXAubGVuZ3RoKXJldHVybiBudWxsPT09Zih5LHApP1twXTpbXTtmb3IodmFyIG09MCxrPTAsXz1bXTtrPHAubGVuZ3RoOyl7eS5sYXN0SW5kZXg9ZD9rOjA7dmFyIHcseD1mKHksZD9wOnAuc2xpY2UoaykpO2lmKG51bGw9PT14fHwodz12KHMoeS5sYXN0SW5kZXgrKGQ/MDprKSkscC5sZW5ndGgpKT09PW0paz11KHAsayxnKTtlbHNle2lmKF8ucHVzaChwLnNsaWNlKG0saykpLF8ubGVuZ3RoPT09YilyZXR1cm4gXztmb3IodmFyIFM9MTtTPD14Lmxlbmd0aC0xO1MrKylpZihfLnB1c2goeFtTXSksXy5sZW5ndGg9PT1iKXJldHVybiBfO2s9bT13fX1yZXR1cm4gXy5wdXNoKHAuc2xpY2UobSkpLF99XX0pLCFkKX0sRXA5STpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1PYmplY3QuaXN8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lPzAhPT10fHwxL3Q9PTEvZTp0IT10JiZlIT1lfX0sRXhvQzpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se3NldFByb3RvdHlwZU9mOm4oIjBydnIiKX0pfSxGOEpSOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigidHljUiIpLmZvckVhY2gsbz1uKCJzd0ZMIik7dC5leHBvcnRzPW8oImZvckVhY2giKT9mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfTpbXS5mb3JFYWNofSxGRjZsOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZXd2VyIpLG89bigiSTh2aCIpLGk9bigiVU1TUSIpLGE9TWF0aC5taW47dC5leHBvcnRzPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKHQsZSl7dmFyIG49cih0aGlzKSxjPWkobi5sZW5ndGgpLHU9byh0LGMpLHM9byhlLGMpLGY9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbD1hKCh2b2lkIDA9PT1mP2M6byhmLGMpKS1zLGMtdSkscD0xO2ZvcihzPHUmJnU8cytsJiYocD0tMSxzKz1sLTEsdSs9bC0xKTtsLS0gPjA7KXMgaW4gbj9uW3VdPW5bc106ZGVsZXRlIG5bdV0sdSs9cCxzKz1wO3JldHVybiBufX0sRk1OTTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieHJZSyIpLG89bigia21NViIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXQuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2Ygbil7dmFyIGk9bi5jYWxsKHQsZSk7aWYoIm9iamVjdCIhPXR5cGVvZiBpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIGl9aWYoIlJlZ0V4cCIhPT1yKHQpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpO3JldHVybiBvLmNhbGwodCxlKX19LEZadFA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKSxvPW4oIi9ieXQiKSxpPW4oIkY4SlIiKSxhPW4oIlgyVSsiKTtmb3IodmFyIGMgaW4gbyl7dmFyIHU9cltjXSxzPXUmJnUucHJvdG90eXBlO2lmKHMmJnMuZm9yRWFjaCE9PWkpdHJ5e2EocywiZm9yRWFjaCIsaSl9Y2F0Y2goZil7cy5mb3JFYWNoPWl9fX0sIkcrUngiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwR2JZIik7dC5leHBvcnRzPXIoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LEdLVlU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJoWHBPIik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpuKCI2dW5LIikoImFuY2hvciIpfSx7YW5jaG9yOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsImEiLCJuYW1lIix0KX19KX0sR1JQRjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIkkrZWIiKSxvPW4oImhYcE8iKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjZ1bksiKSgiZm9udHNpemUiKX0se2ZvbnRzaXplOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsImZvbnQiLCJzaXplIix0KX19KX0sR1h2ZDpmdW5jdGlvbih0LGUsbil7bigiZEcvbiIpKCJzcGVjaWVzIil9LEdhclU6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0ICIrKG4/bisiICI6IiIpKyJpbnZvY2F0aW9uIik7cmV0dXJuIHR9fSxIMHBiOmZ1bmN0aW9uKHQsZSxuKXtuKCJtYTlJIiksbigiMDdkNyIpLG4oInBOTU8iKSxuKCJ0alpNIiksbigiNEJyZiIpLG4oIjNJMVIiKSxuKCI3K2tkIiksbigiMG91ZyIpLG4oIktoc1MiKSxuKCJqdDJGIiksbigiZ09DYiIpLG4oImE1N24iKSxuKCJHWHZkIiksbigiSTFHdyIpLG4oImdYSUsiKSxuKCJsRW91IiksbigiZ2JpVCIpLG4oIkk5eGoiKSxuKCJERWZ1Iik7dmFyIHI9bigiUW85bCIpO3QuZXhwb3J0cz1yLlN5bWJvbH0sSEF1TTpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKHQpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gdH19LEhING86ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInRpS3AiKSgiaXRlcmF0b3IiKSxvPSExO3RyeXt2YXIgaT0wLGE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWkrK319LHJldHVybjpmdW5jdGlvbigpe289ITB9fTthW3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oYSwoZnVuY3Rpb24oKXt0aHJvdyAyfSkpfWNhdGNoKGMpe310LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighZSYmIW8pcmV0dXJuITE7dmFyIG49ITE7dHJ5e3ZhciBpPXt9O2lbcl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOm49ITB9fX19LHQoaSl9Y2F0Y2goYyl7fXJldHVybiBufX0sSFJ4VTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiZzZ2LyIpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohbyxzaGFtOiFvfSx7ZGVmaW5lUHJvcGVydGllczpuKCJOK2cwIil9KX0sSFlBRjpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihudWxsPT10KXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIit0KTtyZXR1cm4gdH19LEhkNWY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKSxvPW4oInRpS3AiKSgic3BlY2llcyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4hcigoZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4oZS5jb25zdHJ1Y3Rvcj17fSlbb109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09ZVt0XShCb29sZWFuKS5mb299KSl9fSxIc0hBOmZ1bmN0aW9uKHQsZSl7dmFyIG49TWF0aC5sb2c7dC5leHBvcnRzPU1hdGgubG9nMXB8fGZ1bmN0aW9uKHQpe3JldHVybih0PSt0KT4tMWUtOCYmdDwxZS04P3QtdCp0LzI6bigxK3QpfX0sIkkrZWIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyb1JvIiksbz1uKCJCczhWIikuZixpPW4oIlgyVSsiKSxhPW4oImJ1c0UiKSxjPW4oInprNjAiKSx1PW4oIjZKTnEiKSxzPW4oImxNcTUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgbixmLGwscCxoLHY9dC50YXJnZXQsZD10Lmdsb2JhbCxnPXQuc3RhdDtpZihuPWQ/cjpnP3Jbdl18fGModix7fSk6KHJbdl18fHt9KS5wcm90b3R5cGUpZm9yKGYgaW4gZSl7aWYocD1lW2ZdLGw9dC5ub1RhcmdldEdldD8oaD1vKG4sZikpJiZoLnZhbHVlOm5bZl0sIXMoZD9mOnYrKGc/Ii4iOiIjIikrZix0LmZvcmNlZCkmJnZvaWQgMCE9PWwpe2lmKHR5cGVvZiBwPT10eXBlb2YgbCljb250aW51ZTt1KHAsbCl9KHQuc2hhbXx8bCYmbC5zaGFtKSYmaShwLCJzaGFtIiwhMCksYShuLGYscCx0KX19fSxJMUd3OmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoInNwbGl0Iil9LEk4dmg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInBwR0IiKSxvPU1hdGgubWF4LGk9TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49cih0KTtyZXR1cm4gbjwwP28obitlLDApOmkobixlKX19LEk5eGo6ZnVuY3Rpb24odCxlLG4pe24oIjFFNXoiKShNYXRoLCJNYXRoIiwhMCl9LEltWk46ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImdscmsiKSxvPW4oIjZWb0UiKSxpPW4oIlVNU1EiKSxhPW4oIitNTHgiKSxjPW4oIk5hRlciKSx1PW4oIm05Mm4iKSxzPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdG9wcGVkPXQsdGhpcy5yZXN1bHQ9ZX07KHQuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixmLGwpe3ZhciBwLGgsdixkLGcseSxiPWEoZSxuLGY/MjoxKTtpZihsKXA9dDtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihoPWModCkpKXRocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBpdGVyYWJsZSIpO2lmKG8oaCkpe2Zvcih2PTAsZD1pKHQubGVuZ3RoKTtkPnY7disrKWlmKChnPWY/YihyKHk9dFt2XSlbMF0seVsxXSk6Yih0W3ZdKSkmJmcgaW5zdGFuY2VvZiBzKXJldHVybiBnO3JldHVybiBuZXcgcyghMSl9cD1oLmNhbGwodCl9Zm9yKDshKHk9cC5uZXh0KCkpLmRvbmU7KWlmKChnPXUocCxiLHkudmFsdWUsZikpJiZnIGluc3RhbmNlb2YgcylyZXR1cm4gZztyZXR1cm4gbmV3IHMoITEpfSkuc3RvcD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHMoITAsdCl9fSxJeFhSOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJzdHJpa2UiKX0se3N0cmlrZTpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsInN0cmlrZSIsIiIsIiIpfX0pfSxKMzBYOmZ1bmN0aW9uKHQsZSxuKXtuKCJJK2ViIikoe3RhcmdldDoiQXJyYXkiLHN0YXQ6ITB9LHtpc0FycmF5Om4oIjZMV0EiKX0pfSxKQnk4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJ5b1JnIiksbz1uKCJlRGwrIikuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiByKHQsbyl9fSxKVEpnOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiV2pSYiIpLGk9bigiSFlBRiIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6IW4oInF4UFoiKSgiaW5jbHVkZXMiKX0se2luY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiEhflN0cmluZyhpKHRoaXMpKS5pbmRleE9mKG8odCksYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSxKZXZBOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1uKCI1WU9RIik7cih7dGFyZ2V0OiJOdW1iZXIiLHN0YXQ6ITAsZm9yY2VkOk51bWJlci5wYXJzZUludCE9b30se3BhcnNlSW50Om99KX0sSmZBQTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImJ1c0UiKSxvPW4oImdscmsiKSxpPW4oIjBEa3kiKSxhPW4oInJXMHQiKSxjPVJlZ0V4cC5wcm90b3R5cGUsdT1jLnRvU3RyaW5nOyhpKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9dS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSkpfHwidG9TdHJpbmciIT11Lm5hbWUpJiZyKFJlZ0V4cC5wcm90b3R5cGUsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXt2YXIgdD1vKHRoaXMpLGU9U3RyaW5nKHQuc291cmNlKSxuPXQuZmxhZ3M7cmV0dXJuIi8iK2UrIi8iK1N0cmluZyh2b2lkIDA9PT1uJiZ0IGluc3RhbmNlb2YgUmVnRXhwJiYhKCJmbGFncyJpbiBjKT9hLmNhbGwodCk6bil9KSx7dW5zYWZlOiEwfSl9LEppWmI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIwR2JZIiksbz1uKCJtL0w4IiksaT1uKCJ0aUtwIiksYT1uKCJnNnYvIiksYz1pKCJzcGVjaWVzIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCk7YSYmZSYmIWVbY10mJigwLG8uZikoZSxjLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSxLaHNTOmZ1bmN0aW9uKHQsZSxuKXtuKCJkRy9uIikoIm1hdGNoIil9LEt2OWw6ZnVuY3Rpb24odCxlLG4pe24oIlRXTnMiKSxuKCJKZkFBIiksbigickI5aiIpLG4oIlUzZjQiKSxuKCJSbTFTIiksbigiVXhsQyIpLG4oImhCeVEiKSxuKCJFblp5Iil9LEt2R2k6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7c2lnbjpuKCI5MGhXIil9KX0sS3hsZDpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se2lzOm4oIkVwOUkiKX0pfSxMS0J4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiVU1TUSIpLGk9bigiV2pSYiIpLGE9bigiSFlBRiIpLGM9bigicXhQWiIpLHU9IiIuc3RhcnRzV2l0aCxzPU1hdGgubWluO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6IWMoInN0YXJ0c1dpdGgiKX0se3N0YXJ0c1dpdGg6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKGEodGhpcykpO2kodCk7dmFyIG49byhzKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGUubGVuZ3RoKSkscj1TdHJpbmcodCk7cmV0dXJuIHU/dS5jYWxsKGUscixuKTplLnNsaWNlKG4sbityLmxlbmd0aCk9PT1yfX0pfSxMUFNTOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvLGksYT1uKCIyb1JvIiksYz1uKCIwRGt5IiksdT1uKCJ4cllLIikscz1uKCIrTUx4IiksZj1uKCJHK1J4IiksbD1uKCJ6Qko0IikscD1hLmxvY2F0aW9uLGg9YS5zZXRJbW1lZGlhdGUsdj1hLmNsZWFySW1tZWRpYXRlLGQ9YS5wcm9jZXNzLGc9YS5NZXNzYWdlQ2hhbm5lbCx5PWEuRGlzcGF0Y2gsYj0wLG09e30saz1mdW5jdGlvbih0KXtpZihtLmhhc093blByb3BlcnR5KHQpKXt2YXIgZT1tW3RdO2RlbGV0ZSBtW3RdLGUoKX19LF89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7ayh0KX19LHc9ZnVuY3Rpb24odCl7ayh0LmRhdGEpfSx4PWZ1bmN0aW9uKHQpe2EucG9zdE1lc3NhZ2UodCsiIixwLnByb3RvY29sKyIvLyIrcC5ob3N0KX07aCYmdnx8KGg9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MTthcmd1bWVudHMubGVuZ3RoPm47KWUucHVzaChhcmd1bWVudHNbbisrXSk7cmV0dXJuIG1bKytiXT1mdW5jdGlvbigpeygiZnVuY3Rpb24iPT10eXBlb2YgdD90OkZ1bmN0aW9uKHQpKS5hcHBseSh2b2lkIDAsZSl9LHIoYiksYn0sdj1mdW5jdGlvbih0KXtkZWxldGUgbVt0XX0sInByb2Nlc3MiPT11KGQpP3I9ZnVuY3Rpb24odCl7ZC5uZXh0VGljayhfKHQpKX06eSYmeS5ub3c/cj1mdW5jdGlvbih0KXt5Lm5vdyhfKHQpKX06Zz8oaT0obz1uZXcgZykucG9ydDIsby5wb3J0MS5vbm1lc3NhZ2U9dyxyPXMoaS5wb3N0TWVzc2FnZSxpLDEpKTohYS5hZGRFdmVudExpc3RlbmVyfHwiZnVuY3Rpb24iIT10eXBlb2YgcG9zdE1lc3NhZ2V8fGEuaW1wb3J0U2NyaXB0c3x8Yyh4KT9yPSJvbnJlYWR5c3RhdGVjaGFuZ2UiaW4gbCgic2NyaXB0Iik/ZnVuY3Rpb24odCl7Zi5hcHBlbmRDaGlsZChsKCJzY3JpcHQiKSkub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7Zi5yZW1vdmVDaGlsZCh0aGlzKSxrKHQpfX06ZnVuY3Rpb24odCl7c2V0VGltZW91dChfKHQpLDApfToocj14LGEuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdywhMSkpKSx0LmV4cG9ydHM9e3NldDpoLGNsZWFyOnZ9fSwiTitnMCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImc2di8iKSxvPW4oIm0vTDgiKSxpPW4oImdscmsiKSxhPW4oIjMzV2giKTt0LmV4cG9ydHM9cj9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbih0LGUpe2kodCk7Zm9yKHZhciBuLHI9YShlKSxjPXIubGVuZ3RoLHU9MDtjPnU7KW8uZih0LG49clt1KytdLGVbbl0pO3JldHVybiB0fX0sTkJBUzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiMERreSIpLGk9bigiZXd2VyIpLGE9bigiNFdPRCIpLGM9bigiNFhldCIpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpvKChmdW5jdGlvbigpe2EoMSl9KSksc2hhbTohY30se2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX0pfSxOYUZXOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI5ZC90Iiksbz1uKCJQNHkxIiksaT1uKCJ0aUtwIikoIml0ZXJhdG9yIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpcmV0dXJuIHRbaV18fHRbIkBAaXRlcmF0b3IiXXx8b1tyKHQpXX19LCJOYk4rIjpmdW5jdGlvbih0LGUsbil7bigiSStlYiIpKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se0VQU0lMT046TWF0aC5wb3coMiwtNTIpfSl9LE83NDE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImhoMXYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXIodCkmJm51bGwhPT10KXRocm93IFR5cGVFcnJvcigiQ2FuJ3Qgc2V0ICIrU3RyaW5nKHQpKyIgYXMgYSBwcm90b3R5cGUiKTtyZXR1cm4gdH19LE9NOVo6ZnVuY3Rpb24odCxlLG4pe24oIkkrZWIiKSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7cmVwZWF0Om4oIkVVamEiKX0pfSxQNHkxOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPXt9fSxQS1BrOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiWlVkOCIpLmNoYXJBdCxvPW4oImFmTzgiKSxpPW4oImZkQXkiKSxhPW8uc2V0LGM9by5nZXR0ZXJGb3IoIlN0cmluZyBJdGVyYXRvciIpO2koU3RyaW5nLCJTdHJpbmciLChmdW5jdGlvbih0KXthKHRoaXMse3R5cGU6IlN0cmluZyBJdGVyYXRvciIsc3RyaW5nOlN0cmluZyh0KSxpbmRleDowfSl9KSwoZnVuY3Rpb24oKXt2YXIgdCxlPWModGhpcyksbj1lLnN0cmluZyxvPWUuaW5kZXg7cmV0dXJuIG8+PW4ubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KHQ9cihuLG8pLGUuaW5kZXgrPXQubGVuZ3RoLHt2YWx1ZTp0LGRvbmU6ITF9KX0pKX0sUHFPSTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiSStlYiIpLG89bigiOTBoVyIpLGk9TWF0aC5hYnMsYT1NYXRoLnBvdztyKHt0YXJnZXQ6Ik1hdGgiLHN0YXQ6ITB9LHtjYnJ0OmZ1bmN0aW9uKHQpe3JldHVybiBvKHQ9K3QpKmEoaSh0KSwxLzMpfX0pfSxRRmNUOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJJK2ViIiksbz1NYXRoLmh5cG90LGk9TWF0aC5hYnMsYT1NYXRoLnNxcnQ7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwLGZvcmNlZDohIW8mJm8oMS8wLE5hTikhPT0xLzB9LHtoeXBvdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbixyLG89MCxjPTAsdT1hcmd1bWVudHMubGVuZ3RoLHM9MDtjPHU7KXM8KG49aShhcmd1bWVudHNbYysrXSkpPyhvPW8qKHI9cy9uKSpyKzEscz1uKTpvKz1uPjA/KHI9bi9zKSpyOm47cmV0dXJuIHM9PT0xLzA/MS8wOnMqYShvKX19KX0sUUlwZDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigieHJZSyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQmJiJOdW1iZXIiIT1yKHQpKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0IGludm9jYXRpb24iKTtyZXR1cm4rdH19LFFObnA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIkkrZWIiKSxvPU1hdGguZmxvb3IsaT1NYXRoLmxvZyxhPU1hdGguTE9HMkU7cih7dGFyZ2V0OiJNYXRoIixzdGF0OiEwfSx7Y2x6MzI6ZnVuY3Rpb24odCl7cmV0dXJuKHQ+Pj49MCk/MzEtbyhpKHQrLjUpKmEpOjMyfX0pfSxRV0JsOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiRjhKUiIpO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpbXS5mb3JFYWNoIT1vfSx7Zm9yRWFjaDpvfSl9LFFvOWw6ZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1uKCIyb1JvIil9LFJLM3Q6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjBEa3kiKSxvPW4oInhyWUsiKSxpPSIiLnNwbGl0O3QuZXhwb3J0cz1yKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09byh0KT9pLmNhbGwodCwiIik6T2JqZWN0KHQpfTpPYmplY3R9LFJONmM6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJvUm8iKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgbj1yLmNvbnNvbGU7biYmbi5lcnJvciYmKDE9PT1hcmd1bWVudHMubGVuZ3RoP24uZXJyb3IodCk6bi5lcnJvcih0LGUpKX19LFJOSXM6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oInRpS3AiKSxvPW4oImZITVkiKSxpPW4oIlgyVSsiKSxhPXIoInVuc2NvcGFibGVzIiksYz1BcnJheS5wcm90b3R5cGU7bnVsbD09Y1thXSYmaShjLGEsbyhudWxsKSksdC5leHBvcnRzPWZ1bmN0aW9uKHQpe2NbYV1bdF09ITB9fSxST2RQOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJoaDF2Iiksbz1uKCJ4cllLIiksaT1uKCJ0aUtwIikoIm1hdGNoIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiByKHQpJiYodm9pZCAwIT09KGU9dFtpXSk/ISFlOiJSZWdFeHAiPT1vKHQpKX19LFJmeHo6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJ0eWNSIikuc29tZTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6bigic3dGTCIpKCJzb21lIil9LHtzb21lOmZ1bmN0aW9uKHQpe3JldHVybiBvKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LFJtMVM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIxNFNsIiksbz1uKCJnbHJrIiksaT1uKCJVTVNRIiksYT1uKCJIWUFGIiksYz1uKCJpcVdXIiksdT1uKCJGTU5NIik7cigibWF0Y2giLDEsKGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm5bZnVuY3Rpb24oZSl7dmFyIG49YSh0aGlzKSxyPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PXI/ci5jYWxsKGUsbik6bmV3IFJlZ0V4cChlKVt0XShTdHJpbmcobikpfSxmdW5jdGlvbih0KXt2YXIgcj1uKGUsdCx0aGlzKTtpZihyLmRvbmUpcmV0dXJuIHIudmFsdWU7dmFyIGE9byh0KSxzPVN0cmluZyh0aGlzKTtpZighYS5nbG9iYWwpcmV0dXJuIHUoYSxzKTt2YXIgZj1hLnVuaWNvZGU7YS5sYXN0SW5kZXg9MDtmb3IodmFyIGwscD1bXSxoPTA7bnVsbCE9PShsPXUoYSxzKSk7KXt2YXIgdj1TdHJpbmcobFswXSk7cFtoXT12LCIiPT09diYmKGEubGFzdEluZGV4PWMocyxpKGEubGFzdEluZGV4KSxmKSksaCsrfXJldHVybiAwPT09aD9udWxsOnB9XX0pKX0sU0VCaDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZ2xyayIpLG89bigiSEF1TSIpLGk9bigidGlLcCIpKCJzcGVjaWVzIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG4sYT1yKHQpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1hfHxudWxsPT0obj1yKGEpW2ldKT9lOm8obil9fSxTVEFFOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwRGt5Iik7dC5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXIoKGZ1bmN0aW9uKCl7cmV0dXJuIVN0cmluZyhTeW1ib2woKSl9KSl9LFNZb3I6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJJK2ViIiksbz1uKCJXS2lIIikudHJpbTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOm4oIjRIQ2kiKSgidHJpbSIpfSx7dHJpbTpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMpfX0pfSxURlBUOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiSStlYiIpLG89bigiaFhwTyIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6bigiNnVuSyIpKCJzdWIiKX0se3N1YjpmdW5jdGlvbigpe3JldHVybiBvKHRoaXMsInN1YiIsIiIsIiIpfX0pfSxUV05zOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJnNnYvIiksbz1uKCIyb1JvIiksaT1uKCJsTXE1IiksYT1uKCJjVllIIiksYz1uKCJtL0w4IikuZix1PW4oIkpCeTgiKS5mLHM9bigiUk9kUCIpLGY9bigiclcwdCIpLGw9bigiYnVzRSIpLHA9bigiMERreSIpLGg9bigiSmlaYiIpLHY9bigidGlLcCIpKCJtYXRjaCIpLGQ9by5SZWdFeHAsZw=="
}

github/deemru/w8io/9160af2 
6.09 ms