Калькулятор мгновенной скорости реакции
Расчёт мгновенной скорости химической реакции по закону действующих масс и уравнению Аррениуса — с поддержкой прямого ввода константы скорости или её вычисления через энергию активации.
—
Мгновенная скорость
моль/(л·с)
—
Константа скорости k
ед.
—
Общий порядок реакции
m + n
—
Период полупревращения (A)
с (если m = 1)
Как пользоваться
1
Выберите способ задания константы скорости: прямой ввод k (если значение известно) или расчёт по уравнению Аррениуса (если известны A, Ea и температура).
2
Введите концентрации реагентов A и B в моль/л (поле B можно оставить нулевым, если реагент один). Укажите порядки реакции m и n — они не всегда равны стехиометрическим коэффициентам и определяются экспериментально.
3
Введите значение константы скорости k (например, 0,1 с⁻¹ для первого порядка) или заполните поля A, Ea и T для автоматического расчёта k через энергию активации.
4
Нажмите «Рассчитать». Результат — мгновенная скорость v в моль/(л·с), значение k, общий порядок и период полупревращения (если m=1). При ошибках ввода появится подсказка.
Примеры использования
Реакция первого порядка (радиоактивный распад изотопа)
[A] = 0,8 моль/л, m = 1, [B] = 0, n = 0, k = 0,05 с⁻¹ → v = 0,04 моль/(л·с), t₁/₂ ≈ 13,9 с.
Бимолекулярная реакция второго порядка
[A] = 0,2 моль/л, m = 1, [B] = 0,3 моль/л, n = 1, k = 0,5 л/(моль·с) → v = 0,03 моль/(л·с), общий порядок = 2.
Расчёт k через уравнение Аррениуса
A = 2×10¹⁰, Ea = 75 кДж/моль, T = 25°C (298,15 K), R = 8,314 Дж/(моль·K) → k ≈ 132,5 с⁻¹. Далее для [A]=0,1 моль/л, m=1: v ≈ 13,25 моль/(л·с).
Важные нюансы
- Порядки реакции m и n определяются экспериментально и не всегда совпадают со стехиометрическими коэффициентами. Для элементарных реакций они равны молекулярности.
- Константа скорости k сильно зависит от температуры. Используйте уравнение Аррениуса для пересчёта k при изменении T. При высоких температурах возможны отклонения от линейности графика ln(k) от 1/T.
- Единицы измерения k зависят от общего порядка реакции: нулевой порядок — моль/(л·с), первый — с⁻¹, второй — л/(моль·с), n-й — л^(n-1)/(моль^(n-1)·с).
- Мгновенная скорость характеризует реакцию в конкретный момент времени. По мере расходования реагентов скорость уменьшается. Для точного расчёта текущей скорости используйте концентрации в интересующий момент времени.
- Для гетерогенных реакций и реакций с катализатором закон действующих масс модифицируется. Данный калькулятор применим для гомогенных реакций в растворе или газовой фазе.
Источники данных
- IUPAC Gold Book — Compendium of Chemical Terminology, раздел «Rate of reaction» и «Order of reaction» (goldbook.iupac.org).
- NIST Chemical Kinetics Database — National Institute of Standards and Technology, справочные данные по константам скорости и энергиям активации (kinetics.nist.gov).
- CRC Handbook of Chemistry and Physics — раздел «Chemical Kinetics», таблицы Аррениусовских параметров для типовых реакций.
- Учебные справочные данные — расчёт основан на стандартных химических формулах и школьно-вузовских значениях констант (газовая постоянная R = 8,314 Дж/(моль·K), коэффициент пересчёта градусов Цельсия в Кельвины +273,15).
Предупреждение о технике безопасности
- Данный калькулятор предназначен для образовательных и справочных целей. Реальные скорости реакций могут отличаться из-за примесей, давления, растворителя и других факторов.
- При работе с химическими веществами в лаборатории всегда используйте средства индивидуальной защиты (халат, очки, перчатки), работайте в вытяжном шкафу при необходимости и соблюдайте нормативы техники безопасности вашего учреждения.
- Не используйте расчётные значения для опасных реакций без экспериментальной верификации в контролируемых условиях. Скорость неконтролируемой реакции может привести к выбросу тепла, газа или разрушению оборудования.
Калькулятор мгновенной скорости реакции позволяет быстро вычислить скорость химического процесса по закону действующих масс. Инструмент поддерживает два режима: прямой ввод константы скорости k и расчёт k через уравнение Аррениуса с использованием энергии активации, предэкспоненциального множителя и температуры. Результат включает мгновенную скорость в моль/(л·с), значение константы скорости с корректными единицами, общий порядок реакции и период полупревращения для реакций первого порядка. Калькулятор полезен студентам химических специальностей, преподавателям и исследователям для быстрой оценки кинетических параметров гомогенных реакций.
CihmdW5jdGlvbigpewogIHZhciBtb2RlRGlyZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGUtZGlyZWN0Jyk7CiAgdmFyIG1vZGVBcnJoZW5pdXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kZS1hcnJoZW5pdXMnKTsKICB2YXIgZGlyZWN0R3JvdXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGlyZWN0LWstZ3JvdXAnKTsKICB2YXIgYXJyaGVuaXVzR3JvdXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJyaGVuaXVzLWdyb3VwJyk7CiAgdmFyIGJ0bkNhbGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWNhbGN1bGF0ZScpOwogIHZhciBidG5SZXNldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tcmVzZXQnKTsKICB2YXIgZXJyb3JFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxjLWVycm9yJyk7CgogIHZhciBpbnB1dENvbmNBID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmMtYScpOwogIHZhciBpbnB1dE9yZGVyQSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcmRlci1hJyk7CiAgdmFyIGlucHV0Q29uY0IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uYy1iJyk7CiAgdmFyIGlucHV0T3JkZXJCID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29yZGVyLWInKTsKICB2YXIgaW5wdXRDb25zdEsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc3QtaycpOwogIHZhciBpbnB1dFByZUV4cEEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJlLWV4cC1hJyk7CiAgdmFyIGlucHV0RW5lcmd5RWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW5lcmd5LWVhJyk7CiAgdmFyIGlucHV0VGVtcFQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcC10Jyk7CgogIHZhciByZXN1bHRTcGVlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtc3BlZWQnKTsKICB2YXIgcmVzdWx0SyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtaycpOwogIHZhciByZXN1bHRLVW5pdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtay11bml0Jyk7CiAgdmFyIHJlc3VsdE9yZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1vcmRlcicpOwogIHZhciByZXN1bHRIYWxmbGlmZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtaGFsZmxpZmUnKTsKCiAgdmFyIFJfSiA9IDguMzE0OwogIHZhciBDX1RPX0sgPSAyNzMuMTU7CgogIGZ1bmN0aW9uIHN3aXRjaE1vZGUoKSB7CiAgICBpZiAobW9kZURpcmVjdC5jaGVja2VkKSB7CiAgICAgIGRpcmVjdEdyb3VwLmNsYXNzTGlzdC5yZW1vdmUoJ25uLWdlbi1jYWwtaGlkZGVuJyk7CiAgICAgIGFycmhlbml1c0dyb3VwLmNsYXNzTGlzdC5hZGQoJ25uLWdlbi1jYWwtaGlkZGVuJyk7CiAgICB9IGVsc2UgewogICAgICBkaXJlY3RHcm91cC5jbGFzc0xpc3QuYWRkKCdubi1nZW4tY2FsLWhpZGRlbicpOwogICAgICBhcnJoZW5pdXNHcm91cC5jbGFzc0xpc3QucmVtb3ZlKCdubi1nZW4tY2FsLWhpZGRlbicpOwogICAgfQogICAgaGlkZUVycm9yKCk7CiAgfQoKICBmdW5jdGlvbiBoaWRlRXJyb3IoKSB7CiAgICBlcnJvckVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBlcnJvckVsLnRleHRDb250ZW50ID0gJyc7CiAgfQoKICBmdW5jdGlvbiBzaG93RXJyb3IobXNnKSB7CiAgICBlcnJvckVsLnRleHRDb250ZW50ID0gbXNnOwogICAgZXJyb3JFbC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICB9CgogIGZ1bmN0aW9uIHBhcnNlUG9zaXRpdmVGbG9hdChlbCwgbmFtZSkgewogICAgdmFyIHJhdyA9IGVsLnZhbHVlLnRyaW0oKTsKICAgIGlmIChyYXcgPT09ICcnKSB7CiAgICAgIHNob3dFcnJvcign0J/QvtC20LDQu9GD0LnRgdGC0LAsINC30LDQv9C+0LvQvdC40YLQtSDQv9C+0LvQtTogJyArIG5hbWUpOwogICAgICByZXR1cm4gbnVsbDsKICAgIH0KICAgIHZhciB2YWwgPSBwYXJzZUZsb2F0KHJhdy5yZXBsYWNlKCcsJywgJy4nKSk7CiAgICBpZiAoaXNOYU4odmFsKSkgewogICAgICBzaG93RXJyb3IoJ9Cd0LXQutC+0YDRgNC10LrRgtC90L7QtSDQt9C90LDRh9C10L3QuNC1INCyINC/0L7Qu9C1OiAnICsgbmFtZSk7CiAgICAgIHJldHVybiBudWxsOwogICAgfQogICAgaWYgKHZhbCA8IDApIHsKICAgICAgc2hvd0Vycm9yKCfQl9C90LDRh9C10L3QuNC1INCyINC/0L7Qu9C1ICInICsgbmFtZSArICciINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDQvtGC0YDQuNGG0LDRgtC10LvRjNC90YvQvC4nKTsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICByZXR1cm4gdmFsOwogIH0KCiAgZnVuY3Rpb24gcGFyc2VOb25OZWdhdGl2ZUZsb2F0KGVsLCBuYW1lKSB7CiAgICB2YXIgcmF3ID0gZWwudmFsdWUudHJpbSgpOwogICAgaWYgKHJhdyA9PT0gJycpIHsKICAgICAgc2hvd0Vycm9yKCfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LfQsNC/0L7Qu9C90LjRgtC1INC/0L7Qu9C1OiAnICsgbmFtZSk7CiAgICAgIHJldHVybiBudWxsOwogICAgfQogICAgdmFyIHZhbCA9IHBhcnNlRmxvYXQocmF3LnJlcGxhY2UoJywnLCAnLicpKTsKICAgIGlmIChpc05hTih2YWwpKSB7CiAgICAgIHNob3dFcnJvcign0J3QtdC60L7RgNGA0LXQutGC0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0LIg0L/QvtC70LU6ICcgKyBuYW1lKTsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICBpZiAodmFsIDwgMCkgewogICAgICBzaG93RXJyb3IoJ9CX0L3QsNGH0LXQvdC40LUg0LIg0L/QvtC70LUgIicgKyBuYW1lICsgJyIg0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINC+0YLRgNC40YbQsNGC0LXQu9GM0L3Ri9C8LicpOwogICAgICByZXR1cm4gbnVsbDsKICAgIH0KICAgIHJldHVybiB2YWw7CiAgfQoKICBmdW5jdGlvbiBmb3JtYXROdW1iZXIobnVtLCBkaWdpdHMpIHsKICAgIGRpZ2l0cyA9IGRpZ2l0cyB8fCA0OwogICAgaWYgKCFpc0Zpbml0ZShudW0pKSByZXR1cm4gJ+KAlCc7CiAgICBpZiAoTWF0aC5hYnMobnVtKSA8IDFlLTEyICYmIG51bSAhPT0gMCkgcmV0dXJuIG51bS50b0V4cG9uZW50aWFsKGRpZ2l0cyk7CiAgICBpZiAoTWF0aC5hYnMobnVtKSA+PSAxZTYpIHJldHVybiBudW0udG9FeHBvbmVudGlhbChkaWdpdHMpOwogICAgdmFyIHJvdW5kZWQgPSBwYXJzZUZsb2F0KG51bS50b1ByZWNpc2lvbihkaWdpdHMgKyAxKSk7CiAgICByZXR1cm4gcm91bmRlZC50b1N0cmluZygpOwogIH0KCiAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgewogICAgaGlkZUVycm9yKCk7CgogICAgdmFyIGNvbmNBID0gcGFyc2VQb3NpdGl2ZUZsb2F0KGlucHV0Q29uY0EsICfQmtC+0L3RhtC10L3RgtGA0LDRhtC40Y8gQScpOwogICAgaWYgKGNvbmNBID09PSBudWxsKSByZXR1cm47CiAgICB2YXIgb3JkZXJBID0gcGFyc2VOb25OZWdhdGl2ZUZsb2F0KGlucHV0T3JkZXJBLCAn0J/QvtGA0Y/QtNC+0Log0L/QviBBJyk7CiAgICBpZiAob3JkZXJBID09PSBudWxsKSByZXR1cm47CiAgICB2YXIgY29uY0IgPSBwYXJzZU5vbk5lZ2F0aXZlRmxvYXQoaW5wdXRDb25jQiwgJ9Ca0L7QvdGG0LXQvdGC0YDQsNGG0LjRjyBCJyk7CiAgICBpZiAoY29uY0IgPT09IG51bGwpIHJldHVybjsKICAgIHZhciBvcmRlckIgPSBwYXJzZU5vbk5lZ2F0aXZlRmxvYXQoaW5wdXRPcmRlckIsICfQn9C+0YDRj9C00L7QuiDQv9C+IEInKTsKICAgIGlmIChvcmRlckIgPT09IG51bGwpIHJldHVybjsKCiAgICB2YXIgazsKICAgIHZhciBrVW5pdDsKCiAgICBpZiAobW9kZURpcmVjdC5jaGVja2VkKSB7CiAgICAgIHZhciBrVmFsID0gcGFyc2VQb3NpdGl2ZUZsb2F0KGlucHV0Q29uc3RLLCAn0JrQvtC90YHRgtCw0L3RgtCwINGB0LrQvtGA0L7RgdGC0LggaycpOwogICAgICBpZiAoa1ZhbCA9PT0gbnVsbCkgcmV0dXJuOwogICAgICBpZiAoa1ZhbCA8PSAwKSB7CiAgICAgICAgc2hvd0Vycm9yKCfQmtC+0L3RgdGC0LDQvdGC0LAg0YHQutC+0YDQvtGB0YLQuCBrINC00L7Qu9C20L3QsCDQsdGL0YLRjCDQv9C+0LvQvtC20LjRgtC10LvRjNC90YvQvCDRh9C40YHQu9C+0LwuJyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGsgPSBrVmFsOwogICAgfSBlbHNlIHsKICAgICAgdmFyIEFfdmFsID0gcGFyc2VQb3NpdGl2ZUZsb2F0KGlucHV0UHJlRXhwQSwgJ9Cf0YDQtdC00Y3QutGB0L/QvtC90LXQvdGG0LjQsNC70YzQvdGL0Lkg0LzQvdC+0LbQuNGC0LXQu9GMIEEnKTsKICAgICAgaWYgKEFfdmFsID09PSBudWxsKSByZXR1cm47CiAgICAgIGlmIChBX3ZhbCA8PSAwKSB7CiAgICAgICAgc2hvd0Vycm9yKCfQn9GA0LXQtNGN0LrRgdC/0L7QvdC10L3RhtC40LDQu9GM0L3Ri9C5INC80L3QvtC20LjRgtC10LvRjCBBINC00L7Qu9C20LXQvSDQsdGL0YLRjCDQv9C+0LvQvtC20LjRgtC10LvRjNC90YvQvC4nKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdmFyIEVhX2tKID0gcGFyc2VOb25OZWdhdGl2ZUZsb2F0KGlucHV0RW5lcmd5RWEsICfQrdC90LXRgNCz0LjRjyDQsNC60YLQuNCy0LDRhtC40LggRWEnKTsKICAgICAgaWYgKEVhX2tKID09PSBudWxsKSByZXR1cm47CiAgICAgIHZhciB0ZW1wQyA9IHBhcnNlRmxvYXQoaW5wdXRUZW1wVC52YWx1ZS50cmltKCkucmVwbGFjZSgnLCcsICcuJykpOwogICAgICBpZiAoaW5wdXRUZW1wVC52YWx1ZS50cmltKCkgPT09ICcnIHx8IGlzTmFOKHRlbXBDKSkgewogICAgICAgIHNob3dFcnJvcign0J/QvtC20LDQu9GD0LnRgdGC0LAsINC30LDQv9C+0LvQvdC40YLQtSDQv9C+0LvQtTog0KLQtdC80L/QtdGA0LDRgtGD0YDQsCBUJyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICh0ZW1wQyA8IC1DX1RPX0spIHsKICAgICAgICBzaG93RXJyb3IoJ9Ci0LXQvNC/0LXRgNCw0YLRg9GA0LAg0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINC90LjQttC1IOKAkzI3MywxNSDCsEMgKNCw0LHRgdC+0LvRjtGC0L3Ri9C5INC90YPQu9GMKS4nKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdmFyIFRfSyA9IHRlbXBDICsgQ19UT19LOwogICAgICB2YXIgRWFfSiA9IEVhX2tKICogMTAwMDsKICAgICAgdmFyIGV4cG9uZW50ID0gLUVhX0ogLyAoUl9KICogVF9LKTsKICAgICAgaWYgKGV4cG9uZW50IDwgLTcwMCkgewogICAgICAgIGsgPSAwOwogICAgICB9IGVsc2UgaWYgKGV4cG9uZW50ID4gNzAwKSB7CiAgICAgICAgc2hvd0Vycm9yKCfQodC70LjRiNC60L7QvCDQsdC+0LvRjNGI0L7QtSDQt9C90LDRh9C10L3QuNC1INGN0LrRgdC/0L7QvdC10L3RgtGLLiDQn9GA0L7QstC10YDRjNGC0LUg0LLQstC10LTRkdC90L3Ri9C1INC00LDQvdC90YvQtSAoRWEg0LggVCkuJyk7CiAgICAgICAgcmV0dXJuOwogICAgICB9IGVsc2UgewogICAgICAgIGsgPSBBX3ZhbCAqIE1hdGguZXhwKGV4cG9uZW50KTsKICAgICAgfQogICAgfQoKICAgIGlmICghaXNGaW5pdGUoaykgfHwgaXNOYU4oaykpIHsKICAgICAgc2hvd0Vycm9yKCfQntGI0LjQsdC60LAg0LLRi9GH0LjRgdC70LXQvdC40Y8g0LrQvtC90YHRgtCw0L3RgtGLINGB0LrQvtGA0L7RgdGC0Lggay4g0J/RgNC+0LLQtdGA0YzRgtC1INCy0YXQvtC00L3Ri9C1INC00LDQvdC90YvQtS4nKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGsgPCAwKSB7CiAgICAgIHNob3dFcnJvcign0KDQsNGB0YHRh9C40YLQsNC90L3QsNGPINC60L7QvdGB0YLQsNC90YLQsCDRgdC60L7RgNC+0YHRgtC4IGsg0L7RgtGA0LjRhtCw0YLQtdC70YzQvdCwLiDQn9GA0L7QstC10YDRjNGC0LUg0LLRhdC+0LTQvdGL0LUg0LTQsNC90L3Ri9C1LicpOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIHRvdGFsT3JkZXIgPSBvcmRlckEgKyBvcmRlckI7CgogICAgdmFyIHY7CiAgICBpZiAoTWF0aC5hYnMoY29uY0EpIDwgMWUtMTUgJiYgb3JkZXJBID4gMCkgewogICAgICB2ID0gMDsKICAgIH0gZWxzZSBpZiAoTWF0aC5hYnMoY29uY0IpIDwgMWUtMTUgJiYgb3JkZXJCID4gMCkgewogICAgICB2ID0gMDsKICAgIH0gZWxzZSB7CiAgICAgIHZhciB0ZXJtQSA9IE1hdGgucG93KGNvbmNBLCBvcmRlckEpOwogICAgICB2YXIgdGVybUIgPSAoTWF0aC5hYnMoY29uY0IpIDwgMWUtMTUgJiYgb3JkZXJCID09PSAwKSA/IDEgOiBNYXRoLnBvdyhjb25jQiwgb3JkZXJCKTsKICAgICAgdiA9IGsgKiB0ZXJtQSAqIHRlcm1COwogICAgfQoKICAgIGlmICghaXNGaW5pdGUodikgfHwgaXNOYU4odikpIHsKICAgICAgc2hvd0Vycm9yKCfQntGI0LjQsdC60LAg0LLRi9GH0LjRgdC70LXQvdC40Y8g0YHQutC+0YDQvtGB0YLQuC4g0J/RgNC+0LLQtdGA0YzRgtC1INCy0YXQvtC00L3Ri9C1INC00LDQvdC90YvQtSAo0LLQvtC30LzQvtC20L3Qviwg0L7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUg0L7RgdC90L7QstCw0L3QuNC1INGBINC00YDQvtCx0L3Ri9C8INC/0L7RgNGP0LTQutC+0LwpLicpOwogICAgICByZXR1cm47CiAgICB9CgogICAgcmVzdWx0U3BlZWQudGV4dENvbnRlbnQgPSBmb3JtYXROdW1iZXIodiwgNSk7CgogICAgaWYgKGsgPT09IDApIHsKICAgICAgcmVzdWx0Sy50ZXh0Q29udGVudCA9ICcwJzsKICAgIH0gZWxzZSBpZiAoayA8IDFlLTYgfHwgayA+PSAxZTgpIHsKICAgICAgcmVzdWx0Sy50ZXh0Q29udGVudCA9IGZvcm1hdE51bWJlcihrLCA0KTsKICAgIH0gZWxzZSB7CiAgICAgIHJlc3VsdEsudGV4dENvbnRlbnQgPSBmb3JtYXROdW1iZXIoaywgNSk7CiAgICB9CgogICAgdmFyIHAgPSB0b3RhbE9yZGVyOwogICAgdmFyIHBSb3VuZGVkID0gcGFyc2VGbG9hdChwLnRvRml4ZWQoMikpOwogICAgaWYgKHBSb3VuZGVkID09PSAwKSB7CiAgICAgIGtVbml0ID0gJ9C80L7Qu9GMLyjQu8K30YEpJzsKICAgIH0gZWxzZSBpZiAoTWF0aC5hYnMocFJvdW5kZWQgLSAxKSA8IDAuMDAxKSB7CiAgICAgIGtVbml0ID0gJ9GB4oG7wrknOwogICAgfSBlbHNlIGlmIChNYXRoLmFicyhwUm91bmRlZCAtIDIpIDwgMC4wMDEpIHsKICAgICAga1VuaXQgPSAn0LsvKNC80L7Qu9GMwrfRgSknOwogICAgfSBlbHNlIHsKICAgICAga1VuaXQgPSAn0LteKCcgKyAocFJvdW5kZWQgLSAxKS50b0ZpeGVkKDIpICsgJykvKNC80L7Qu9GMXignICsgKHBSb3VuZGVkIC0gMSkudG9GaXhlZCgyKSArICcpwrfRgSknOwogICAgfQogICAgcmVzdWx0S1VuaXQudGV4dENvbnRlbnQgPSBrVW5pdDsKICAgIHJlc3VsdE9yZGVyLnRleHRDb250ZW50ID0gcFJvdW5kZWQ7CgogICAgaWYgKE1hdGguYWJzKG9yZGVyQSAtIDEpIDwgMC4wMDEgJiYgb3JkZXJCID09PSAwICYmIGsgPiAwKSB7CiAgICAgIHZhciBoYWxmTGlmZSA9IE1hdGgubG9nKDIpIC8gazsKICAgICAgcmVzdWx0SGFsZmxpZmUudGV4dENvbnRlbnQgPSBmb3JtYXROdW1iZXIoaGFsZkxpZmUsIDUpOwogICAgICByZXN1bHRIYWxmbGlmZS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ubi1nZW4tY2FsLXJlc3VsdC11bml0JykudGV4dENvbnRlbnQgPSAn0YEnOwogICAgfSBlbHNlIGlmIChNYXRoLmFicyhvcmRlckEgLSAxKSA8IDAuMDAxICYmIE1hdGguYWJzKGNvbmNCKSA8IDFlLTE1ICYmIGsgPiAwKSB7CiAgICAgIHZhciBoYWxmTGlmZTIgPSBNYXRoLmxvZygyKSAvIGs7CiAgICAgIHJlc3VsdEhhbGZsaWZlLnRleHRDb250ZW50ID0gZm9ybWF0TnVtYmVyKGhhbGZMaWZlMiwgNSk7CiAgICAgIHJlc3VsdEhhbGZsaWZlLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLm5uLWdlbi1jYWwtcmVzdWx0LXVuaXQnKS50ZXh0Q29udGVudCA9ICfRgSc7CiAgICB9IGVsc2UgewogICAgICByZXN1bHRIYWxmbGlmZS50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICByZXN1bHRIYWxmbGlmZS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ubi1nZW4tY2FsLXJlc3VsdC11bml0JykudGV4dENvbnRlbnQgPSAn0L3QtSDQv9GA0LjQvNC10L3QuNC80L4nOwogICAgfQogIH0KCiAgZnVuY3Rpb24gcmVzZXRGb3JtKCkgewogICAgaW5wdXRDb25jQS52YWx1ZSA9ICcnOwogICAgaW5wdXRPcmRlckEudmFsdWUgPSAnJzsKICAgIGlucHV0Q29uY0IudmFsdWUgPSAnJzsKICAgIGlucHV0T3JkZXJCLnZhbHVlID0gJyc7CiAgICBpbnB1dENvbnN0Sy52YWx1ZSA9ICcnOwogICAgaW5wdXRQcmVFeHBBLnZhbHVlID0gJyc7CiAgICBpbnB1dEVuZXJneUVhLnZhbHVlID0gJyc7CiAgICBpbnB1dFRlbXBULnZhbHVlID0gJyc7CiAgICByZXN1bHRTcGVlZC50ZXh0Q29udGVudCA9ICfigJQnOwogICAgcmVzdWx0Sy50ZXh0Q29udGVudCA9ICfigJQnOwogICAgcmVzdWx0S1VuaXQudGV4dENvbnRlbnQgPSAn0LXQtC4nOwogICAgcmVzdWx0T3JkZXIudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgIHJlc3VsdEhhbGZsaWZlLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICByZXN1bHRIYWxmbGlmZS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ubi1nZW4tY2FsLXJlc3VsdC11bml0JykudGV4dENvbnRlbnQgPSAn0YEgKNC10YHQu9C4IG0gPSAxKSc7CiAgICBoaWRlRXJyb3IoKTsKICAgIGlmICghbW9kZURpcmVjdC5jaGVja2VkKSB7CiAgICAgIG1vZGVEaXJlY3QuY2hlY2tlZCA9IHRydWU7CiAgICAgIHN3aXRjaE1vZGUoKTsKICAgIH0KICB9CgogIG1vZGVEaXJlY3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc3dpdGNoTW9kZSk7CiAgbW9kZUFycmhlbml1cy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBzd2l0Y2hNb2RlKTsKICBidG5DYWxjLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2FsY3VsYXRlKTsKICBidG5SZXNldC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0Rm9ybSk7CgogIHN3aXRjaE1vZGUoKTsKfSkoKTsK