Калькулятор сетки-рабицы
Рассчитайте количество сетки-рабицы, столбов, проволоки и бетона для вашего забора — быстро, наглядно и с учётом необходимого запаса.
Как пользоваться калькулятором
1
Укажите общую длину ограждения в метрах — измерьте периметр участка, где будет стоять забор. Например: 60 метров для участка 20×30 м по двум сторонам.
2
Выберите высоту сетки (1.2, 1.5, 1.8 или 2.0 м) и шаг между столбами (2.0, 2.5 или 3.0 м). Стандартный шаг — 2.5 м, он подходит для большинства ровных участков.
3
Укажите количество ворот и калиток — их ширина будет вычтена из общей длины сетки (ворота ~3.5 м, калитка ~1 м).
4
Нажмите «Рассчитать» — вы получите длину сетки, количество рулонов, столбов, проволоки, скоб и объём бетона. Все значения уже с запасом 10%.
Примеры расчёта
Дачный участок 6 соток — забор по периметру
Длина ограждения: 100 м, высота сетки: 1.5 м, шаг столбов: 2.5 м, ворот — 1, калитка — 1.
Результат: сетки ~95 пог. м (с вычетом проёмов), 10 рулонов по 10 м, 41 столб, ~300 м натяжной проволоки, ~123 скобы, ~1.64 м³ бетона.
Небольшой палисадник — только передняя граница
Длина ограждения: 25 м, высота сетки: 1.2 м, шаг столбов: 2.0 м, ворот и калиток нет.
Результат: сетки ~28 пог. м (с запасом), 3 рулона, 14 столбов, ~75 м проволоки, ~42 скобы, ~0.56 м³ бетона.
Сплошное ограждение склада — высокий забор без проёмов
Длина ограждения: 200 м, высота сетки: 2.0 м, шаг столбов: 3.0 м, без ворот и калиток.
Результат: сетки ~220 пог. м, 22 рулона, 68 столбов, ~600 м проволоки, ~204 скобы, ~2.72 м³ бетона.
Формулы расчёта
Длина сетки (пог. м) = (Длина ограждения − Ширина ворот × Кол-во ворот − Ширина калитки × Кол-во калиток) × 1.1
где ширина ворот = 3.5 м, ширина калитки = 1.0 м, 1.1 — запас 10%
Количество рулонов (шт) = ⌈ Длина сетки / 10 ⌉
округление вверх до целого, стандартный рулон — 10 пог. м
Количество столбов (шт) = ⌈ Длина ограждения / Шаг столбов ⌉ + 1
округление вверх, плюс один столб на замыкание периметра
Натяжная проволока (пог. м) = Длина ограждения × 3
3 ряда: верхний, средний и нижний для жёсткости
Скобы/хомуты (шт) = Количество столбов × 3
по 3 крепления на каждый столб для трёх рядов проволоки
Бетон (м³) = Количество столбов × 0.04
0.04 м³ на столб при яме 40×40×50 см с учётом вытеснения столбом
Нормы и ориентиры
Приведённые ниже значения — проверенные на практике ориентиры. Для конкретного участка они могут незначительно меняться в зависимости от рельефа, типа грунта и выбранных материалов.
- Стандартный рулон сетки-рабицы: 10 пог. м в длину, высота — 1.2, 1.5, 1.8 или 2.0 м. Встречаются рулоны по 15 и 20 м, но 10-метровые — самые удобные для перевозки и монтажа.
- Шаг столбов: оптимально 2.5 м. При шаге 2.0 м забор жёстче, но растёт расход столбов и бетона. Шаг 3.0 м допустим только на ровной местности с низкой ветровой нагрузкой.
- Диаметр столбов: для сетки высотой до 1.5 м — труба 50×50 мм или 57 мм круглая. Для высоты 1.8–2.0 м — 60×60 мм или 76 мм круглая. Толщина стенки — не менее 2 мм.
- Натяжная проволока: оцинкованная, диаметр 3–4 мм, в 3 ряда. Продаётся в бухтах по 50–100 м.
- Бетон: марка М200 (В15) для столбов. На 1 м³ бетона уходит примерно 320 кг цемента, 800 кг песка, 1100 кг щебня и 180 л воды.
- Запас 10% уже встроен в расчёт калькулятора. Учитывает подрезку, огибание углов, нахлёст на столбах и возможный брак.
Что влияет на результат
- Рельеф участка. Перепады высот требуют установки дополнительных столбов в низинах и на вершинах склонов. На крутом склоне шаг столбов лучше сократить до 2.0 м.
- Тип грунта. Песчаные и рыхлые почвы требуют более глубокой установки столбов (до 70–80 см) и увеличенного объёма бетона. Глинистые почвы позволяют обойтись заглублением 50 см.
- Ветровая нагрузка. На открытых участках, особенно в степи и на побережье, парусность сетки высокая. Шаг столбов желательно уменьшить до 2.0–2.2 м, а столбы брать с запасом по сечению.
- Наличие углов. Каждый угол забора — это дополнительный столб. При большом количестве углов (П-образный или Г-образный участок) количество столбов растёт на 2–4 штуки сверх расчётного.
- Ширина ворот и калитки. Стандартные ворота — 3.5–4.0 м, калитка — 1.0 м. Если у вас нестандартные размеры, скорректируйте длину ограждения вручную.
- Тип сетки. Оцинкованная сетка тяжелее неоцинкованной примерно на 5–8%. Сетка с ПВХ-покрытием ещё легче, но требует более аккуратного натяжения.
Важные нюансы
- Угловые столбы. Их всегда бетонируют первыми и особенно тщательно выставляют по уровню. Угловой столб несёт нагрузку от натяжения сетки в двух направлениях, поэтому его сечение должно быть на 20–30% больше рядового.
- Натяжение сетки. Слишком сильное натяжение деформирует крайние столбы. Слишком слабое — сетка провисает. Используйте талрепы (натяжители) на угловых столбах для точной регулировки.
- Заглубление столбов. Минимальная глубина — 50 см. Но в регионах с промерзанием грунта столб должен уходить ниже глубины промерзания (для средней полосы России — 70–80 см).
- Защита от коррозии. Даже оцинкованные столбы в месте среза и сварки теряют цинковый слой. Обработайте эти места холодным цинком или битумной мастикой до бетонирования.
- Проволока в ПВХ-оболочке не требует дополнительной изоляции от столба. Обычную оцинкованную проволоку в месте контакта со столбом желательно защитить резиновой прокладкой.
- Сетка с ПВХ-покрытием не переносит сварки и грубого механического крепления — только хомуты или скобы с резиновыми вставками.
Частые ошибки
- Экономия на столбах. Увеличение шага до 3.5–4 м приводит к провисанию сетки уже через год. Забор теряет вид и защитную функцию. Придерживайтесь шага не более 3 м.
- Заливка столбов без учёта вертикали. Отклонение столба на 2–3° незаметно глазу, но при натяжении сетки нагрузка распределяется неравномерно, и столб постепенно наклоняется ещё сильнее.
- Игнорирование угловых столбов. Все столбы берут одинакового сечения — это ошибка. Угловые и столбы под ворота должны быть мощнее на 20–30%.
- Отсутствие натяжной проволоки. Сетка без проволоки растягивается неравномерно, «гуляет» при ветре и быстрее изнашивается в местах крепления.
- Покупка сетки без запаса. Обрезки, огибание углов, нахлёст при стыковке рулонов — всё это съедает до 5–8% материала. Наш калькулятор уже закладывает 10%, но если вы режете с большим отходом — возьмите额外 рулон.
- Бетонирование в мороз. Бетон должен набирать прочность при плюсовой температуре. При заливке зимой используйте противоморозные добавки или отложите работу до весны.
Ответы на частые вопросы
Сколько служит сетка-рабица?
Оцинкованная сетка служит 15–25 лет, с ПВХ-покрытием — 25–35 лет, неоцинкованная (чёрная) — не более 5–7 лет без покраски. Реальный срок зависит от агрессивности среды и качества монтажа.
Какой диаметр проволоки выбрать?
Для дачного забора достаточно 1.6–1.8 мм. Для постоянного ограждения участка с домом — 2.0 мм. Проволока тоньше 1.4 мм используется только для временных ограждений и вольеров для птицы.
Можно ли ставить столбы без бетона?
Можно, но только на плотных глинистых грунтах и для низких заборов (до 1.2 м). Столб забивают кувалдой на 60–70 см. На песчаных, рыхлых и пучинистых грунтах бетонирование обязательно.
Сколько цемента нужно на один столб?
При яме 40×40×50 см и использовании готовой бетонной смеси — примерно 15–18 кг цемента на столб (⅓ ведра цемента, ⅔ песка, 1 ведро щебня). Точный расход зависит от марки цемента и пропорций замеса.
Как стыковать рулоны сетки?
Стыковка выполняется на столбе: конец одного рулона и начало следующего крепятся к одному столбу с нахлёстом в 1–2 ячейки. Для этого в месте стыка вынимается проволочная спираль из кромки одного рулона, и рулоны «сшиваются» этой спиралью.
Нужно ли разрешение на забор из сетки-рабицы?
В большинстве случаев для забора высотой до 2 м внутри СНТ или населённого пункта разрешение не требуется. Но лучше свериться с уставом СНТ или местными правилами застройки — некоторые посёлки ограничивают высоту и материал ограждений.
Источники и справочные данные
Расчёт основан на практических нормах расхода материалов для заборов из сетки-рабицы, применяемых в частном строительстве и благоустройстве участков в России. Использованы данные из технических условий производителей сетки-рабицы (ГОСТ 5336-80), рекомендации по установке столбчатых фундаментов для лёгких ограждений, а также обобщённый опыт монтажных бригад. Нормы расхода бетона и арматуры соответствуют строительным правилам СП 63.13330.2018. Для сложных случаев — участков с сильным уклоном, высоким уровнем грунтовых вод или нестандартными нагрузками — рекомендуется проконсультироваться со специалистом по месту.
Сетка-рабица для забора: полное руководство по выбору, расчёту и установке
Сетка-рабица — один из самых популярных материалов для ограждения участков в России. Она недорогая, долговечная при правильном выборе, пропускает свет и воздух, не создаёт тени для растений. Но чтобы забор простоял 20–30 лет без провисания и коррозии, нужно грамотно подойти к расчёту материалов и соблюсти технологию монтажа. В этой статье мы разберём все этапы — от выбора сетки до финишного натяжения.
Виды сетки-рабицы: какая подойдёт для вашего забора
Сетка-рабица различается по трём ключевым параметрам: материалу проволоки, размеру ячейки и диаметру проволоки. Неправильный выбор любого из них сокращает срок службы забора в 2–3 раза.
- Неоцинкованная (чёрная) сетка. Самая дешёвая, но требует обязательной покраски каждые 3–4 года. Без защиты ржавеет за 5–7 лет. Применяется в основном как временное ограждение на стройплощадках.
- Оцинкованная сетка. Проволока покрыта слоем цинка горячим или электролитическим способом. Горячее цинкование предпочтительнее — слой толще и равномернее. Срок службы 15–25 лет без дополнительной обработки. Оптимальный выбор для постоянного забора.
- Сетка с ПВХ-покрытием. На оцинкованную проволоку нанесён слой поливинилхлорида. Цвета: зелёный, серый, синий, коричневый. Устойчива к кислотам, солям, ультрафиолету. Срок службы 25–35 лет. Стоит на 20–30% дороже оцинкованной.
Размер ячейки для забора обычно выбирают 50×50 мм или 55×55 мм. Ячейка 30×30 мм используется для вольеров, 80×80 мм — для строительных работ. Диаметр проволоки 1.6–2.0 мм — золотая середина для дачного забора. Проволока 1.4 мм подходит только для низких ограждений и клеток.
Как рассчитать длину сетки и количество материалов
Самый надёжный способ — использовать наш калькулятор сетки-рабицы в начале страницы. Он автоматически учтёт все проёмы, заложит запас 10% и выдаст готовую смету по всем позициям. Но полезно понимать, как устроен расчёт вручную.
Измерьте периметр участка рулеткой или лазерным дальномером. Вычтите ширину ворот (стандартно 3.5–4 м) и калитки (1 м). К полученной длине добавьте 10% запаса — это покроет обрезку, нахлёст на столбах и возможный брак. Округлите до целого числа в большую сторону.
Количество рулонов = полученная длина / 10 (стандартный рулон). Округляйте всегда вверх. Лучше пусть останется ровный остаток, чем не хватит 30 см в конце монтажа.
Выбор столбов: металл, бетон или дерево
Подавляющее большинство заборов из сетки-рабицы монтируется на металлических столбах. Они прочные, удобные в установке и служат 20+ лет при условии антикоррозионной защиты.
- Квадратная труба 50×50 мм — для сетки высотой до 1.5 м, шаг до 2.5 м.
- Квадратная труба 60×60 мм — для высоты 1.8–2.0 м, шаг до 3.0 м.
- Круглая труба 57 мм — лёгкий вариант для дачи, удобно забивать.
- Круглая труба 76 мм — усиленный вариант для угловых и воротных столбов.
Бетонные столбы дешевле, но тяжелее в монтаже и требуют сверления отверстий под крепёж. Деревянные столбы — бюджетный вариант, но даже после обработки антисептиком служат не более 10–12 лет.
Технология монтажа: пошаговая инструкция
- Разметка. Натяните шнур по линии будущего забора. Колышками отметьте места под столбы согласно выбранному шагу. Отдельно пометьте углы, места ворот и калитки.
- Бурение ям. Глубина ямы — минимум 50 см, лучше 70–80 см (ниже глубины промерзания в вашем регионе). Диаметр ямы — 25–30 см. Используйте ручной бур или ямобур.
- Установка угловых столбов. Начинайте с углов. Выставьте столб строго вертикально по уровню, зафиксируйте распорками, залейте бетоном. Дайте бетону схватиться — минимум 24 часа при тёплой погоде.
- Установка рядовых столбов. Натяните шнур между угловыми столбами — это ориентир для всех промежуточных. Бетонируйте последовательно, проверяя вертикаль каждого столба.
- Крепление натяжной проволоки. Через 3–4 дня после бетонирования натяните проволоку в 3 ряда: верх, низ и середина. Начинайте с верхнего ряда, используйте талрепы для точной натяжки.
- Монтаж сетки. Рулон раскатывайте вдоль забора, крепите к проволоке скобами или хомутами с шагом 30–40 см. Стыкуйте рулоны на столбе методом «вынимания спирали».
Сравнение сетки-рабицы с другими материалами
По соотношению цены, долговечности и трудозатрат сетка-рабица остаётся лучшим выбором для больших участков и дач. Профнастил стоит в 2–3 раза дороже и создаёт глухую стену, затеняющую растения. Деревянный штакетник требует ежегодной пропитки. Кованые секции — премиум-сегмент с ценой от 3500 ₽ за погонный метр. Сетка-рабица обходится в 350–600 ₽ за пог. м с учётом всех материалов и работы — это самый доступный вариант долговечного ограждения.
Советы по экономии без потери качества
- Покупайте сетку в рулонах по 15–20 м — цена за погонный метр получается на 5–8% ниже, чем в 10-метровых.
- Заказывайте столбы на металлобазе оптом — от 20 штук цена падает на 10–15%.
- Бетон замешивайте самостоятельно: 1 часть цемента М400, 2.5 части песка, 3.5 части щебня. Готовая смесь в мешках удобнее, но на 25–30% дороже.
- Проволоку для натяжения берите в бухтах по 100 м — это дешевле, чем отрезками.
- Работу по бурению ям и бетонированию выполняйте в сухую погоду при температуре +10…+25 °C — бетон схватывается быстрее и прочнее.
Уход за забором из сетки-рабицы
Оцинкованная сетка не требует ухода первые 10–12 лет. Затем полезно осмотреть места креплений: скобы и хомуты могут ослабнуть или начать ржаветь. Подтяните их или замените. Сетку с ПВХ-покрытием достаточно мыть водой из шланга раз в 2–3 года для удаления пыли и мха. Нижний край сетки не должен касаться земли — оставляйте зазор 5–7 см, это предотвратит капиллярное впитывание влаги и коррозию нижней кромки.
Правильно рассчитанный и смонтированный забор из сетки-рабицы прослужит не меньше четверти века, оставаясь аккуратным, прозрачным для солнца и надёжным ограждением вашего участка.
CiAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIHZhciBsZW5ndGhJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tZmVuY2UtbGVuZ3RoJyk7CiAgICAgICAgICAgIHZhciBoZWlnaHRTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLW1lc2gtaGVpZ2h0Jyk7CiAgICAgICAgICAgIHZhciBzcGFjaW5nU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1wb3N0LXNwYWNpbmcnKTsKICAgICAgICAgICAgdmFyIGdhdGVzSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLWdhdGVzJyk7CiAgICAgICAgICAgIHZhciB3aWNrZXRzSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXdpY2tldHMnKTsKICAgICAgICAgICAgdmFyIGNhbGNCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLWNhbGMtYnRuJyk7CiAgICAgICAgICAgIHZhciByZXNldEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzZXQtYnRuJyk7CgogICAgICAgICAgICB2YXIgZXJyTGVuZ3RoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1lcnItbGVuZ3RoJyk7CiAgICAgICAgICAgIHZhciBlcnJIZWlnaHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLWVyci1oZWlnaHQnKTsKICAgICAgICAgICAgdmFyIGVyclNwYWNpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLWVyci1zcGFjaW5nJyk7CiAgICAgICAgICAgIHZhciBlcnJHYXRlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tZXJyLWdhdGVzJyk7CiAgICAgICAgICAgIHZhciBlcnJXaWNrZXRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1lcnItd2lja2V0cycpOwoKICAgICAgICAgICAgdmFyIHJlc01lc2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJlcy1tZXNoJyk7CiAgICAgICAgICAgIHZhciByZXNSb2xscyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzLXJvbGxzJyk7CiAgICAgICAgICAgIHZhciByZXNQb3N0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzLXBvc3RzJyk7CiAgICAgICAgICAgIHZhciByZXNXaXJlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1yZXMtd2lyZScpOwogICAgICAgICAgICB2YXIgcmVzQ2xhbXBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1yZXMtY2xhbXBzJyk7CiAgICAgICAgICAgIHZhciByZXNDb25jcmV0ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzLWNvbmNyZXRlJyk7CgogICAgICAgICAgICB2YXIgR0FURV9XSURUSCA9IDMuNTsKICAgICAgICAgICAgdmFyIFdJQ0tFVF9XSURUSCA9IDEuMDsKICAgICAgICAgICAgdmFyIFJPTExfTEVOR1RIID0gMTA7CiAgICAgICAgICAgIHZhciBDT05DUkVURV9QRVJfUE9TVCA9IDAuMDQ7CiAgICAgICAgICAgIHZhciBXSVJFX1JPV1MgPSAzOwogICAgICAgICAgICB2YXIgUkVTRVJWRV9GQUNUT1IgPSAxLjE7CgogICAgICAgICAgICBmdW5jdGlvbiBjbGVhckVycm9ycygpIHsKICAgICAgICAgICAgICAgIGVyckxlbmd0aC50ZXh0Q29udGVudCA9ICcnOwogICAgICAgICAgICAgICAgZXJySGVpZ2h0LnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgICAgICBlcnJTcGFjaW5nLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgICAgICBlcnJHYXRlcy50ZXh0Q29udGVudCA9ICcnOwogICAgICAgICAgICAgICAgZXJyV2lja2V0cy50ZXh0Q29udGVudCA9ICcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBzaG93RXJyb3IoZWwsIG1zZykgewogICAgICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSBtc2c7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlKCkgewogICAgICAgICAgICAgICAgY2xlYXJFcnJvcnMoKTsKICAgICAgICAgICAgICAgIHZhciB2YWxpZCA9IHRydWU7CgogICAgICAgICAgICAgICAgdmFyIGxlbmd0aFZhbCA9IHBhcnNlRmxvYXQobGVuZ3RoSW5wdXQudmFsdWUpOwogICAgICAgICAgICAgICAgaWYgKGlzTmFOKGxlbmd0aFZhbCkgfHwgbGVuZ3RoVmFsIDw9IDApIHsKICAgICAgICAgICAgICAgICAgICBzaG93RXJyb3IoZXJyTGVuZ3RoLCAn0JLQstC10LTQuNGC0LUg0L/QvtC70L7QttC40YLQtdC70YzQvdC+0LUg0YfQuNGB0LvQviAo0LzQuNC90LjQvNGD0LwgMC41INC8KScpOwogICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxlbmd0aFZhbCA8IDAuNSkgewogICAgICAgICAgICAgICAgICAgIHNob3dFcnJvcihlcnJMZW5ndGgsICfQnNC40L3QuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAg0L7Qs9GA0LDQttC00LXQvdC40Y8g4oCUIDAuNSDQvCcpOwogICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxlbmd0aFZhbCA+IDUwMDApIHsKICAgICAgICAgICAgICAgICAgICBzaG93RXJyb3IoZXJyTGVuZ3RoLCAn0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAg4oCUIDUwMDAg0LwnKTsKICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZhciBoZWlnaHRWYWwgPSBwYXJzZUZsb2F0KGhlaWdodFNlbGVjdC52YWx1ZSk7CiAgICAgICAgICAgICAgICBpZiAoaXNOYU4oaGVpZ2h0VmFsKSB8fCBoZWlnaHRWYWwgPD0gMCkgewogICAgICAgICAgICAgICAgICAgIHNob3dFcnJvcihlcnJIZWlnaHQsICfQktGL0LHQtdGA0LjRgtC1INCy0YvRgdC+0YLRgyDRgdC10YLQutC4Jyk7CiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB2YXIgc3BhY2luZ1ZhbCA9IHBhcnNlRmxvYXQoc3BhY2luZ1NlbGVjdC52YWx1ZSk7CiAgICAgICAgICAgICAgICBpZiAoaXNOYU4oc3BhY2luZ1ZhbCkgfHwgc3BhY2luZ1ZhbCA8PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgc2hvd0Vycm9yKGVyclNwYWNpbmcsICfQktGL0LHQtdGA0LjRgtC1INGI0LDQsyDRgdGC0L7Qu9Cx0L7QsicpOwogICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdmFyIGdhdGVzVmFsID0gcGFyc2VJbnQoZ2F0ZXNJbnB1dC52YWx1ZSk7CiAgICAgICAgICAgICAgICBpZiAoaXNOYU4oZ2F0ZXNWYWwpIHx8IGdhdGVzVmFsIDwgMCkgewogICAgICAgICAgICAgICAgICAgIHNob3dFcnJvcihlcnJHYXRlcywgJ9CS0LLQtdC00LjRgtC1IDAg0LjQu9C4INC/0L7Qu9C+0LbQuNGC0LXQu9GM0L3QvtC1INGH0LjRgdC70L4nKTsKICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnYXRlc1ZhbCA+IDEwKSB7CiAgICAgICAgICAgICAgICAgICAgc2hvd0Vycm9yKGVyckdhdGVzLCAn0J3QtSDQsdC+0LvQtdC1IDEwINCy0L7RgNC+0YInKTsKICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZhciB3aWNrZXRzVmFsID0gcGFyc2VJbnQod2lja2V0c0lucHV0LnZhbHVlKTsKICAgICAgICAgICAgICAgIGlmIChpc05hTih3aWNrZXRzVmFsKSB8fCB3aWNrZXRzVmFsIDwgMCkgewogICAgICAgICAgICAgICAgICAgIHNob3dFcnJvcihlcnJXaWNrZXRzLCAn0JLQstC10LTQuNGC0LUgMCDQuNC70Lgg0L/QvtC70L7QttC40YLQtdC70YzQvdC+0LUg0YfQuNGB0LvQvicpOwogICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpY2tldHNWYWwgPiAxMCkgewogICAgICAgICAgICAgICAgICAgIHNob3dFcnJvcihlcnJXaWNrZXRzLCAn0J3QtSDQsdC+0LvQtdC1IDEwINC60LDQu9C40YLQvtC6Jyk7CiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAodmFsaWQgJiYgbGVuZ3RoVmFsID4gMCAmJiBzcGFjaW5nVmFsID4gMCAmJiBnYXRlc1ZhbCA+PSAwICYmIHdpY2tldHNWYWwgPj0gMCkgewogICAgICAgICAgICAgICAgICAgIHZhciBvcGVuaW5ncyA9IGdhdGVzVmFsICogR0FURV9XSURUSCArIHdpY2tldHNWYWwgKiBXSUNLRVRfV0lEVEg7CiAgICAgICAgICAgICAgICAgICAgaWYgKG9wZW5pbmdzID49IGxlbmd0aFZhbCkgewogICAgICAgICAgICAgICAgICAgICAgICBzaG93RXJyb3IoZXJyTGVuZ3RoLCAn0KHRg9C80LzQsNGA0L3QsNGPINGI0LjRgNC40L3QsCDQv9GA0L7RkdC80L7QsiDQv9GA0LXQstGL0YjQsNC10YIg0LjQu9C4INGA0LDQstC90LAg0LTQu9C40L3QtSDQvtCz0YDQsNC20LTQtdC90LjRjy4g0KPQvNC10L3RjNGI0LjRgtC1INC60L7Qu9C40YfQtdGB0YLQstC+INCy0L7RgNC+0YIv0LrQsNC70LjRgtC+0Log0LjQu9C4INGD0LLQtdC70LjRh9GM0YLQtSDQtNC70LjQvdGDLicpOwogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIGZvcm1hdE51bWJlcihudW0sIGRlY2ltYWxzKSB7CiAgICAgICAgICAgICAgICBkZWNpbWFscyA9IGRlY2ltYWxzIHx8IDE7CiAgICAgICAgICAgICAgICB2YXIgcm91bmRlZCA9IE1hdGgucm91bmQobnVtICogTWF0aC5wb3coMTAsIGRlY2ltYWxzKSkgLyBNYXRoLnBvdygxMCwgZGVjaW1hbHMpOwogICAgICAgICAgICAgICAgcmV0dXJuIHJvdW5kZWQudG9TdHJpbmcoKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgewogICAgICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZhciB0b3RhbExlbmd0aCA9IHBhcnNlRmxvYXQobGVuZ3RoSW5wdXQudmFsdWUpOwogICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IHBhcnNlRmxvYXQoaGVpZ2h0U2VsZWN0LnZhbHVlKTsKICAgICAgICAgICAgICAgIHZhciBzcGFjaW5nID0gcGFyc2VGbG9hdChzcGFjaW5nU2VsZWN0LnZhbHVlKTsKICAgICAgICAgICAgICAgIHZhciBnYXRlcyA9IHBhcnNlSW50KGdhdGVzSW5wdXQudmFsdWUpIHx8IDA7CiAgICAgICAgICAgICAgICB2YXIgd2lja2V0cyA9IHBhcnNlSW50KHdpY2tldHNJbnB1dC52YWx1ZSkgfHwgMDsKCiAgICAgICAgICAgICAgICB2YXIgb3BlbmluZ3MgPSBnYXRlcyAqIEdBVEVfV0lEVEggKyB3aWNrZXRzICogV0lDS0VUX1dJRFRIOwogICAgICAgICAgICAgICAgdmFyIG1lc2hMZW5ndGggPSAodG90YWxMZW5ndGggLSBvcGVuaW5ncykgKiBSRVNFUlZFX0ZBQ1RPUjsKICAgICAgICAgICAgICAgIGlmIChtZXNoTGVuZ3RoIDwgMCkgbWVzaExlbmd0aCA9IDA7CgogICAgICAgICAgICAgICAgdmFyIHJvbGxzID0gTWF0aC5jZWlsKG1lc2hMZW5ndGggLyBST0xMX0xFTkdUSCk7CiAgICAgICAgICAgICAgICBpZiAobWVzaExlbmd0aCA9PT0gMCkgcm9sbHMgPSAwOwoKICAgICAgICAgICAgICAgIHZhciBwb3N0cyA9IE1hdGguY2VpbCh0b3RhbExlbmd0aCAvIHNwYWNpbmcpICsgMTsKICAgICAgICAgICAgICAgIGlmIChwb3N0cyA8IDIpIHBvc3RzID0gMjsKCiAgICAgICAgICAgICAgICB2YXIgd2lyZSA9IHRvdGFsTGVuZ3RoICogV0lSRV9ST1dTOwogICAgICAgICAgICAgICAgdmFyIGNsYW1wcyA9IHBvc3RzICogV0lSRV9ST1dTOwogICAgICAgICAgICAgICAgdmFyIGNvbmNyZXRlID0gcG9zdHMgKiBDT05DUkVURV9QRVJfUE9TVDsKCiAgICAgICAgICAgICAgICByZXNNZXNoLnRleHRDb250ZW50ID0gZm9ybWF0TnVtYmVyKG1lc2hMZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgcmVzUm9sbHMudGV4dENvbnRlbnQgPSByb2xsczsKICAgICAgICAgICAgICAgIHJlc1Bvc3RzLnRleHRDb250ZW50ID0gcG9zdHM7CiAgICAgICAgICAgICAgICByZXNXaXJlLnRleHRDb250ZW50ID0gZm9ybWF0TnVtYmVyKHdpcmUsIDEpOwogICAgICAgICAgICAgICAgcmVzQ2xhbXBzLnRleHRDb250ZW50ID0gY2xhbXBzOwogICAgICAgICAgICAgICAgcmVzQ29uY3JldGUudGV4dENvbnRlbnQgPSBmb3JtYXROdW1iZXIoY29uY3JldGUsIDIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiByZXNldEZvcm0oKSB7CiAgICAgICAgICAgICAgICBsZW5ndGhJbnB1dC52YWx1ZSA9ICcnOwogICAgICAgICAgICAgICAgaGVpZ2h0U2VsZWN0LnNlbGVjdGVkSW5kZXggPSAxOwogICAgICAgICAgICAgICAgc3BhY2luZ1NlbGVjdC5zZWxlY3RlZEluZGV4ID0gMTsKICAgICAgICAgICAgICAgIGdhdGVzSW5wdXQudmFsdWUgPSAnMCc7CiAgICAgICAgICAgICAgICB3aWNrZXRzSW5wdXQudmFsdWUgPSAnMCc7CiAgICAgICAgICAgICAgICBjbGVhckVycm9ycygpOwogICAgICAgICAgICAgICAgcmVzTWVzaC50ZXh0Q29udGVudCA9ICcwJzsKICAgICAgICAgICAgICAgIHJlc1JvbGxzLnRleHRDb250ZW50ID0gJzAnOwogICAgICAgICAgICAgICAgcmVzUG9zdHMudGV4dENvbnRlbnQgPSAnMCc7CiAgICAgICAgICAgICAgICByZXNXaXJlLnRleHRDb250ZW50ID0gJzAnOwogICAgICAgICAgICAgICAgcmVzQ2xhbXBzLnRleHRDb250ZW50ID0gJzAnOwogICAgICAgICAgICAgICAgcmVzQ29uY3JldGUudGV4dENvbnRlbnQgPSAnMCc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNhbGNCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjYWxjdWxhdGUpOwogICAgICAgICAgICByZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0Rm9ybSk7CgogICAgICAgICAgICBsZW5ndGhJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgZ2F0ZXNJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgd2lja2V0c0lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pKCk7CiAgICA=