Калькулятор площади цветника
Расчёт общей и полезной площади, количества растений, объёма мульчи и грунта для цветника любой формы.
0
Вместимость растений
шт
0
Плодородный грунт (20 см)
л
Как пользоваться калькулятором
1
Выберите форму цветника — прямоугольник, круг или Г-образный. Для каждой формы укажите размеры в метрах (длину, ширину или радиус).
2
Укажите, есть ли дорожки внутри цветника, и их площадь. Если дорожек нет, полезная площадь будет равна общей. Добавьте процент запаса на отходы (обычно 5–10%).
3
Введите расстояние между растениями в сантиметрах (например, 30 см для петуний или 50 см для роз). Калькулятор автоматически определит, сколько растений поместится на полезной площади.
4
Нажмите «Рассчитать». Вы получите общую и полезную площадь, количество растений, необходимый объём мульчи (при слое 5 см) и плодородного грунта (при слое 20 см), а также площадь с учётом запаса на подрезку.
Примеры расчёта
Прямоугольный цветник у забора
Цветник длиной 5 м и шириной 1,5 м, без дорожек, запас 10%, расстояние между цветами 30 см. Общая площадь: 7,5 м². Полезная: 7,5 м². Вместимость: около 83 растений. Мульчи нужно ≈ 375 л, грунта ≈ 1500 л.
Круглая клумба в центре газона
Радиус 2 м, дорожек нет, запас 5%, посадка с шагом 40 см. Общая площадь ≈ 12,57 м². Полезная: 12,57 м². Вместимость: около 78 растений. Мульчи ≈ 628 л. Грунта ≈ 2514 л. Отлично подойдёт для ярких однолетников.
Г-образный цветник с дорожкой
Первый участок 3×2 м, второй 2×1,5 м, дорожка занимает 0,9 м², запас 10%, шаг посадки 25 см. Общая площадь = 9 м². Полезная = 8,1 м². Вместимость ≈ 130 растений. Мульчи ≈ 405 л, грунта ≈ 1620 л.
Формулы расчёта
Все формулы используют базовую геометрию и агрономические нормы. Результат округляется вверх для практического применения.
Площадь прямоугольника = длина × ширина
Площадь круга = π × радиус² (π ≈ 3.1416)
Площадь Г-образного = (длина₁ × ширина₁) + (длина₂ × ширина₂)
Полезная площадь = общая площадь − площадь дорожек
Количество растений = полезная площадь / (расстояние в м)²
Объём мульчи (л) = полезная площадь × 50 (слой 5 см = 0,05 м × 1000 л/м³)
Объём грунта (л) = полезная площадь × 200 (слой 20 см = 0,2 м × 1000 л/м³)
Площадь с запасом = общая площадь × (1 + запас% / 100)
Нормы и ориентиры
Приведённые значения — ориентировочные. Они помогают прикинуть объём материалов и количество растений, но окончательное решение зависит от конкретных условий.
- Расстояние между растениями: низкорослые однолетники (петуния, бархатцы) — 15–25 см; среднерослые (сальвия, цинния) — 25–40 см; кустовые розы и пионы — 50–80 см.
- Толщина мульчи: оптимально 4–7 см. Слой менее 3 см слабо подавляет сорняки. Свыше 8 см может мешать воздухообмену у корней.
- Глубина плодородного слоя: для однолетников — 15–25 см, для многолетников и кустарников — 25–40 см. Мы используем среднее значение 20 см.
- Запас на отходы: при простой форме цветника — 5%; при сложных изогнутых линиях — 10–15%.
- Дорожки: если вы планируете мощение или гравийные тропинки внутри цветника, обязательно вычтите их площадь — это напрямую влияет на количество растений и объём материалов.
Что влияет на результат
- Форма цветника. Круглая клумба той же площади, что и прямоугольная, может потребовать больше растений по краям из-за кривизны периметра.
- Вид растений. Разные культуры имеют разный габитус куста. То, что подходит для компактных сортов, не годится для раскидистых многолетников.
- Тип почвы. На бедных почвах растения развиваются медленнее, поэтому можно сажать чуть плотнее. На плодородных — соблюдайте рекомендованные расстояния.
- Освещённость. В тени растения часто вытягиваются, и схема посадки может потребовать корректировки.
- Стиль цветника. Пейзажные миксбордеры допускают более плотную посадку, чем регулярные партеры с чёткими рядами.
- Цель посадки. Для быстрого смыкания рядов (декоративный эффект в первый же год) сажайте с запасом 10–15% к расчётному количеству.
Важные нюансы
- Все расчёты носят ориентировочный характер. Реальная потребность может отличаться в зависимости от сорта, микроклимата и качества посадочного материала.
- При покупке мульчи и грунта в мешках всегда округляйте количество в большую сторону. Лучше остаться с небольшим запасом, чем столкнуться с нехваткой в разгар работ.
- Если цветник расположен на склоне, увеличьте толщину мульчи на 1–2 см для предотвращения смыва.
- Для цветников с луковичными (тюльпаны, нарциссы) плотность посадки рассчитывается иначе — луковицы сажают на глубину, и расстояние варьируется от 5 до 15 см в зависимости от размера луковицы.
- При устройстве высоких грядок-цветников объём грунта может быть значительно больше — учитывайте высоту бортов.
- Не забывайте про севооборот: однолетние цветы желательно менять местами каждые 2–3 года для снижения болезней.
Частые ошибки
- Покупка грунта «впритык». Без запаса 5–10% вы рискуете остаться без материала, если часть рассыплется или осядет после полива. Всегда берите с запасом.
- Слишком плотная посадка. Желание быстро получить пышный цветник приводит к загущению. Растения конкурируют за свет и влагу, чаще болеют мучнистой росой.
- Игнорирование дорожек. Если не вычесть площадь тропинок, расчёт растений и мульчи будет завышен на 10–20%. Это лишние траты.
- Неправильное расстояние между растениями. Указывайте расстояние между центрами кустов, а не между краями. Иначе растения будут теснить друг друга.
- Забывают про толщину мульчи. Слишком тонкий слой (1–2 см) не удержит влагу и не подавит сорняки. Слишком толстый (более 10 см) может спровоцировать гниль корневой шейки.
- Расчёт без учёта многолетников. Многолетние растения с годами разрастаются. Если вы сажаете пионы или хосты, закладывайте в схему их будущий размер через 3–4 года.
Ответы на частые вопросы
- Можно ли использовать калькулятор для огорода? Да, принцип расчёта площади и количества растений одинаков. Только замените цветы на овощные культуры и уточните расстояния по агротаблицам.
- Как учесть изогнутые дорожки? Если дорожка плавной формы, приблизительно разбейте её на прямоугольники и сложите площади. Для точного расчёта можно нарисовать план на миллиметровке.
- Что делать, если цветник на склоне? Рассчитывайте площадь как для ровной поверхности (в проекции), но увеличьте запас мульчи на 10–15% для компенсации сползания.
- Сколько мульчи покупать в мешках? Разделите полученный объём в литрах на объём одного мешка. Например, 500 л мульчи при фасовке 50 л — это 10 мешков. Всегда округляйте вверх.
- Нужно ли менять грунт полностью? Не обязательно. Если почва на участке хорошая, достаточно добавить компост или перегной из расчёта 20–30 л на м². Полная замена грунта нужна только на истощённых или загрязнённых участках.
- Как часто обновлять мульчу? Органическую мульчу (кора, щепа, солома) — раз в 1–2 года по мере разложения. Декоративную каменную крошку — по мере загрязнения, обычно раз в 3–5 лет.
Источники и справочные данные
- Расчёт площади ведётся по стандартным геометрическим формулам.
- Нормы расхода мульчи и грунта основаны на агрономических справочных рекомендациях для декоративного садоводства.
- Расстояния между растениями базируются на практическом опыте выращивания цветочных культур и рекомендациях производителей семян.
- Объёмы пересчитываются в литры для удобства: 1 м³ = 1000 литров. Толщина слоя умножается на площадь.
- Все значения являются ориентировочными. Для точных расчётов под конкретные культуры сверяйтесь с инструкцией на упаковке семян или саженцев.
Калькулятор площади цветника помогает быстро рассчитать, сколько растений, мульчи и грунта потребуется для клумбы любой формы. Вы можете рассчитать площадь прямоугольного, круглого или Г-образного цветника, учесть дорожки и запас на отходы. Инструмент подходит для планирования посадок на даче, в саду или на приусадебном участке. Введите размеры, выберите форму и получите готовый расчёт за несколько секунд.
CihmdW5jdGlvbigpewogIHZhciBzaGFwZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbG93ZXJiZWQtc2hhcGUnKTsKICB2YXIgZ3JvdXBSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NoYXBlLWZpZWxkcy1yZWN0YW5nbGUnKTsKICB2YXIgZ3JvdXBDaXJjbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hhcGUtZmllbGRzLWNpcmNsZScpOwogIHZhciBncm91cExzaGFwZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaGFwZS1maWVsZHMtbHNoYXBlJyk7CiAgdmFyIHBhdGhzU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hhcy1wYXRocycpOwogIHZhciBwYXRoc0dyb3VwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhdGhzLWFyZWEtZ3JvdXAnKTsKICB2YXIgY2FsY0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxjdWxhdGUtYnRuJyk7CiAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LWJ0bicpOwogIHZhciBlcnJvck1zZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlcnJvci1tZXNzYWdlJyk7CgogIHZhciBpbnB1dHMgPSB7CiAgICByZWN0TGVuZ3RoOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVjdC1sZW5ndGgnKSwKICAgIHJlY3RXaWR0aDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlY3Qtd2lkdGgnKSwKICAgIGNpcmNsZVJhZGl1czogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NpcmNsZS1yYWRpdXMnKSwKICAgIGxMZW5ndGgxOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHNoYXBlLWxlbmd0aDEnKSwKICAgIGxXaWR0aDE6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsc2hhcGUtd2lkdGgxJyksCiAgICBsTGVuZ3RoMjogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xzaGFwZS1sZW5ndGgyJyksCiAgICBsV2lkdGgyOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbHNoYXBlLXdpZHRoMicpLAogICAgcGF0aHNBcmVhOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGF0aHMtYXJlYScpLAogICAgd2FzdGVQZXJjZW50OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FzdGUtcGVyY2VudCcpLAogICAgcGxhbnRTcGFjaW5nOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxhbnQtc3BhY2luZycpCiAgfTsKCiAgdmFyIHJlc3VsdElkcyA9IHsKICAgIHRvdGFsQXJlYTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy10b3RhbC1hcmVhJyksCiAgICB1c2FibGVBcmVhOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzLXVzYWJsZS1hcmVhJyksCiAgICBwbGFudENvdW50OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzLXBsYW50LWNvdW50JyksCiAgICBtdWxjaFZvbHVtZTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1tdWxjaC12b2x1bWUnKSwKICAgIHNvaWxWb2x1bWU6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXMtc29pbC12b2x1bWUnKSwKICAgIGFyZWFXaXRoV2FzdGU6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXMtYXJlYS13aXRoLXdhc3RlJykKICB9OwoKICBmdW5jdGlvbiBzaG93RXJyb3IodGV4dCkgewogICAgZXJyb3JNc2cudGV4dENvbnRlbnQgPSB0ZXh0IHx8ICcnOwogIH0KCiAgZnVuY3Rpb24gcmVzZXRSZXN1bHRzKCkgewogICAgZm9yICh2YXIga2V5IGluIHJlc3VsdElkcykgewogICAgICBpZiAocmVzdWx0SWRzLmhhc093blByb3BlcnR5KGtleSkpIHsKICAgICAgICByZXN1bHRJZHNba2V5XS50ZXh0Q29udGVudCA9ICcwJzsKICAgICAgfQogICAgfQogIH0KCiAgZnVuY3Rpb24gZ2V0TnVtZXJpY1ZhbHVlKGVsLCBmaWVsZE5hbWUpIHsKICAgIHZhciB2YWwgPSBlbC52YWx1ZS50cmltKCk7CiAgICBpZiAodmFsID09PSAnJykgewogICAgICByZXR1cm4geyBlcnJvcjogJ9Cf0L7Qu9C1IMKrJyArIGZpZWxkTmFtZSArICfCuyDQvdC1INC30LDQv9C+0LvQvdC10L3Qvi4nIH07CiAgICB9CiAgICB2YXIgbnVtID0gcGFyc2VGbG9hdCh2YWwpOwogICAgaWYgKGlzTmFOKG51bSkpIHsKICAgICAgcmV0dXJuIHsgZXJyb3I6ICfQndC10LrQvtGA0YDQtdC60YLQvdC+0LUg0YfQuNGB0LvQviDQsiDQv9C+0LvQtSDCqycgKyBmaWVsZE5hbWUgKyAnwrsuJyB9OwogICAgfQogICAgaWYgKG51bSA8IDApIHsKICAgICAgcmV0dXJuIHsgZXJyb3I6ICfQl9C90LDRh9C10L3QuNC1INCyINC/0L7Qu9C1IMKrJyArIGZpZWxkTmFtZSArICfCuyDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0L7RgtGA0LjRhtCw0YLQtdC70YzQvdGL0LwuJyB9OwogICAgfQogICAgcmV0dXJuIHsgdmFsdWU6IG51bSwgZXJyb3I6IG51bGwgfTsKICB9CgogIGZ1bmN0aW9uIGNhbGN1bGF0ZVRvdGFsQXJlYShzaGFwZSkgewogICAgdmFyIHJlczsKICAgIGlmIChzaGFwZSA9PT0gJ3JlY3RhbmdsZScpIHsKICAgICAgdmFyIGxlbiA9IGdldE51bWVyaWNWYWx1ZShpbnB1dHMucmVjdExlbmd0aCwgJ9CU0LvQuNC90LAnKTsKICAgICAgaWYgKGxlbi5lcnJvcikgcmV0dXJuIGxlbjsKICAgICAgdmFyIHdpZCA9IGdldE51bWVyaWNWYWx1ZShpbnB1dHMucmVjdFdpZHRoLCAn0KjQuNGA0LjQvdCwJyk7CiAgICAgIGlmICh3aWQuZXJyb3IpIHJldHVybiB3aWQ7CiAgICAgIGlmIChsZW4udmFsdWUgPD0gMCB8fCB3aWQudmFsdWUgPD0gMCkgewogICAgICAgIHJldHVybiB7IGVycm9yOiAn0JTQu9C40L3QsCDQuCDRiNC40YDQuNC90LAg0LTQvtC70LbQvdGLINCx0YvRgtGMINCx0L7Qu9GM0YjQtSDQvdGD0LvRjy4nIH07CiAgICAgIH0KICAgICAgcmV0dXJuIHsgdmFsdWU6IGxlbi52YWx1ZSAqIHdpZC52YWx1ZSwgZXJyb3I6IG51bGwgfTsKICAgIH0KICAgIGlmIChzaGFwZSA9PT0gJ2NpcmNsZScpIHsKICAgICAgdmFyIHJhZCA9IGdldE51bWVyaWNWYWx1ZShpbnB1dHMuY2lyY2xlUmFkaXVzLCAn0KDQsNC00LjRg9GBJyk7CiAgICAgIGlmIChyYWQuZXJyb3IpIHJldHVybiByYWQ7CiAgICAgIGlmIChyYWQudmFsdWUgPD0gMCkgewogICAgICAgIHJldHVybiB7IGVycm9yOiAn0KDQsNC00LjRg9GBINC00L7Qu9C20LXQvSDQsdGL0YLRjCDQsdC+0LvRjNGI0LUg0L3Rg9C70Y8uJyB9OwogICAgICB9CiAgICAgIHJldHVybiB7IHZhbHVlOiBNYXRoLlBJICogcmFkLnZhbHVlICogcmFkLnZhbHVlLCBlcnJvcjogbnVsbCB9OwogICAgfQogICAgaWYgKHNoYXBlID09PSAnbHNoYXBlJykgewogICAgICB2YXIgbDEgPSBnZXROdW1lcmljVmFsdWUoaW5wdXRzLmxMZW5ndGgxLCAn0JTQu9C40L3QsCDQv9C10YDQstC+0LPQviDRg9GH0LDRgdGC0LrQsCcpOwogICAgICBpZiAobDEuZXJyb3IpIHJldHVybiBsMTsKICAgICAgdmFyIHcxID0gZ2V0TnVtZXJpY1ZhbHVlKGlucHV0cy5sV2lkdGgxLCAn0KjQuNGA0LjQvdCwINC/0LXRgNCy0L7Qs9C+INGD0YfQsNGB0YLQutCwJyk7CiAgICAgIGlmICh3MS5lcnJvcikgcmV0dXJuIHcxOwogICAgICB2YXIgbDIgPSBnZXROdW1lcmljVmFsdWUoaW5wdXRzLmxMZW5ndGgyLCAn0JTQu9C40L3QsCDQstGC0L7RgNC+0LPQviDRg9GH0LDRgdGC0LrQsCcpOwogICAgICBpZiAobDIuZXJyb3IpIHJldHVybiBsMjsKICAgICAgdmFyIHcyID0gZ2V0TnVtZXJpY1ZhbHVlKGlucHV0cy5sV2lkdGgyLCAn0KjQuNGA0LjQvdCwINCy0YLQvtGA0L7Qs9C+INGD0YfQsNGB0YLQutCwJyk7CiAgICAgIGlmICh3Mi5lcnJvcikgcmV0dXJuIHcyOwogICAgICBpZiAobDEudmFsdWUgPD0gMCB8fCB3MS52YWx1ZSA8PSAwIHx8IGwyLnZhbHVlIDw9IDAgfHwgdzIudmFsdWUgPD0gMCkgewogICAgICAgIHJldHVybiB7IGVycm9yOiAn0JLRgdC1INGA0LDQt9C80LXRgNGLINCTLdC+0LHRgNCw0LfQvdC+0LPQviDRg9GH0LDRgdGC0LrQsCDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0LHQvtC70YzRiNC1INC90YPQu9GPLicgfTsKICAgICAgfQogICAgICByZXR1cm4geyB2YWx1ZTogKGwxLnZhbHVlICogdzEudmFsdWUpICsgKGwyLnZhbHVlICogdzIudmFsdWUpLCBlcnJvcjogbnVsbCB9OwogICAgfQogICAgcmV0dXJuIHsgZXJyb3I6ICfQndC10LjQt9Cy0LXRgdGC0L3QsNGPINGE0L7RgNC80LAg0YbQstC10YLQvdC40LrQsC4nIH07CiAgfQoKICBmdW5jdGlvbiBjYWxjdWxhdGUoKSB7CiAgICBzaG93RXJyb3IoJycpOwogICAgdmFyIHNoYXBlID0gc2hhcGVTZWxlY3QudmFsdWU7CgogICAgdmFyIHRvdGFsQXJlYVJlcyA9IGNhbGN1bGF0ZVRvdGFsQXJlYShzaGFwZSk7CiAgICBpZiAodG90YWxBcmVhUmVzLmVycm9yKSB7CiAgICAgIHNob3dFcnJvcih0b3RhbEFyZWFSZXMuZXJyb3IpOwogICAgICByZXNldFJlc3VsdHMoKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIHRvdGFsQXJlYSA9IHRvdGFsQXJlYVJlcy52YWx1ZTsKCiAgICB2YXIgaGFzUGF0aHMgPSBwYXRoc1NlbGVjdC52YWx1ZTsKICAgIHZhciBwYXRoc0FyZWFWYWwgPSAwOwogICAgaWYgKGhhc1BhdGhzID09PSAneWVzJykgewogICAgICB2YXIgcFJlcyA9IGdldE51bWVyaWNWYWx1ZShpbnB1dHMucGF0aHNBcmVhLCAn0J/Qu9C+0YnQsNC00Ywg0LTQvtGA0L7QttC10LonKTsKICAgICAgaWYgKHBSZXMuZXJyb3IpIHsKICAgICAgICBzaG93RXJyb3IocFJlcy5lcnJvcik7CiAgICAgICAgcmVzZXRSZXN1bHRzKCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHBhdGhzQXJlYVZhbCA9IHBSZXMudmFsdWU7CiAgICAgIGlmIChwYXRoc0FyZWFWYWwgPiB0b3RhbEFyZWEgLSAwLjAwMSkgewogICAgICAgIHNob3dFcnJvcign0J/Qu9C+0YnQsNC00Ywg0LTQvtGA0L7QttC10Log0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINCx0L7Qu9GM0YjQtSDQuNC70Lgg0YDQsNCy0L3QsCDQvtCx0YnQtdC5INC/0LvQvtGJ0LDQtNC4INGG0LLQtdGC0L3QuNC60LAuJyk7CiAgICAgICAgcmVzZXRSZXN1bHRzKCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CgogICAgdmFyIHdhc3RlUmVzID0gZ2V0TnVtZXJpY1ZhbHVlKGlucHV0cy53YXN0ZVBlcmNlbnQsICfQl9Cw0L/QsNGBINC90LAg0L7RgtGF0L7QtNGLJyk7CiAgICBpZiAod2FzdGVSZXMuZXJyb3IpIHsKICAgICAgc2hvd0Vycm9yKHdhc3RlUmVzLmVycm9yKTsKICAgICAgcmVzZXRSZXN1bHRzKCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciB3YXN0ZVBjdCA9IHdhc3RlUmVzLnZhbHVlOwoKICAgIHZhciBzcGFjaW5nUmVzID0gZ2V0TnVtZXJpY1ZhbHVlKGlucHV0cy5wbGFudFNwYWNpbmcsICfQoNCw0YHRgdGC0L7Rj9C90LjQtSDQvNC10LbQtNGDINGA0LDRgdGC0LXQvdC40Y/QvNC4Jyk7CiAgICBpZiAoc3BhY2luZ1Jlcy5lcnJvcikgewogICAgICBzaG93RXJyb3Ioc3BhY2luZ1Jlcy5lcnJvcik7CiAgICAgIHJlc2V0UmVzdWx0cygpOwogICAgICByZXR1cm47CiAgICB9CiAgICB2YXIgc3BhY2luZ0NtID0gc3BhY2luZ1Jlcy52YWx1ZTsKICAgIGlmIChzcGFjaW5nQ20gPD0gMCkgewogICAgICBzaG93RXJyb3IoJ9Cg0LDRgdGB0YLQvtGP0L3QuNC1INC80LXQttC00YMg0YDQsNGB0YLQtdC90LjRj9C80Lgg0LTQvtC70LbQvdC+INCx0YvRgtGMINCx0L7Qu9GM0YjQtSDQvdGD0LvRjy4nKTsKICAgICAgcmVzZXRSZXN1bHRzKCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciBzcGFjaW5nTSA9IHNwYWNpbmdDbSAvIDEwMDsKCiAgICB2YXIgdXNhYmxlQXJlYSA9IHRvdGFsQXJlYSAtIHBhdGhzQXJlYVZhbDsKICAgIGlmICh1c2FibGVBcmVhIDwgMCkgdXNhYmxlQXJlYSA9IDA7CgogICAgdmFyIHBsYW50Q291bnQgPSAwOwogICAgaWYgKHNwYWNpbmdNID4gMCAmJiB1c2FibGVBcmVhID4gMCkgewogICAgICBwbGFudENvdW50ID0gTWF0aC5mbG9vcih1c2FibGVBcmVhIC8gKHNwYWNpbmdNICogc3BhY2luZ00pKTsKICAgIH0KCiAgICB2YXIgbXVsY2hWb2x1bWUgPSB1c2FibGVBcmVhICogNTA7IC8vIDAuMDVtICogMTAwMCA9IDUwIGxpdHJlcyBwZXIgbTIKICAgIHZhciBzb2lsVm9sdW1lID0gdXNhYmxlQXJlYSAqIDIwMDsgLy8gMC4ybSAqIDEwMDAgPSAyMDAgbGl0cmVzIHBlciBtMgogICAgdmFyIGFyZWFXaXRoV2FzdGUgPSB0b3RhbEFyZWEgKiAoMSArIHdhc3RlUGN0IC8gMTAwKTsKCiAgICByZXN1bHRJZHMudG90YWxBcmVhLnRleHRDb250ZW50ID0gdG90YWxBcmVhLnRvRml4ZWQoMik7CiAgICByZXN1bHRJZHMudXNhYmxlQXJlYS50ZXh0Q29udGVudCA9IHVzYWJsZUFyZWEudG9GaXhlZCgyKTsKICAgIHJlc3VsdElkcy5wbGFudENvdW50LnRleHRDb250ZW50ID0gcGxhbnRDb3VudDsKICAgIHJlc3VsdElkcy5tdWxjaFZvbHVtZS50ZXh0Q29udGVudCA9IE1hdGgucm91bmQobXVsY2hWb2x1bWUpOwogICAgcmVzdWx0SWRzLnNvaWxWb2x1bWUudGV4dENvbnRlbnQgPSBNYXRoLnJvdW5kKHNvaWxWb2x1bWUpOwogICAgcmVzdWx0SWRzLmFyZWFXaXRoV2FzdGUudGV4dENvbnRlbnQgPSBhcmVhV2l0aFdhc3RlLnRvRml4ZWQoMik7CiAgfQoKICBmdW5jdGlvbiByZXNldEZvcm0oKSB7CiAgICBpbnB1dHMucmVjdExlbmd0aC52YWx1ZSA9ICcnOwogICAgaW5wdXRzLnJlY3RXaWR0aC52YWx1ZSA9ICcnOwogICAgaW5wdXRzLmNpcmNsZVJhZGl1cy52YWx1ZSA9ICcnOwogICAgaW5wdXRzLmxMZW5ndGgxLnZhbHVlID0gJyc7CiAgICBpbnB1dHMubFdpZHRoMS52YWx1ZSA9ICcnOwogICAgaW5wdXRzLmxMZW5ndGgyLnZhbHVlID0gJyc7CiAgICBpbnB1dHMubFdpZHRoMi52YWx1ZSA9ICcnOwogICAgaW5wdXRzLnBhdGhzQXJlYS52YWx1ZSA9ICcwJzsKICAgIGlucHV0cy53YXN0ZVBlcmNlbnQudmFsdWUgPSAnMTAnOwogICAgaW5wdXRzLnBsYW50U3BhY2luZy52YWx1ZSA9ICczMCc7CiAgICBzaGFwZVNlbGVjdC52YWx1ZSA9ICdyZWN0YW5nbGUnOwogICAgcGF0aHNTZWxlY3QudmFsdWUgPSAnbm8nOwogICAgc2hvd0Vycm9yKCcnKTsKICAgIHJlc2V0UmVzdWx0cygpOwogICAgdXBkYXRlU2hhcGVGaWVsZHMoKTsKICAgIHVwZGF0ZVBhdGhzRmllbGRzKCk7CiAgfQoKICBmdW5jdGlvbiB1cGRhdGVTaGFwZUZpZWxkcygpIHsKICAgIHZhciB2YWwgPSBzaGFwZVNlbGVjdC52YWx1ZTsKICAgIGdyb3VwUmVjdC5zdHlsZS5kaXNwbGF5ID0gdmFsID09PSAncmVjdGFuZ2xlJyA/ICdibG9jaycgOiAnbm9uZSc7CiAgICBncm91cENpcmNsZS5zdHlsZS5kaXNwbGF5ID0gdmFsID09PSAnY2lyY2xlJyA/ICdibG9jaycgOiAnbm9uZSc7CiAgICBncm91cExzaGFwZS5zdHlsZS5kaXNwbGF5ID0gdmFsID09PSAnbHNoYXBlJyA/ICdibG9jaycgOiAnbm9uZSc7CiAgfQoKICBmdW5jdGlvbiB1cGRhdGVQYXRoc0ZpZWxkcygpIHsKICAgIHBhdGhzR3JvdXAuc3R5bGUuZGlzcGxheSA9IHBhdGhzU2VsZWN0LnZhbHVlID09PSAneWVzJyA/ICdibG9jaycgOiAnbm9uZSc7CiAgfQoKICBzaGFwZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB1cGRhdGVTaGFwZUZpZWxkcyk7CiAgcGF0aHNTZWxlY3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdXBkYXRlUGF0aHNGaWVsZHMpOwogIGNhbGNCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjYWxjdWxhdGUpOwogIHJlc2V0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRGb3JtKTsKfSkoKTsK