Калькулятор посадки малины
Рассчитайте необходимое количество саженцев малины, схему размещения рядов и итоговую стоимость с учётом площади участка и выбранной схемы посадки.
0
Площадь участка
м² / сот.
0
Кустов в одном ряду
шт.
0
Всего саженцев нужно
шт.
0
К покупке (с запасом 10%)
шт.
0
Ориентировочный урожай
кг/сезон
0
Плотность посадки
кустов/сотку
Введите данные участка и нажмите «Рассчитать», чтобы увидеть результат.
Как пользоваться калькулятором
1
Выберите тип посадки: кустовую (отдельные кусты на расстоянии 50–70 см друг от друга) или ленточную (сплошная полоса побегов с шагом 25–40 см). От этого зависят рекомендуемые расстояния.
2
Укажите длину и ширину участка в метрах. Например, грядка 8 × 3 м или полоса вдоль забора 15 × 2 м. Поля поддерживают десятые доли (0.5, 1.2 и т.д.).
3
Настройте расстояния между кустами (в сантиметрах) и между рядами (в метрах). По умолчанию стоят усреднённые значения: 50 см между кустами и 2 м между рядами для кустовой посадки.
4
Введите цену одного саженца в рублях. Нажмите «Рассчитать» — вы получите общее количество саженцев, рекомендованный запас 10%, итоговую стоимость и ориентировочный урожай.
Примеры расчёта
Небольшая грядка 6 × 3 м, кустовая посадка
Участок 18 м² (0.18 сотки). Между кустами 60 см, между рядами 2 м. Получаем 2 ряда по 10 кустов — 20 саженцев. С запасом 10% — 22 штуки. При цене 250 ₽/шт. стоимость составит 5 500 ₽. Ориентировочный урожай — около 60 кг за сезон (по 3 кг с куста).
Полоса вдоль забора 20 × 2.5 м, ленточная посадка
Участок 50 м² (0.5 сотки). Ленточная схема: 35 см между саженцами, 2 м между рядами. В одном ряду помещается 57 саженцев. При одном ряде — 57 штук, с запасом — 63. При цене 200 ₽/шт. — 12 600 ₽. Урожай ориентировочно — 140–170 кг.
Промышленная посадка на 2 сотках (200 м²)
Участок 20 × 10 м. Кустовая схема: 50 см между кустами, 2.5 м между рядами. Получается 4 ряда по 40 кустов — 160 саженцев. С запасом — 176 штук. При оптовой цене 150 ₽/шт. — 26 400 ₽. Плотность — 80 кустов на сотку. Ориентировочный урожай — 480–640 кг за сезон.
Формулы расчёта
Калькулятор использует следующие формулы. Все результаты округляются до целых чисел в большую сторону, где это применимо.
Количество рядов = ⌊ширина участка (м) / расстояние между рядами (м)⌋
Округляется вниз — крайний ряд должен помещаться целиком.
Кустов в ряду = длина участка (м) / (расстояние между кустами (см) / 100)
Округляется вверх — частичный куст на краю тоже считается.
Общее количество саженцев = количество рядов × кустов в ряду
К покупке = общее количество × 1.1 (запас 10%), округление вверх
Запас компенсирует неприживаемость, повреждения при транспортировке и брак.
Общая стоимость = общее количество саженцев × цена одного саженца
Ориентировочный урожай = общее количество кустов × 3–5 кг
Средняя урожайность взрослого куста малины — от 3 до 5 кг за сезон. Точное значение зависит от сорта, ухода и возраста.
Плотность посадки = общее количество саженцев / (площадь участка / 100)
Измеряется в кустах на сотку. Для кустовой схемы типично 40–100 кустов/сотку, для ленточной — 80–150.
Нормы и ориентиры по схемам посадки малины
Рекомендуемые расстояния зависят от типа посадки, сорта и желаемой плотности. Ниже приведены проверенные диапазоны.
- Кустовая посадка: расстояние между кустами в ряду — 50–70 см, между рядами — 1.8–2.5 м. Подходит для сортов с мощным кустом (Таруса, Геракл, Жёлтый гигант).
- Ленточная посадка: расстояние между саженцами в ленте — 25–40 см, между рядами — 1.5–2.5 м. Лента формируется шириной 30–50 см. Подходит для ремонтантных сортов.
- Ремонтантные сорта (Полка, Брянское диво, Атлант) можно сажать плотнее: 30–40 см в ряду, 1.5–2 м между рядами.
- Штамбовые сорта (Таруса, Крепыш) требуют больше места: 70–80 см между кустами, 2–2.5 м между рядами.
- Минимальная ширина междурядья для прохода с тележкой или тачкой — 1.5 м. Если планируете механизированную обработку, закладывайте 2.5–3 м.
- На одну сотку (100 м²) при стандартной схеме 2 × 0.5 м помещается около 100 кустов. При ленточной схеме 2 × 0.35 м — около 140 саженцев.
Что влияет на результат
- Сорт малины. Сильнорослые штамбовые сорта требуют больше места, компактные ремонтантные — меньше. Всегда уточняйте рекомендации по конкретному сорту.
- Тип почвы. На плодородных суглинках кусты разрастаются активнее — имеет смысл увеличить расстояние на 10–15%. На бедных песчаных почвах можно сажать плотнее, но потребуется усиленная подкормка.
- Способ формировки. При веерной подвязке кусты занимают больше места в ширину, чем при вертикальной шпалере. Учитывайте это при разметке.
- Климат региона. В южных регионах с длинным вегетационным периодом кусты разрастаются сильнее — увеличивайте междурядья на 20–30 см. В северных — можно уменьшать.
- Планируемый уход. Ручная прополка допускает более узкие междурядья (1.5 м). Для мотоблока или культиватора нужно минимум 2 м.
- Возраст плантации. Малина разрастается за счёт корневой поросли. Даже при первоначальной разреженной посадке через 3–4 года ряд станет плотнее. Калькулятор считает стартовую посадку.
Важные нюансы при посадке малины
- Всегда закладывайте запас 10% на неприживаемость. Даже качественные саженцы могут не прижиться из-за погоды, пересыхания корней или повреждений при перевозке.
- Саженцы с открытой корневой системой (ОКС) лучше высаживать весной (апрель) или осенью (сентябрь-октябрь). Саженцы в контейнерах (ЗКС) — в течение всего сезона.
- При осенней посадке не затягивайте: саженец должен укорениться до заморозков. Оптимальный срок — за 3–4 недели до устойчивых холодов.
- Перед посадкой внесите в почву перепревший навоз или компост — 5–8 кг на м², а также фосфорно-калийные удобрения по норме с упаковки.
- Корневую шейку саженца заглубляйте не более чем на 2–3 см ниже уровня почвы. Слишком глубокая посадка — частая причина гибели малины.
- После посадки обязательно полейте — 5–10 л воды на куст — и замульчируйте приствольный круг соломой, опилками или торфом слоем 5–7 см.
Частые ошибки при расчёте и посадке
- Покупка «впритык» без запаса. Даже 2–3 неприжившихся саженца из 20 создадут проплешины в ряду, которые сложно заполнить позже. Всегда берите +10%.
- Слишком плотная посадка. Желание посадить побольше на маленьком участке приводит к загущению, нехватке света, росту болезней и снижению урожая. Соблюдайте рекомендованные расстояния.
- Игнорирование ширины междурядий. Узкие проходы (менее 1.2 м) затрудняют сбор ягод, обрезку и обработку. Через 2 года вы не сможете пройти между рядами.
- Посадка без учёта поросли. Малина активно расползается. Если не вкопать ограничители (шифер, лента) на глубину 30–40 см по периметру, через 3 года малина займёт весь огород.
- Расчёт «на глаз» без рулетки. Ошибка даже в 10 см на одно посадочное место при 50 кустах даёт смещение в 5 метров. Размечайте ряды колышками и шнуром.
- Покупка саженцев без учёта сортовой совместимости. Обычная и ремонтантная малина требуют разной обрезки. Сажайте их отдельными рядами, иначе уход усложнится.
Ответы на частые вопросы
Сколько кустов малины посадить на семью из 4 человек?
Для стабильного урожая в сезон нужно 15–25 кустов летней малины и 10–15 кустов ремонтантной. Это даст 60–120 кг ягод — хватит на еду, заморозку и варенье.
Можно ли сажать малину в один ряд вдоль забора?
Да, это популярный вариант. Оптимальная ширина полосы — 1–1.5 м от забора. Учитывайте, что с северной стороны забора малина будет получать меньше солнца и плодоносить хуже.
Когда лучше сажать малину — весной или осенью?
Оба варианта рабочие. Осенняя посадка (конец сентября – октябрь) предпочтительнее в южных и средних регионах: саженец успевает укорениться и весной быстро трогается в рост. В северных регионах лучше сажать весной.
На каком расстоянии сажать разные сорта малины?
Разные сорта можно сажать в соседних рядах. Расстояние между рядами сохраняется стандартным — 1.8–2.5 м. В одном ряду разные сорта лучше разделять промежутком в 2–3 метра, чтобы не перепутать поросль.
Нужно ли ограждать малину от расползания?
Настоятельно рекомендуется. Вкопайте по периметру ряда листы шифера, бордюрную ленту или плотный пластик на глубину 30–40 см. Корни малины редко уходят глубже 25–30 см, но расползаются горизонтально на метры.
Сколько лет плодоносит малина на одном месте?
Продуктивный период — 8–12 лет. Затем урожайность падает, ягоды мельчают. Рекомендуется обновлять плантацию каждые 10 лет, перенося малинник на новое место. На старом месте малину не сажают минимум 5 лет.
Источники и справочные данные
- Агрономические справочные нормы посадки плодово-ягодных культур (ВНИИ садоводства им. И.В. Мичурина, рекомендации для Центрального региона).
- Практические рекомендации по выращиванию малины в личных подсобных хозяйствах (ФГБНУ «Федеральный научный центр садоводства»).
- Нормы расчёта посадочного материала для ягодных культур в промышленных насаждениях (Справочник агронома-плодовода, 2022).
- Усреднённые показатели урожайности сортов малины для средней полосы России (3–5 кг с куста для летних сортов, 2–4 кг для ремонтантных в первый год плодоношения).
- Окончательные расстояния и схему посадки всегда сверяйте с рекомендациями производителя посадочного материала для конкретного сорта.
Калькулятор посадки малины помогает садоводам и дачникам точно рассчитать количество саженцев для участка любого размера — от небольшой грядки до промышленной плантации. Инструмент учитывает тип посадки (кустовую или ленточную), расстояния между кустами и рядами, а также автоматически закладывает запас 10% на неприживаемость. Вы получаете полную смету: число саженцев, количество рядов, итоговую стоимость и ориентировочный урожай в килограммах за сезон. Расчёт основан на агрономических нормах и практических рекомендациях по выращиванию малины в условиях средней полосы России.
CihmdW5jdGlvbigpewogICAgdmFyIHR5cGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmFzcGJlcnJ5LXR5cGUnKTsKICAgIHZhciBsZW5ndGhJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwbG90LWxlbmd0aCcpOwogICAgdmFyIHdpZHRoSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxvdC13aWR0aCcpOwogICAgdmFyIGJ1c2hTcGFjaW5nSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVzaC1zcGFjaW5nJyk7CiAgICB2YXIgcm93U3BhY2luZ0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvdy1zcGFjaW5nJyk7CiAgICB2YXIgcHJpY2VJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWVkbGluZy1wcmljZScpOwogICAgdmFyIGNhbGNCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsY3VsYXRlLWJ0bicpOwogICAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LWJ0bicpOwogICAgdmFyIHJlc3VsdENhcmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LWNhcmQnKTsKICAgIHZhciByZXN1bHRQbGFjZWhvbGRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtcGxhY2Vob2xkZXInKTsKCiAgICB2YXIgZXJyb3JUeXBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vycm9yLXR5cGUnKTsKICAgIHZhciBlcnJvckxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlcnJvci1sZW5ndGgnKTsKICAgIHZhciBlcnJvcldpZHRoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vycm9yLXdpZHRoJyk7CiAgICB2YXIgZXJyb3JCdXNoU3BhY2luZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlcnJvci1idXNoLXNwYWNpbmcnKTsKICAgIHZhciBlcnJvclJvd1NwYWNpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXJyb3Itcm93LXNwYWNpbmcnKTsKICAgIHZhciBlcnJvclByaWNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vycm9yLXByaWNlJyk7CgogICAgZnVuY3Rpb24gaGlkZUFsbEVycm9ycygpIHsKICAgICAgICB2YXIgZXJyb3JzID0gW2Vycm9yVHlwZSwgZXJyb3JMZW5ndGgsIGVycm9yV2lkdGgsIGVycm9yQnVzaFNwYWNpbmcsIGVycm9yUm93U3BhY2luZywgZXJyb3JQcmljZV07CiAgICAgICAgZXJyb3JzLmZvckVhY2goZnVuY3Rpb24oZWwpIHsKICAgICAgICAgICAgaWYgKGVsKSB7IGVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IGVsLnRleHRDb250ZW50ID0gJyc7IH0KICAgICAgICB9KTsKICAgIH0KCiAgICBmdW5jdGlvbiBzaG93RXJyb3IoZWwsIG1zZykgewogICAgICAgIGlmICghZWwpIHJldHVybjsKICAgICAgICBlbC50ZXh0Q29udGVudCA9IG1zZzsKICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgIH0KCiAgICBmdW5jdGlvbiB2YWxpZGF0ZSgpIHsKICAgICAgICBoaWRlQWxsRXJyb3JzKCk7CiAgICAgICAgdmFyIHZhbGlkID0gdHJ1ZTsKICAgICAgICB2YXIgbGVuZ3RoVmFsID0gcGFyc2VGbG9hdChsZW5ndGhJbnB1dC52YWx1ZSk7CiAgICAgICAgdmFyIHdpZHRoVmFsID0gcGFyc2VGbG9hdCh3aWR0aElucHV0LnZhbHVlKTsKICAgICAgICB2YXIgYnVzaFZhbCA9IHBhcnNlRmxvYXQoYnVzaFNwYWNpbmdJbnB1dC52YWx1ZSk7CiAgICAgICAgdmFyIHJvd1ZhbCA9IHBhcnNlRmxvYXQocm93U3BhY2luZ0lucHV0LnZhbHVlKTsKICAgICAgICB2YXIgcHJpY2VWYWwgPSBwYXJzZUZsb2F0KHByaWNlSW5wdXQudmFsdWUpOwoKICAgICAgICBpZiAoaXNOYU4obGVuZ3RoVmFsKSB8fCBsZW5ndGhWYWwgPD0gMCkgewogICAgICAgICAgICBzaG93RXJyb3IoZXJyb3JMZW5ndGgsICfQktCy0LXQtNC40YLQtSDQtNC70LjQvdGDINGD0YfQsNGB0YLQutCwICjQsdC+0LvRjNGI0LUgMCkuJyk7CiAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgfSBlbHNlIGlmIChsZW5ndGhWYWwgPiA1MDApIHsKICAgICAgICAgICAgc2hvd0Vycm9yKGVycm9yTGVuZ3RoLCAn0JTQu9C40L3QsCDRg9GH0LDRgdGC0LrQsCDQvdC1INC80L7QttC10YIg0L/RgNC10LLRi9GI0LDRgtGMIDUwMCDQvC4nKTsKICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzTmFOKHdpZHRoVmFsKSB8fCB3aWR0aFZhbCA8PSAwKSB7CiAgICAgICAgICAgIHNob3dFcnJvcihlcnJvcldpZHRoLCAn0JLQstC10LTQuNGC0LUg0YjQuNGA0LjQvdGDINGD0YfQsNGB0YLQutCwICjQsdC+0LvRjNGI0LUgMCkuJyk7CiAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgfSBlbHNlIGlmICh3aWR0aFZhbCA+IDUwMCkgewogICAgICAgICAgICBzaG93RXJyb3IoZXJyb3JXaWR0aCwgJ9Co0LjRgNC40L3QsCDRg9GH0LDRgdGC0LrQsCDQvdC1INC80L7QttC10YIg0L/RgNC10LLRi9GI0LDRgtGMIDUwMCDQvC4nKTsKICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzTmFOKGJ1c2hWYWwpIHx8IGJ1c2hWYWwgPCAyMCB8fCBidXNoVmFsID4gMTUwKSB7CiAgICAgICAgICAgIHNob3dFcnJvcihlcnJvckJ1c2hTcGFjaW5nLCAn0KDQsNGB0YHRgtC+0Y/QvdC40LUg0LzQtdC20LTRgyDQutGD0YHRgtCw0LzQuDog0L7RgiAyMCDQtNC+IDE1MCDRgdC8LicpOwogICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAoaXNOYU4ocm93VmFsKSB8fCByb3dWYWwgPCAxIHx8IHJvd1ZhbCA+IDUpIHsKICAgICAgICAgICAgc2hvd0Vycm9yKGVycm9yUm93U3BhY2luZywgJ9Cg0LDRgdGB0YLQvtGP0L3QuNC1INC80LXQttC00YMg0YDRj9C00LDQvNC4OiDQvtGCIDEg0LTQviA1INC8LicpOwogICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAoaXNOYU4ocHJpY2VWYWwpIHx8IHByaWNlVmFsIDwgMCkgewogICAgICAgICAgICBzaG93RXJyb3IoZXJyb3JQcmljZSwgJ9Cm0LXQvdCwINGB0LDQttC10L3RhtCwINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDQvtGC0YDQuNGG0LDRgtC10LvRjNC90L7QuS4nKTsKICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgaWYgKHByaWNlVmFsID4gMTAwMDAwKSB7CiAgICAgICAgICAgIHNob3dFcnJvcihlcnJvclByaWNlLCAn0KbQtdC90LAg0YHQsNC20LXQvdGG0LAg0L3QtSDQvNC+0LbQtdGCINC/0YDQtdCy0YvRiNCw0YLRjCAxMDAgMDAwIOKCvS4nKTsKICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbGlkICYmIHJvd1ZhbCA+IHdpZHRoVmFsKSB7CiAgICAgICAgICAgIHNob3dFcnJvcihlcnJvclJvd1NwYWNpbmcsICfQoNCw0YHRgdGC0L7Rj9C90LjQtSDQvNC10LbQtNGDINGA0Y/QtNCw0LzQuCAoJyArIHJvd1ZhbCArICcg0LwpINCx0L7Qu9GM0YjQtSDRiNC40YDQuNC90Ysg0YPRh9Cw0YHRgtC60LAgKCcgKyB3aWR0aFZhbCArICcg0LwpLiDQndC1INC/0L7QvNC10YHRgtC40YLRgdGPINC90Lgg0L7QtNC90L7Qs9C+INGA0Y/QtNCwLicpOwogICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdmFsaWQ7CiAgICB9CgogICAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgewogICAgICAgIHZhciBsZW5ndGhWYWwgPSBwYXJzZUZsb2F0KGxlbmd0aElucHV0LnZhbHVlKTsKICAgICAgICB2YXIgd2lkdGhWYWwgPSBwYXJzZUZsb2F0KHdpZHRoSW5wdXQudmFsdWUpOwogICAgICAgIHZhciBidXNoVmFsID0gcGFyc2VGbG9hdChidXNoU3BhY2luZ0lucHV0LnZhbHVlKTsKICAgICAgICB2YXIgcm93VmFsID0gcGFyc2VGbG9hdChyb3dTcGFjaW5nSW5wdXQudmFsdWUpOwogICAgICAgIHZhciBwcmljZVZhbCA9IHBhcnNlRmxvYXQocHJpY2VJbnB1dC52YWx1ZSkgfHwgMDsKICAgICAgICB2YXIgdHlwZVZhbCA9IHR5cGVTZWxlY3QudmFsdWU7CgogICAgICAgIHZhciBidXNoU3BhY2luZ00gPSBidXNoVmFsIC8gMTAwOwogICAgICAgIHZhciBhcmVhID0gbGVuZ3RoVmFsICogd2lkdGhWYWw7CiAgICAgICAgdmFyIGFyZWFTb3RrYSA9IGFyZWEgLyAxMDA7CgogICAgICAgIHZhciBudW1Sb3dzID0gTWF0aC5mbG9vcih3aWR0aFZhbCAvIHJvd1ZhbCk7CiAgICAgICAgaWYgKG51bVJvd3MgPCAxKSBudW1Sb3dzID0gMTsKCiAgICAgICAgdmFyIGJ1c2hlc1BlclJvdyA9IE1hdGguY2VpbChsZW5ndGhWYWwgLyBidXNoU3BhY2luZ00pOwogICAgICAgIGlmIChidXNoZXNQZXJSb3cgPCAxKSBidXNoZXNQZXJSb3cgPSAxOwoKICAgICAgICB2YXIgdG90YWxCdXNoZXMgPSBudW1Sb3dzICogYnVzaGVzUGVyUm93OwogICAgICAgIHZhciB3aXRoUmVzZXJ2ZSA9IE1hdGguY2VpbCh0b3RhbEJ1c2hlcyAqIDEuMSk7CiAgICAgICAgdmFyIHRvdGFsUHJpY2UgPSB0b3RhbEJ1c2hlcyAqIHByaWNlVmFsOwoKICAgICAgICB2YXIgaGFydmVzdFBlckJ1c2hNaW4gPSAzOwogICAgICAgIHZhciBoYXJ2ZXN0UGVyQnVzaE1heCA9IDU7CiAgICAgICAgaWYgKHR5cGVWYWwgPT09ICdzdHJpcCcpIHsKICAgICAgICAgICAgaGFydmVzdFBlckJ1c2hNaW4gPSAyLjU7CiAgICAgICAgICAgIGhhcnZlc3RQZXJCdXNoTWF4ID0gNDsKICAgICAgICB9CiAgICAgICAgdmFyIGhhcnZlc3RNaW4gPSBNYXRoLnJvdW5kKHRvdGFsQnVzaGVzICogaGFydmVzdFBlckJ1c2hNaW4pOwogICAgICAgIHZhciBoYXJ2ZXN0TWF4ID0gTWF0aC5yb3VuZCh0b3RhbEJ1c2hlcyAqIGhhcnZlc3RQZXJCdXNoTWF4KTsKICAgICAgICB2YXIgaGFydmVzdFRleHQgPSBoYXJ2ZXN0TWluICsgJ+KAkycgKyBoYXJ2ZXN0TWF4OwoKICAgICAgICB2YXIgZGVuc2l0eSA9IGFyZWFTb3RrYSA+IDAgPyBNYXRoLnJvdW5kKHRvdGFsQnVzaGVzIC8gYXJlYVNvdGthKSA6IHRvdGFsQnVzaGVzOwoKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LWFyZWEnKS50ZXh0Q29udGVudCA9IE1hdGgucm91bmQoYXJlYSkgKyAnIC8gJyArIGFyZWFTb3RrYS50b0ZpeGVkKDEpOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtcm93cycpLnRleHRDb250ZW50ID0gbnVtUm93czsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LXBlci1yb3cnKS50ZXh0Q29udGVudCA9IGJ1c2hlc1BlclJvdzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LXRvdGFsLWJ1c2hlcycpLnRleHRDb250ZW50ID0gdG90YWxCdXNoZXM7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC13aXRoLXJlc2VydmUnKS50ZXh0Q29udGVudCA9IHdpdGhSZXNlcnZlOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtdG90YWwtcHJpY2UnKS50ZXh0Q29udGVudCA9IHRvdGFsUHJpY2UudG9Mb2NhbGVTdHJpbmcoJ3J1LVJVJyk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1oYXJ2ZXN0JykudGV4dENvbnRlbnQgPSBoYXJ2ZXN0VGV4dDsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LWRlbnNpdHknKS50ZXh0Q29udGVudCA9IGRlbnNpdHk7CgogICAgICAgIHZhciBub3RlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LW5vdGUnKTsKICAgICAgICB2YXIgdHlwZUxhYmVsID0gdHlwZVZhbCA9PT0gJ2J1c2gnID8gJ9C60YPRgdGC0L7QstC+0LknIDogJ9C70LXQvdGC0L7Rh9C90L7QuSc7CiAgICAgICAgbm90ZUVsLnRleHRDb250ZW50ID0gJ9Cg0LDRgdGH0ZHRgiDQtNC70Y8gJyArIHR5cGVMYWJlbCArICcg0L/QvtGB0LDQtNC60Lgg0L3QsCDRg9GH0LDRgdGC0LrQtSAnICsgbGVuZ3RoVmFsICsgJyDDlyAnICsgd2lkdGhWYWwgKyAnINC8ICgnICsgYXJlYVNvdGthLnRvRml4ZWQoMSkgKyAnINGB0L7Rgi4pLiAnICsKICAgICAgICAgICAgJ9Cj0YDQvtC20LDQuSDRg9C60LDQt9Cw0L0g0L7RgNC40LXQvdGC0LjRgNC+0LLQvtGH0L3QviDQtNC70Y8g0LLQt9GA0L7RgdC70YvRhSDQutGD0YHRgtC+0LIgKDPigJM0INCz0L7QtNCwKS4g0JfQsNC/0LDRgSAxMCUgKCcgKyAod2l0aFJlc2VydmUgLSB0b3RhbEJ1c2hlcykgKyAnINGI0YIuKSDQutC+0LzQv9C10L3RgdC40YDRg9C10YIg0LLQvtC30LzQvtC20L3Rg9GOINC90LXQv9GA0LjQttC40LLQsNC10LzQvtGB0YLRjC4nOwoKICAgICAgICByZXN1bHRDYXJkLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgIHJlc3VsdFBsYWNlaG9sZGVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB9CgogICAgY2FsY0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh2YWxpZGF0ZSgpKSB7CiAgICAgICAgICAgIGNhbGN1bGF0ZSgpOwogICAgICAgIH0KICAgIH0pOwoKICAgIHJlc2V0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgbGVuZ3RoSW5wdXQudmFsdWUgPSAnJzsKICAgICAgICB3aWR0aElucHV0LnZhbHVlID0gJyc7CiAgICAgICAgYnVzaFNwYWNpbmdJbnB1dC52YWx1ZSA9ICc1MCc7CiAgICAgICAgcm93U3BhY2luZ0lucHV0LnZhbHVlID0gJzInOwogICAgICAgIHByaWNlSW5wdXQudmFsdWUgPSAnMjUwJzsKICAgICAgICB0eXBlU2VsZWN0LnZhbHVlID0gJ2J1c2gnOwogICAgICAgIGhpZGVBbGxFcnJvcnMoKTsKICAgICAgICByZXN1bHRDYXJkLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgcmVzdWx0UGxhY2Vob2xkZXIuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICB9KTsKCiAgICB0eXBlU2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgIGhpZGVBbGxFcnJvcnMoKTsKICAgICAgICBpZiAodHlwZVNlbGVjdC52YWx1ZSA9PT0gJ3N0cmlwJykgewogICAgICAgICAgICBidXNoU3BhY2luZ0lucHV0LnZhbHVlID0gJzM1JzsKICAgICAgICAgICAgcm93U3BhY2luZ0lucHV0LnZhbHVlID0gJzInOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGJ1c2hTcGFjaW5nSW5wdXQudmFsdWUgPSAnNTAnOwogICAgICAgICAgICByb3dTcGFjaW5nSW5wdXQudmFsdWUgPSAnMic7CiAgICAgICAgfQogICAgfSk7Cn0pKCk7Cg==