Калькулятор тёплого пола
Рассчитайте необходимую мощность, длину трубы или кабеля и шаг укладки для комфортного обогрева вашего помещения.
—
Удельная мощность
Вт/м²
—
Количество контуров
шт.
—
Расход теплоносителя
л/мин
Как пользоваться калькулятором
1
Введите площадь помещения в квадратных метрах. Например, для комнаты 4×5 метров укажите 20.
2
Выберите тип помещения. От этого зависит рекомендуемая удельная мощность: для жилой комнаты — около 100 Вт/м², для ванной — до 150 Вт/м², для балкона — до 180 Вт/м².
3
Укажите тип тёплого пола — водяной или электрический. Для водяного выберите диаметр трубы (16 или 20 мм). От диаметра зависит максимальная длина одного контура.
4
Оцените качество теплоизоляции основания. Хорошая изоляция снижает теплопотери, слабая — требует увеличения мощности примерно на 15–20%.
Примеры расчёта
Сценарий 1: Водяной пол в гостиной 20 м²
Площадь: 20 м², тип: жилая комната, труба 16 мм, хорошая изоляция. Удельная мощность: 100 Вт/м², общая мощность: 2,0 кВт, длина трубы: ~100 м (шаг 200 мм), 1 контур.
Сценарий 2: Электрический кабель в ванной 6 м²
Площадь: 6 м², тип: ванная, кабель, средняя изоляция. Удельная мощность: 150 Вт/м², общая мощность: 0,9 кВт, длина кабеля: ~55 м (шаг 110 мм).
Сценарий 3: Нагревательный мат на кухне 12 м²
Площадь: 12 м², тип: кухня, мат, хорошая изоляция. Удельная мощность: 120 Вт/м², общая мощность: 1,44 кВт, площадь покрытия матами: ~10 м² (за вычетом мебели).
Формулы расчёта
Калькулятор использует следующие формулы:
Pобщ = S × pуд × kиз — общая мощность системы (Вт), где S — площадь помещения (м²), pуд — удельная мощность (Вт/м²), kиз — коэффициент теплоизоляции (0,85–1,20).
L = S / t × 1000 — длина трубы или кабеля (м), где t — шаг укладки (мм).
t = 1000 × S / L — шаг укладки (мм), обратная формула.
N = L / Lmax — количество контуров, где Lmax — максимальная длина одного контура (для трубы 16 мм — 100 м, для 20 мм — 120 м).
G = 0,86 × Pобщ / ΔT — расход теплоносителя (л/мин) для водяного пола, где ΔT — перепад температур (обычно 10 °C).
Пошаговое объяснение
1. Определение удельной мощности: на основе типа помещения калькулятор выбирает рекомендованную плотность теплового потока (от 80 до 180 Вт/м²). Это ключевой параметр, влияющий на комфорт.
2. Корректировка на теплоизоляцию: умножаем базовую мощность на коэффициент изоляции: 0,85 для хорошей, 1,0 для средней, 1,2 для слабой. Так мы учитываем теплопотери через основание.
3. Расчёт длины нагревательного элемента: зная площадь и рекомендованный шаг укладки, вычисляем длину. Шаг подбирается так, чтобы обеспечить равномерный прогрев без перегрева.
4. Разбивка на контуры: для водяного пола один контур не должен превышать 100–120 м (зависит от диаметра трубы). При необходимости площадь делится на несколько контуров.
5. Расход теплоносителя: для водяной системы определяем, сколько литров в минуту должен прокачивать насос, чтобы обеспечить нужную теплоотдачу.
Где применяется
- Жилые комнаты и спальни: основное или дополнительное отопление, комфортная температура пола 24–26 °C.
- Ванные и санузлы: быстрый прогрев плитки, защита от сырости и плесени, температура пола до 29 °C.
- Кухни: локальный обогрев рабочей зоны, компенсация холодного кафельного покрытия.
- Балконы и лоджии: превращение холодного помещения в жилое, повышенная мощность из-за больших теплопотерь.
- Коридоры и прихожие: подогрев входной зоны, быстрое высыхание влажной обуви.
- Коммерческие помещения: офисы, магазины — равномерное распределение тепла без сквозняков от радиаторов.
Важные нюансы
- Калькулятор даёт оценочные значения. Точный расчёт требует теплотехнического проекта с учётом стен, окон и климатической зоны.
- Для водяного пола шаг укладки менее 100 мм может привести к перегреву и дискомфорту. Оптимальный диапазон — 150–250 мм.
- Максимальная температура поверхности пола по СНиП: 26 °C для жилых помещений, 31 °C для ванных и бассейнов, 35 °C для краевых зон.
- При использовании нагревательных матов часть площади исключается: под мебелью без ножек, под стационарной техникой укладка не производится.
- Результат расчёта длины не учитывает подводку к коллектору (для водяного пола) и технологические отступы от стен (обычно 10–15 см).
- Для электрического пола обязательно подключение через отдельный автоматический выключатель с УЗО на 30 мА.
Частые ошибки
- Игнорирование теплоизоляции: без качественной подложки до 30% тепла уходит в перекрытие, резко снижая эффективность системы.
- Слишком большой шаг укладки: шаг более 300 мм создаёт эффект «тепловой зебры» — пол прогревается неравномерно, появляются холодные полосы.
- Один контур на большую площадь: контур длиннее 120 м создаёт высокое гидравлическое сопротивление, насос не справляется, край контура остаётся холодным.
- Неправильный выбор покрытия: толстый ковролин или массивная доска 18+ мм работают как теплоизолятор, снижая теплоотдачу на 40–60%.
- Отсутствие демпферной ленты: без компенсации теплового расширения стяжка трескается, повреждая трубы или кабель.
- Включение на полную мощность сразу после заливки: стяжка должна сохнуть 21–28 дней, прогрев запускается постепенно, с шагом 3–5 °C в сутки.
Ответы на частые вопросы
Можно ли использовать тёплый пол как основное отопление? Да, если теплопотери помещения не превышают 100 Вт/м² и система рассчитана на покрытие 100% тепловой нагрузки.
Какой срок службы у тёплого пола? Водяной — 50+ лет (трубы из сшитого полиэтилена), электрический кабель — 30–50 лет, нагревательные маты — 20–30 лет.
Сколько электроэнергии потребляет электрический пол? Для помещения 10 м² с мощностью 120 Вт/м² максимальное потребление — 1,2 кВт·ч. С терморегулятором реальное — 0,4–0,7 кВт·ч в час работы.
Нужно ли согласование для водяного пола в квартире? В многоквартирных домах с центральным отоплением — обязательно. Самовольное подключение к стояку незаконно и нарушает гидравлический баланс.
Какой шаг укладки выбрать для краевых зон? Вдоль окон и наружных стен шаг уменьшают до 100–150 мм, создавая зону повышенной теплоотдачи для компенсации холодного остекления.
Влияет ли финишное покрытие на расчёт? Да. Плитка имеет тепловое сопротивление ~0,02 м²·K/Вт, ламинат 8 мм — ~0,05, паркет 15 мм — ~0,10. Чем выше сопротивление, тем выше должна быть температура теплоносителя.
Источники и справочные данные
Расчёт основан на методиках СП 60.13330.2020 «Отопление, вентиляция и кондиционирование воздуха», рекомендациях производителей труб (Rehau, Uponor) и кабельных систем (Devi, Teplolux), а также на практических данных монтажных организаций. Нормативные значения удельной мощности взяты из технических каталогов оборудования и усреднены для российских климатических условий.
Тёплый пол: полное руководство по расчёту, выбору и монтажу
Что такое тёплый пол и зачем он нужен
Тёплый пол — это система напольного отопления, которая превращает поверхность пола в большой низкотемпературный радиатор. В отличие от традиционных батарей, которые греют воздух локально и создают конвекционные потоки, тёплый пол распределяет тепло равномерно по всей площади помещения. Температура у пола составляет 24–28 °C, на уровне головы — 20–22 °C. Такое распределение считается наиболее комфортным для человека.
Системы тёплого пола делятся на два основных типа: водяные (трубы с циркулирующим теплоносителем) и электрические (нагревательный кабель или мат). Выбор между ними зависит от источника энергии, типа помещения и бюджета. В частных домах с газовым котлом водяной пол окупается за 5–7 лет. В квартирах без возможности врезки в стояк чаще выбирают электрический вариант.
Как работает калькулятор и почему его стоит использовать
Онлайн-калькулятор тёплого пола позволяет за 30 секунд получить ключевые параметры системы: необходимую мощность, длину нагревательного элемента, шаг укладки и количество контуров. Это избавляет от ручных вычислений и грубых ошибок на этапе планирования. Вы просто вводите площадь, тип помещения и пару дополнительных параметров — и получаете результаты, на которые можно опираться при закупке материалов.
Важно понимать, что калькулятор даёт оценку с точностью ±10–15%. Для точного проекта нужен теплотехнический расчёт с учётом теплопотерь через стены, окна, потолок и вентиляцию. Но для предварительного планирования, составления сметы и сравнения вариантов такого расчёта более чем достаточно.
Удельная мощность: главный параметр комфорта
Удельная мощность — это количество ватт, которое система отдаёт с одного квадратного метра пола. Именно она определяет, насколько тёплым будет помещение. Нормы для разных типов помещений сложились на основе многолетней практики. Жилая комната требует 80–100 Вт/м². Кухня, где есть дополнительные источники тепла (плита, холодильник) — 100–120 Вт/м². Ванная комната, где нужен быстрый прогрев плитки и защита от сырости — 130–150 Вт/м². Балкон с большими теплопотерями — 150–180 Вт/м².
Эти цифры работают для средней полосы России с зимней температурой −20…−25 °C. В северных регионах (Архангельск, Мурманск, Якутия) значения нужно увеличивать на 25–40%. В южных (Краснодар, Ростов-на-Дону) — можно снижать на 15–20%. Калькулятор использует усреднённые значения, подходящие для большинства регионов страны.
Водяной тёплый пол: особенности расчёта
Сердце водяной системы — трубы из сшитого полиэтилена (PEX) или металлопластика диаметром 16 или 20 мм. По ним циркулирует теплоноситель с температурой 35–45 °C. Главное преимущество воды — низкая стоимость эксплуатации при подключении к газовому котлу. Один кубометр газа даёт примерно 9 кВт·ч тепла, что в 5–7 раз дешевле электричества.
При расчёте важно соблюсти ограничение: один контур не должен превышать 100 м для трубы 16 мм и 120 м для трубы 20 мм. Превышение ведёт к резкому росту гидравлического сопротивления, и циркуляционный насос перестаёт справляться. Если площадь большая, её делят на несколько контуров, подключаемых к коллектору. Например, помещение 40 м² при шаге 200 мм требует ~200 м трубы — это два контура по 100 м.
Электрический тёплый пол: кабель или мат
Электрический нагревательный кабель даёт гибкость в укладке. Вы можете обойти сложные контуры, колонны, сантехнику. Удельная мощность кабеля составляет 10–20 Вт на погонный метр. Зная требуемую мощность на квадратный метр и мощность кабеля, можно вычислить шаг укладки: шаг (см) = (мощность кабеля Вт/м × 100) / (удельная мощность Вт/м²). Например, кабель 15 Вт/м при цели 150 Вт/м² даёт шаг 10 см.
Нагревательные маты — это тот же кабель, уже закреплённый на сетке с заданным шагом (обычно 8–11 см). Их преимущество — скорость монтажа. Рулон раскатывается по полу, фиксируется скотчем, заливается тонким слоем плиточного клея. Недостаток — фиксированная ширина (50 или 80 см), требующая подрезки сетки и раскладки змейкой. Маты идеальны для ванных и кухонь, где площадь невелика и форма проста.
Шаг укладки: компромисс между равномерностью и затратами
Шаг укладки — это расстояние между соседними витками трубы или кабеля. Рекомендованный диапазон — от 100 до 300 мм. При шаге менее 100 мм труба ложится слишком часто, расход материала растёт, а перегрев поверхности становится реальной проблемой. При шаге более 300 мм появляются холодные зоны — полосатое тепло, которое ощущается босыми ногами.
Оптимальный шаг для жилых комнат — 200 мм. Для ванных и кухонь, где важна скорость прогрева — 150 мм. У наружных стен и окон стоит уменьшить шаг до 100–150 мм на полосе шириной 50–80 см, создав краевую зону повышенной теплоотдачи. Это компенсирует охлаждение от остекления и исключает образование конденсата.
Теплоизоляция: на чём нельзя экономить
Подложка под тёплый пол — это не маркетинговый ход, а физическая необходимость. Без неё до 30% тепла уходит в бетонное перекрытие и греет потолок соседа снизу, а не ваше помещение. Хорошая теплоизоляция (экструдированный пенополистирол 20–50 мм с фольгированным покрытием) снижает теплопотери вниз до 5–7% и отражает инфракрасное излучение обратно в помещение.
Калькулятор учитывает качество изоляции через коэффициент: 0,85 для хорошей (дополнительные 15% экономии мощности), 1,0 для средней и 1,2 для слабой (добавляет 20% к расчётной мощности). Если вы не уверены в качестве основания, выбирайте «среднюю» или «слабую» изоляцию — лучше заложить запас, чем получить холодный пол.
Финишное покрытие и его влияние
Тёплый пол совместим с большинством напольных покрытий, но каждое имеет своё тепловое сопротивление. Керамическая плитка и керамогранит — лучший выбор: сопротивление минимально (0,02 м²·K/Вт), прогрев быстрый, температура теплоносителя может быть ниже. Ламинат с подложкой (0,05–0,08 м²·K/Вт) требует повышения температуры на 2–4 °C. Инженерная доска 15 мм (0,10–0,12 м²·K/Вт) и массивная доска 20+ мм — на 5–8 °C выше.
Ковролин и толстый линолеум на войлочной основе — худшие варианты. Их сопротивление может достигать 0,15–0,25 м²·K/Вт, что снижает теплоотдачу на 40–60% и делает систему неэффективной. Если вы планируете ковёр, выбирайте модели с маркировкой «для тёплого пола» и минимальной толщиной ворса.
Монтаж и ввод в эксплуатацию
Укладка тёплого пола — многоэтапный процесс. Сначала черновое основание выравнивается и очищается. Укладывается теплоизоляция с нахлёстом стыков, проклеивается фольгированным скотчем. Монтируется демпферная лента по периметру — она компенсирует тепловое расширение стяжки (до 0,5 мм на метр при нагреве до 40 °C). Затем раскладывается труба или кабель по выбранной схеме: змейка или улитка. Улитка предпочтительнее — подача и обратка чередуются, прогрев равномернее.
После опрессовки (проверки давлением) заливается стяжка толщиной 3–7 см над трубой. Включать нагрев можно только через 21–28 суток полного высыхания. Первый запуск — плавный: температура поднимается на 3–5 °C в сутки до проектного значения. Это предотвращает растрескивание стяжки. Эксплуатационный режим — не выше 45 °C для теплоносителя, чтобы не деформировать покрытие и не пересушивать воздух.
Экономическая эффективность и окупаемость
Тёплый пол — это инвестиция в комфорт, которая окупается по-разному. Водяная система в доме 100 м² стоит 250–400 тысяч рублей с оборудованием и монтажом. При отоплении магистральным газом экономия по сравнению с радиаторами составляет 15–20% за счёт низкой температуры теплоносителя и равномерного распределения тепла. Срок окупаемости — 6–10 лет.
Электрический пол в ванной 6 м² стоит 20–35 тысяч рублей «под ключ». При использовании по 3–4 часа в день потребление составит 60–100 кВт·ч в месяц, или 300–600 рублей. Комфорт сухих тёплых ног после душа стоит этих денег. Для основного отопления электричество невыгодно — счета будут в 3–4 раза выше, чем при газовом отоплении. Калькулятор помогает сравнить варианты и принять взвешенное решение до начала закупок.
CihmdW5jdGlvbigpewogICAgJ3VzZSBzdHJpY3QnOwoKICAgIHZhciBhcmVhSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxvb3ItYXJlYScpOwogICAgdmFyIHJvb21UeXBlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb20tdHlwZScpOwogICAgdmFyIGZsb29yVHlwZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbG9vci10eXBlJyk7CiAgICB2YXIgcGlwZURpYW1ldGVyU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BpcGUtZGlhbWV0ZXInKTsKICAgIHZhciBpbnN1bGF0aW9uU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3VsYXRpb24nKTsKICAgIHZhciBsYWJlbFBpcGVEaWFtZXRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYWJlbC1waXBlLWRpYW1ldGVyJyk7CiAgICB2YXIgY2FsY0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxjLWJ0bicpOwogICAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LWJ0bicpOwogICAgdmFyIGVycm9yQXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlcnJvci1hcmVhJyk7CgogICAgdmFyIHJlc3VsdFBvd2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1wb3dlcicpOwogICAgdmFyIHJlc3VsdFNwZWNpZmljUG93ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LXNwZWNpZmljLXBvd2VyJyk7CiAgICB2YXIgcmVzdWx0TGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1sZW5ndGgnKTsKICAgIHZhciByZXN1bHRTdGVwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1zdGVwJyk7CiAgICB2YXIgcmVzdWx0Q2lyY3VpdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LWNpcmN1aXRzJyk7CiAgICB2YXIgcmVzdWx0RmxvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtZmxvdycpOwoKICAgIGZ1bmN0aW9uIGhpZGVFcnJvcihlbCkgewogICAgICAgIGlmIChlbCkgeyBlbC5jbGFzc0xpc3QucmVtb3ZlKCdubi1nZW4tY2FsLXZpc2libGUnKTsgZWwudGV4dENvbnRlbnQgPSAnJzsgfQogICAgfQoKICAgIGZ1bmN0aW9uIHNob3dFcnJvcihlbCwgbXNnKSB7CiAgICAgICAgaWYgKGVsKSB7IGVsLnRleHRDb250ZW50ID0gbXNnOyBlbC5jbGFzc0xpc3QuYWRkKCdubi1nZW4tY2FsLXZpc2libGUnKTsgfQogICAgfQoKICAgIGZ1bmN0aW9uIGdldFNwZWNpZmljUG93ZXIocm9vbVR5cGUpIHsKICAgICAgICB2YXIgbWFwID0gewogICAgICAgICAgICAnbGl2aW5nJzogMTAwLAogICAgICAgICAgICAna2l0Y2hlbic6IDEyMCwKICAgICAgICAgICAgJ2JhdGhyb29tJzogMTUwLAogICAgICAgICAgICAnYmFsY29ueSc6IDE4MCwKICAgICAgICAgICAgJ2NvcnJpZG9yJzogMTEwCiAgICAgICAgfTsKICAgICAgICByZXR1cm4gbWFwW3Jvb21UeXBlXSB8fCAxMDA7CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0SW5zdWxhdGlvbkZhY3RvcihpbnN1bGF0aW9uKSB7CiAgICAgICAgdmFyIG1hcCA9IHsKICAgICAgICAgICAgJ2dvb2QnOiAwLjg1LAogICAgICAgICAgICAnYXZlcmFnZSc6IDEuMCwKICAgICAgICAgICAgJ3Bvb3InOiAxLjIKICAgICAgICB9OwogICAgICAgIHJldHVybiBtYXBbaW5zdWxhdGlvbl0gfHwgMS4wOwogICAgfQoKICAgIGZ1bmN0aW9uIGdldE1heENpcmN1aXRMZW5ndGgocGlwZURpYW1ldGVyKSB7CiAgICAgICAgcmV0dXJuIHBpcGVEaWFtZXRlciA9PT0gJzIwJyA/IDEyMCA6IDEwMDsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRSZWNvbW1lbmRlZFN0ZXAocm9vbVR5cGUpIHsKICAgICAgICB2YXIgbWFwID0gewogICAgICAgICAgICAnbGl2aW5nJzogMjAwLAogICAgICAgICAgICAna2l0Y2hlbic6IDE4MCwKICAgICAgICAgICAgJ2JhdGhyb29tJzogMTUwLAogICAgICAgICAgICAnYmFsY29ueSc6IDE1MCwKICAgICAgICAgICAgJ2NvcnJpZG9yJzogMTgwCiAgICAgICAgfTsKICAgICAgICByZXR1cm4gbWFwW3Jvb21UeXBlXSB8fCAyMDA7CiAgICB9CgogICAgZnVuY3Rpb24gZm9ybWF0TnVtYmVyKHZhbHVlLCBkZWNpbWFscykgewogICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInIHx8IGlzTmFOKHZhbHVlKSB8fCAhaXNGaW5pdGUodmFsdWUpKSByZXR1cm4gJ+KAlCc7CiAgICAgICAgcmV0dXJuIHZhbHVlLnRvRml4ZWQoZGVjaW1hbHMgfHwgMSk7CiAgICB9CgogICAgZnVuY3Rpb24gdXBkYXRlUGlwZUxhYmVsKCkgewogICAgICAgIHZhciBmdCA9IGZsb29yVHlwZVNlbGVjdC52YWx1ZTsKICAgICAgICBpZiAoZnQgPT09ICd3YXRlcicpIHsKICAgICAgICAgICAgbGFiZWxQaXBlRGlhbWV0ZXIuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICBwaXBlRGlhbWV0ZXJTZWxlY3Quc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGxhYmVsUGlwZURpYW1ldGVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIHBpcGVEaWFtZXRlclNlbGVjdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIH0KICAgIH0KCiAgICBmbG9vclR5cGVTZWxlY3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdXBkYXRlUGlwZUxhYmVsKTsKICAgIHVwZGF0ZVBpcGVMYWJlbCgpOwoKICAgIGZ1bmN0aW9uIHZhbGlkYXRlQW5kQ2FsY3VsYXRlKCkgewogICAgICAgIHZhciB2YWxpZCA9IHRydWU7CiAgICAgICAgaGlkZUVycm9yKGVycm9yQXJlYSk7CgogICAgICAgIHZhciBhcmVhU3RyID0gYXJlYUlucHV0LnZhbHVlLnRyaW0oKTsKICAgICAgICBpZiAoYXJlYVN0ciA9PT0gJycpIHsKICAgICAgICAgICAgc2hvd0Vycm9yKGVycm9yQXJlYSwgJ9Cj0LrQsNC20LjRgtC1INC/0LvQvtGJ0LDQtNGMINC/0L7QvNC10YnQtdC90LjRjy4nKTsKICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIHZhciBhcmVhID0gcGFyc2VGbG9hdChhcmVhU3RyKTsKICAgICAgICBpZiAodmFsaWQgJiYgKGlzTmFOKGFyZWEpIHx8ICFpc0Zpbml0ZShhcmVhKSkpIHsKICAgICAgICAgICAgc2hvd0Vycm9yKGVycm9yQXJlYSwgJ9Cf0LvQvtGJ0LDQtNGMINC00L7Qu9C20L3QsCDQsdGL0YLRjCDRh9C40YHQu9C+0LwuJyk7CiAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGlmICh2YWxpZCAmJiBhcmVhIDw9IDApIHsKICAgICAgICAgICAgc2hvd0Vycm9yKGVycm9yQXJlYSwgJ9Cf0LvQvtGJ0LDQtNGMINC00L7Qu9C20L3QsCDQsdGL0YLRjCDQv9C+0LvQvtC20LjRgtC10LvRjNC90YvQvCDRh9C40YHQu9C+0LwuJyk7CiAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGlmICh2YWxpZCAmJiBhcmVhID4gNTAwKSB7CiAgICAgICAgICAgIHNob3dFcnJvcihlcnJvckFyZWEsICfQn9C70L7RidCw0LTRjCDQvdC1INC00L7Qu9C20L3QsCDQv9GA0LXQstGL0YjQsNGC0YwgNTAwINC8wrIuINCU0LvRjyDQsdC+0LvRjNGI0LjRhSDQv9C+0LzQtdGJ0LXQvdC40Lkg0YLRgNC10LHRg9C10YLRgdGPINC+0YLQtNC10LvRjNC90YvQuSDQv9GA0L7QtdC60YIuJyk7CiAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAgICAgIGNsZWFyUmVzdWx0cygpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgcm9vbVR5cGUgPSByb29tVHlwZVNlbGVjdC52YWx1ZTsKICAgICAgICB2YXIgZmxvb3JUeXBlID0gZmxvb3JUeXBlU2VsZWN0LnZhbHVlOwogICAgICAgIHZhciBwaXBlRGlhbWV0ZXIgPSBwaXBlRGlhbWV0ZXJTZWxlY3QudmFsdWU7CiAgICAgICAgdmFyIGluc3VsYXRpb24gPSBpbnN1bGF0aW9uU2VsZWN0LnZhbHVlOwoKICAgICAgICB2YXIgYmFzZVNwZWNpZmljUG93ZXIgPSBnZXRTcGVjaWZpY1Bvd2VyKHJvb21UeXBlKTsKICAgICAgICB2YXIgaW5zdWxhdGlvbkZhY3RvciA9IGdldEluc3VsYXRpb25GYWN0b3IoaW5zdWxhdGlvbik7CiAgICAgICAgdmFyIHNwZWNpZmljUG93ZXIgPSBiYXNlU3BlY2lmaWNQb3dlciAqIGluc3VsYXRpb25GYWN0b3I7CiAgICAgICAgdmFyIHRvdGFsUG93ZXJXID0gYXJlYSAqIHNwZWNpZmljUG93ZXI7CiAgICAgICAgdmFyIHRvdGFsUG93ZXJLVyA9IHRvdGFsUG93ZXJXIC8gMTAwMDsKCiAgICAgICAgdmFyIHJlY29tbWVuZGVkU3RlcCA9IGdldFJlY29tbWVuZGVkU3RlcChyb29tVHlwZSk7CiAgICAgICAgdmFyIGxlbmd0aE1ldGVycyA9IChhcmVhICogMTAwMCkgLyByZWNvbW1lbmRlZFN0ZXA7CgogICAgICAgIHZhciBtYXhDaXJjdWl0TGVuZ3RoID0gZ2V0TWF4Q2lyY3VpdExlbmd0aChwaXBlRGlhbWV0ZXIpOwogICAgICAgIHZhciBjaXJjdWl0cyA9IDE7CiAgICAgICAgaWYgKGZsb29yVHlwZSA9PT0gJ3dhdGVyJykgewogICAgICAgICAgICBjaXJjdWl0cyA9IE1hdGguY2VpbChsZW5ndGhNZXRlcnMgLyBtYXhDaXJjdWl0TGVuZ3RoKTsKICAgICAgICAgICAgaWYgKGNpcmN1aXRzIDwgMSkgY2lyY3VpdHMgPSAxOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNpcmN1aXRzID0gMTsKICAgICAgICB9CgogICAgICAgIHZhciBmbG93UmF0ZSA9IDA7CiAgICAgICAgaWYgKGZsb29yVHlwZSA9PT0gJ3dhdGVyJykgewogICAgICAgICAgICB2YXIgZGVsdGFUID0gMTA7CiAgICAgICAgICAgIGZsb3dSYXRlID0gMC44NiAqIHRvdGFsUG93ZXJXIC8gZGVsdGFUIC8gMTAwMDsKICAgICAgICAgICAgaWYgKGZsb3dSYXRlIDwgMCkgZmxvd1JhdGUgPSAwOwogICAgICAgIH0KCiAgICAgICAgcmVzdWx0UG93ZXIudGV4dENvbnRlbnQgPSBmb3JtYXROdW1iZXIodG90YWxQb3dlcktXLCAxKTsKICAgICAgICByZXN1bHRTcGVjaWZpY1Bvd2VyLnRleHRDb250ZW50ID0gZm9ybWF0TnVtYmVyKHNwZWNpZmljUG93ZXIsIDApOwogICAgICAgIHJlc3VsdExlbmd0aC50ZXh0Q29udGVudCA9IGZvcm1hdE51bWJlcihsZW5ndGhNZXRlcnMsIDEpOwogICAgICAgIHJlc3VsdFN0ZXAudGV4dENvbnRlbnQgPSBmb3JtYXROdW1iZXIocmVjb21tZW5kZWRTdGVwLCAwKTsKICAgICAgICByZXN1bHRDaXJjdWl0cy50ZXh0Q29udGVudCA9IGNpcmN1aXRzOwoKICAgICAgICBpZiAoZmxvb3JUeXBlID09PSAnd2F0ZXInKSB7CiAgICAgICAgICAgIHJlc3VsdEZsb3cudGV4dENvbnRlbnQgPSBmb3JtYXROdW1iZXIoZmxvd1JhdGUsIDIpOwogICAgICAgICAgICByZXN1bHRGbG93LnBhcmVudEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJlc3VsdEZsb3cudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICAgICAgcmVzdWx0Rmxvdy5wYXJlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGNsZWFyUmVzdWx0cygpIHsKICAgICAgICByZXN1bHRQb3dlci50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgIHJlc3VsdFNwZWNpZmljUG93ZXIudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICByZXN1bHRMZW5ndGgudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICByZXN1bHRTdGVwLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgcmVzdWx0Q2lyY3VpdHMudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICByZXN1bHRGbG93LnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgcmVzdWx0Rmxvdy5wYXJlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICBoaWRlRXJyb3IoZXJyb3JBcmVhKTsKICAgIH0KCiAgICBmdW5jdGlvbiByZXNldEZvcm0oKSB7CiAgICAgICAgYXJlYUlucHV0LnZhbHVlID0gJyc7CiAgICAgICAgcm9vbVR5cGVTZWxlY3QudmFsdWUgPSAnbGl2aW5nJzsKICAgICAgICBmbG9vclR5cGVTZWxlY3QudmFsdWUgPSAnd2F0ZXInOwogICAgICAgIHBpcGVEaWFtZXRlclNlbGVjdC52YWx1ZSA9ICcxNic7CiAgICAgICAgaW5zdWxhdGlvblNlbGVjdC52YWx1ZSA9ICdnb29kJzsKICAgICAgICBjbGVhclJlc3VsdHMoKTsKICAgICAgICBoaWRlRXJyb3IoZXJyb3JBcmVhKTsKICAgICAgICB1cGRhdGVQaXBlTGFiZWwoKTsKICAgIH0KCiAgICBjYWxjQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB2YWxpZGF0ZUFuZENhbGN1bGF0ZSgpOwogICAgfSk7CgogICAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHJlc2V0Rm9ybSgpOwogICAgfSk7CgogICAgYXJlYUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgICAgaGlkZUVycm9yKGVycm9yQXJlYSk7CiAgICB9KTsKfSkoKTsK