Калькулятор посадки огурцов
Рассчитайте оптимальное количество растений, схему размещения и ожидаемую урожайность для вашего участка или теплицы.
Результаты расчёта
0
Плотность посадки
раст./м²
0
Ожидаемый урожай
кг/сезон
0
Полив (сезонная норма)
л
0
Удобрение (NPK 10-10-10)
кг/сезон
Как пользоваться калькулятором
1
Укажите площадь грядки или теплицы в квадратных метрах. Например, стандартная теплица 3×6 м — это 18 м², а узкая уличная грядка 0.8×5 м — 4 м².
2
Задайте расстояние между растениями в ряду и ширину междурядий. Для вертикального выращивания обычно оставляют 30–40 см в ряду и 70–100 см между рядами.
3
Выберите тип выращивания (шпалера или в расстил) и сорт. Кустовые сорта сажают гуще, длинноплетистым нужно больше пространства.
4
Нажмите «Рассчитать» — вы получите количество растений, число рядов, урожайность и потребность в воде и удобрениях на сезон.
Примеры расчёта
Теплица 18 м², вертикальное выращивание
Площадь 18 м², расстояние в ряду 35 см, междурядья 90 см, среднеплетистый сорт. Результат: примерно 48 растений, 4 ряда, плотность 2.7 раст./м², урожай до 140–160 кг за сезон.
Уличная грядка 6 м², горизонтальное выращивание
Площадь 6 м², расстояние в ряду 40 см, междурядья 100 см, длинноплетистый сорт. Результат: около 12–14 растений, 2 ряда, плотность 2.1 раст./м², урожай до 40–50 кг.
Компактная посадка кустовых огурцов на балконе
Площадь 1.5 м², расстояние в ряду 20 см, междурядья 40 см, кустовой сорт. Результат: 15–18 растений, 3 ряда, урожай до 25–30 кг при хорошем уходе.
Формулы расчёта
Количество рядов = floor(ширина грядки (см) / (междурядье (см) + расстояние в ряду (см)))
Растений в ряду = floor(длина грядки (см) / расстояние в ряду (см))
Общее количество растений = количество рядов × растений в ряду
Плотность посадки = общее количество растений / площадь (м²)
Урожай (кг) = количество растений × средняя урожайность куста (кг)
Полив (л) = количество растений × сезонная норма воды на растение (л)
Удобрение (кг) = количество растений × сезонная норма удобрения (г) / 1000
Средняя урожайность куста зависит от сорта и ухода: кустовые — 2–3 кг, среднеплетистые — 3–5 кг, длинноплетистые — 4–7 кг. Нормы полива и удобрений — ориентировочные.
Нормы и ориентиры
- Расстояние в ряду: кустовые сорта — 20–30 см, среднеплетистые — 30–40 см, длинноплетистые — 40–50 см.
- Междурядья: вертикальное выращивание — 70–100 см, горизонтальное — 100–140 см.
- Полив: в среднем 3–5 л на растение в сутки в жаркий период, за сезон (90–120 дней) — 270–600 л на куст.
- Удобрения (NPK 10-10-10): 40–80 г на растение за сезон, разделённые на 4–6 подкормок.
- Все нормы ориентировочные. Реальные значения зависят от плодородия почвы, частоты осадков и микроклимата.
Что влияет на результат
- Тип почвы. На тяжёлых глинистых почвах корневая система развивается медленнее, растения требуют больше пространства.
- Сорт и гибрид. Партенокарпические гибриды в теплице часто сажают плотнее, чем пчёлоопыляемые на улице.
- Освещённость. В полутени расстояние между растениями увеличивают на 10–15%, чтобы избежать конкуренции за свет.
- Способ формировки. При вертикальной подвязке можно сажать гуще, при горизонтальном размещении плети требуют больше площади.
- Полив и питание. На бедных почвах или при редком поливе урожайность падает на 30–50% от расчётной.
- Климат. В прохладное лето период плодоношения сокращается, общая урожайность снижается на 20–40%.
Важные нюансы
- Всегда добавляйте запас 10–15% на случай выпада растений или пересортицы рассады.
- При использовании удобрений строго соблюдайте дозировку с инструкции производителя. Избыток азота ведёт к жированию и снижению завязей.
- Окончательную схему посадки корректируйте под фактическую геометрию грядки — узкие длинные гряды дают другую раскладку рядов, чем квадратные.
- Для теплиц с капельным поливом норму воды можно уменьшить на 15–20% за счёт более точного внесения.
- При горизонтальном выращивании учитывайте, что плети могут выходить за пределы грядки на 40–60 см.
- Не сажайте огурцы на одном месте чаще чем раз в 3–4 года — накопившиеся болезни резко снижают отдачу.
Частые ошибки
- Слишком густая посадка. Провоцирует мучнистую росу и снижает проветриваемость. Урожай падает, а не растёт.
- Расчёт без запаса. Дачники часто берут ровно столько семян или рассады, сколько «влезает», забывая про выбраковку слабых растений.
- Игнорирование междурядий. Узкие проходы мешают уходу, сбору урожая и провоцируют загущение.
- Превышение дозировки удобрений. «Кашу маслом не испортишь» не работает: избыток калия или азота вызывает ожоги корней и опадание завязей.
- Полив в жару по листу. Приводит к ожогам и вспышкам грибных болезней. Поливайте под корень утром или вечером.
- Не учитывается сорт. Кустовой огурец в теплице на шпалере теряет смысл, а длинноплетистый в расстил требует огромной площади.
Ответы на частые вопросы
- Можно ли сажать огурцы гуще, чем советует калькулятор? Можно, но урожай с растения упадёт. Оптимальная плотность — компромисс между количеством кустов и их продуктивностью.
- Почему результат в растениях не круглый? Калькулятор считает по реальной геометрии грядки. Дробные значения округляются вниз, чтобы не превысить площадь.
- Какая урожайность realistic для новичка? Ориентируйтесь на нижнюю границу диапазона: 2–3 кг с куста для открытого грунта, 4–5 кг для теплицы.
- Нужно ли корректировать расчёт для бочки или мешков? Да. Для контейнерного выращивания считайте площадь как сумму верхних диаметров ёмкостей, а междурядья не учитывайте.
- Сколько закладывать семян с запасом? Минимум +15% к расчётному числу растений. Часть семян может не взойти, часть рассады — вытянуться.
- Калькулятор учитывает совмещённые посадки? Нет, расчёт ведётся для чистой монокультуры огурца. При совмещении с зеленью или редисом корректируйте площадь вручную.
Источники и справочные данные
- Агрономические справочные нормы посадки тыквенных культур.
- Инструкции производителей удобрений и средств защиты растений.
- Рекомендации по выращиванию овощных культур в открытом и защищённом грунте.
- Практические нормы расхода воды, удобрений и посадочного материала, обобщённые по данным овощеводческих хозяйств.
- Точные нормы применения удобрений и препаратов всегда берите из официальной инструкции конкретного продукта.
Калькулятор посадки огурцов помогает быстро рассчитать количество растений для грядки или теплицы, исходя из площади участка и выбранной схемы размещения. Инструмент учитывает тип выращивания и сорт, чтобы дать реалистичную оценку будущего урожая, объёма полива и необходимых удобрений. Расчёт опирается на агрономические нормы и практический опыт овощеводов, но не заменяет консультацию агронома в сложных случаях. Используйте полученные цифры как отправную точку и корректируйте их под свои условия.
CiAgICAgICAgKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb25zdCBhcmVhSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsLWFyZWEnKTsKICAgICAgICAgICAgY29uc3QgZGlzdFJvd0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbC1kaXN0LXJvdycpOwogICAgICAgICAgICBjb25zdCBkaXN0QmVkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsLWRpc3QtYmVkJyk7CiAgICAgICAgICAgIGNvbnN0IHR5cGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsLXR5cGUnKTsKICAgICAgICAgICAgY29uc3QgdmFyaWV0eVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWwtdmFyaWV0eScpOwoKICAgICAgICAgICAgY29uc3QgZXJyQXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlcnItYXJlYScpOwogICAgICAgICAgICBjb25zdCBlcnJEaXN0Um93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vyci1kaXN0LXJvdycpOwogICAgICAgICAgICBjb25zdCBlcnJEaXN0QmVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vyci1kaXN0LWJlZCcpOwoKICAgICAgICAgICAgY29uc3QgcmVzUGxhbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1wbGFudHMnKTsKICAgICAgICAgICAgY29uc3QgcmVzUm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXMtcm93cycpOwogICAgICAgICAgICBjb25zdCByZXNEZW5zaXR5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1kZW5zaXR5Jyk7CiAgICAgICAgICAgIGNvbnN0IHJlc1lpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy15aWVsZCcpOwogICAgICAgICAgICBjb25zdCByZXNXYXRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXMtd2F0ZXInKTsKICAgICAgICAgICAgY29uc3QgcmVzRmVydGlsaXplciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXMtZmVydGlsaXplcicpOwogICAgICAgICAgICBjb25zdCByZXNOb3RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1ub3RlJyk7CgogICAgICAgICAgICBjb25zdCBjYWxjQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbGMtYnRuJyk7CiAgICAgICAgICAgIGNvbnN0IHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LWJ0bicpOwoKICAgICAgICAgICAgZnVuY3Rpb24gY2xlYXJFcnJvcnMoKSB7CiAgICAgICAgICAgICAgICBlcnJBcmVhLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgICAgICBlcnJEaXN0Um93LnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgICAgICBlcnJEaXN0QmVkLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSW5wdXRzKCkgewogICAgICAgICAgICAgICAgY2xlYXJFcnJvcnMoKTsKICAgICAgICAgICAgICAgIGxldCB2YWxpZCA9IHRydWU7CiAgICAgICAgICAgICAgICBjb25zdCBhcmVhID0gcGFyc2VGbG9hdChhcmVhSW5wdXQudmFsdWUpOwogICAgICAgICAgICAgICAgY29uc3QgZGlzdFJvdyA9IHBhcnNlRmxvYXQoZGlzdFJvd0lucHV0LnZhbHVlKTsKICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RCZWQgPSBwYXJzZUZsb2F0KGRpc3RCZWRJbnB1dC52YWx1ZSk7CgogICAgICAgICAgICAgICAgaWYgKGlzTmFOKGFyZWEpIHx8IGFyZWEgPD0gMCkgewogICAgICAgICAgICAgICAgICAgIGVyckFyZWEudGV4dENvbnRlbnQgPSAn0JLQstC10LTQuNGC0LUg0L/QvtC70L7QttC40YLQtdC70YzQvdGD0Y4g0L/Qu9C+0YnQsNC00YwnOwogICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoaXNOYU4oZGlzdFJvdykgfHwgZGlzdFJvdyA8IDEwIHx8IGRpc3RSb3cgPiAxMjApIHsKICAgICAgICAgICAgICAgICAgICBlcnJEaXN0Um93LnRleHRDb250ZW50ID0gJ9CS0LLQtdC00LjRgtC1INGA0LDRgdGB0YLQvtGP0L3QuNC1INC+0YIgMTAg0LTQviAxMjAg0YHQvCc7CiAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChpc05hTihkaXN0QmVkKSB8fCBkaXN0QmVkIDwgMzAgfHwgZGlzdEJlZCA+IDI1MCkgewogICAgICAgICAgICAgICAgICAgIGVyckRpc3RCZWQudGV4dENvbnRlbnQgPSAn0JLQstC10LTQuNGC0LUg0LzQtdC20LTRg9GA0Y/QtNGM0LUg0L7RgiAzMCDQtNC+IDI1MCDRgdC8JzsKICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBjYWxjdWxhdGUoKSB7CiAgICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRlSW5wdXRzKCkpIHsKICAgICAgICAgICAgICAgICAgICByZXNQbGFudHMudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICAgICAgICAgICAgICByZXNSb3dzLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgICAgICAgICAgICAgcmVzRGVuc2l0eS50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgICAgICAgICAgICAgIHJlc1lpZWxkLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgICAgICAgICAgICAgcmVzV2F0ZXIudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICAgICAgICAgICAgICByZXNGZXJ0aWxpemVyLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgICAgICAgICAgICAgcmVzTm90ZS50ZXh0Q29udGVudCA9ICfQl9Cw0L/QvtC70L3QuNGC0LUg0LLRgdC1INC/0L7Qu9GPINC60L7RgNGA0LXQutGC0L3Qvic7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNvbnN0IGFyZWEgPSBwYXJzZUZsb2F0KGFyZWFJbnB1dC52YWx1ZSk7CiAgICAgICAgICAgICAgICBjb25zdCBkaXN0Um93Q20gPSBwYXJzZUZsb2F0KGRpc3RSb3dJbnB1dC52YWx1ZSk7CiAgICAgICAgICAgICAgICBjb25zdCBkaXN0QmVkQ20gPSBwYXJzZUZsb2F0KGRpc3RCZWRJbnB1dC52YWx1ZSk7CiAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gdHlwZVNlbGVjdC52YWx1ZTsKICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlldHkgPSB2YXJpZXR5U2VsZWN0LnZhbHVlOwoKICAgICAgICAgICAgICAgIGNvbnN0IGFyZWFDbTIgPSBhcmVhICogMTAwMDA7CiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbFdpZHRoUGVyVW5pdCA9IGRpc3RSb3dDbSArIGRpc3RCZWRDbTsKICAgICAgICAgICAgICAgIGNvbnN0IHJvd0xlbmd0aCA9IE1hdGguc3FydChhcmVhQ20yKTsKICAgICAgICAgICAgICAgIGNvbnN0IHJvd1dpZHRoID0gcm93TGVuZ3RoOwoKICAgICAgICAgICAgICAgIGxldCBudW1Sb3dzID0gTWF0aC5mbG9vcihyb3dXaWR0aCAvIHRvdGFsV2lkdGhQZXJVbml0KTsKICAgICAgICAgICAgICAgIGlmIChudW1Sb3dzIDwgMSkgbnVtUm93cyA9IDE7CgogICAgICAgICAgICAgICAgbGV0IHBsYW50c1BlclJvdyA9IE1hdGguZmxvb3Iocm93TGVuZ3RoIC8gZGlzdFJvd0NtKTsKICAgICAgICAgICAgICAgIGlmIChwbGFudHNQZXJSb3cgPCAxKSBwbGFudHNQZXJSb3cgPSAxOwoKICAgICAgICAgICAgICAgIGxldCB0b3RhbFBsYW50cyA9IG51bVJvd3MgKiBwbGFudHNQZXJSb3c7CiAgICAgICAgICAgICAgICBpZiAodG90YWxQbGFudHMgPCAxKSB0b3RhbFBsYW50cyA9IDE7CgogICAgICAgICAgICAgICAgY29uc3QgZGVuc2l0eSA9IHRvdGFsUGxhbnRzIC8gYXJlYTsKCiAgICAgICAgICAgICAgICBsZXQgeWllbGRQZXJQbGFudCA9IDMuNTsKICAgICAgICAgICAgICAgIGlmICh2YXJpZXR5ID09PSAnYnVzaCcpIHlpZWxkUGVyUGxhbnQgPSB0eXBlID09PSAndmVydGljYWwnID8gMi44IDogMi4yOwogICAgICAgICAgICAgICAgZWxzZSBpZiAodmFyaWV0eSA9PT0gJ21lZGl1bScpIHlpZWxkUGVyUGxhbnQgPSB0eXBlID09PSAndmVydGljYWwnID8gNC41IDogMy41OwogICAgICAgICAgICAgICAgZWxzZSBpZiAodmFyaWV0eSA9PT0gJ2xvbmcnKSB5aWVsZFBlclBsYW50ID0gdHlwZSA9PT0gJ3ZlcnRpY2FsJyA/IDYuMCA6IDQuNTsKCiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbFlpZWxkID0gTWF0aC5yb3VuZCh0b3RhbFBsYW50cyAqIHlpZWxkUGVyUGxhbnQpOwoKICAgICAgICAgICAgICAgIGNvbnN0IHdhdGVyUGVyUGxhbnQgPSB0eXBlID09PSAndmVydGljYWwnID8gMzgwIDogNDgwOwogICAgICAgICAgICAgICAgY29uc3QgdG90YWxXYXRlciA9IE1hdGgucm91bmQodG90YWxQbGFudHMgKiB3YXRlclBlclBsYW50KTsKCiAgICAgICAgICAgICAgICBjb25zdCBmZXJ0UGVyUGxhbnRHID0gdHlwZSA9PT0gJ3ZlcnRpY2FsJyA/IDU1IDogNzA7CiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbEZlcnRpbGl6ZXIgPSBNYXRoLnJvdW5kKCh0b3RhbFBsYW50cyAqIGZlcnRQZXJQbGFudEcpIC8gMTAwMCAqIDEwKSAvIDEwOwoKICAgICAgICAgICAgICAgIHJlc1BsYW50cy50ZXh0Q29udGVudCA9IHRvdGFsUGxhbnRzOwogICAgICAgICAgICAgICAgcmVzUm93cy50ZXh0Q29udGVudCA9IG51bVJvd3M7CiAgICAgICAgICAgICAgICByZXNEZW5zaXR5LnRleHRDb250ZW50ID0gZGVuc2l0eS50b0ZpeGVkKDEpOwogICAgICAgICAgICAgICAgcmVzWWllbGQudGV4dENvbnRlbnQgPSB0b3RhbFlpZWxkOwogICAgICAgICAgICAgICAgcmVzV2F0ZXIudGV4dENvbnRlbnQgPSB0b3RhbFdhdGVyOwogICAgICAgICAgICAgICAgcmVzRmVydGlsaXplci50ZXh0Q29udGVudCA9IHRvdGFsRmVydGlsaXplcjsKCiAgICAgICAgICAgICAgICBjb25zdCB2YXJpZXR5VGV4dCA9IHZhcmlldHkgPT09ICdidXNoJyA/ICfQutGD0YHRgtC+0LLQvtC5JyA6ICh2YXJpZXR5ID09PSAnbWVkaXVtJyA/ICfRgdGA0LXQtNC90LXQv9C70LXRgtC40YHRgtGL0LknIDogJ9C00LvQuNC90L3QvtC/0LvQtdGC0LjRgdGC0YvQuScpOwogICAgICAgICAgICAgICAgY29uc3QgdHlwZVRleHQgPSB0eXBlID09PSAndmVydGljYWwnID8gJ9Cy0LXRgNGC0LjQutCw0LvRjNC90L7QtScgOiAn0LPQvtGA0LjQt9C+0L3RgtCw0LvRjNC90L7QtSc7CiAgICAgICAgICAgICAgICByZXNOb3RlLnRleHRDb250ZW50ID0gYNCg0LDRgdGH0ZHRgiDQtNC70Y8g0YHQvtGA0YLQsDogJHt2YXJpZXR5VGV4dH0sINGC0LjQvzogJHt0eXBlVGV4dH0uINCj0YDQvtC20LDQudC90L7RgdGC0Ywg0Lgg0L3QvtGA0LzRiyDQvtGA0LjQtdC90YLQuNGA0L7QstC+0YfQvdGL0LUuINCg0LXQutC+0LzQtdC90LTRg9C10YLRgdGPINC30LDQv9Cw0YEgKzE1JSDRgNCw0YHRgtC10L3QuNC5LmA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIHJlc2V0Rm9ybSgpIHsKICAgICAgICAgICAgICAgIGFyZWFJbnB1dC52YWx1ZSA9ICcnOwogICAgICAgICAgICAgICAgZGlzdFJvd0lucHV0LnZhbHVlID0gJyc7CiAgICAgICAgICAgICAgICBkaXN0QmVkSW5wdXQudmFsdWUgPSAnJzsKICAgICAgICAgICAgICAgIHR5cGVTZWxlY3QudmFsdWUgPSAndmVydGljYWwnOwogICAgICAgICAgICAgICAgdmFyaWV0eVNlbGVjdC52YWx1ZSA9ICdtZWRpdW0nOwogICAgICAgICAgICAgICAgY2xlYXJFcnJvcnMoKTsKICAgICAgICAgICAgICAgIHJlc1BsYW50cy50ZXh0Q29udGVudCA9ICcwJzsKICAgICAgICAgICAgICAgIHJlc1Jvd3MudGV4dENvbnRlbnQgPSAnMCc7CiAgICAgICAgICAgICAgICByZXNEZW5zaXR5LnRleHRDb250ZW50ID0gJzAnOwogICAgICAgICAgICAgICAgcmVzWWllbGQudGV4dENvbnRlbnQgPSAnMCc7CiAgICAgICAgICAgICAgICByZXNXYXRlci50ZXh0Q29udGVudCA9ICcwJzsKICAgICAgICAgICAgICAgIHJlc0ZlcnRpbGl6ZXIudGV4dENvbnRlbnQgPSAnMCc7CiAgICAgICAgICAgICAgICByZXNOb3RlLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNhbGNCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICBjYWxjdWxhdGUoKTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICByZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIHJlc2V0Rm9ybSgpOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIFthcmVhSW5wdXQsIGRpc3RSb3dJbnB1dCwgZGlzdEJlZElucHV0XS5mb3JFYWNoKGZ1bmN0aW9uKGlucHV0KSB7CiAgICAgICAgICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBpbnB1dCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvckVsID0gaW5wdXQgPT09IGFyZWFJbnB1dCA/IGVyckFyZWEgOiAoaW5wdXQgPT09IGRpc3RSb3dJbnB1dCA/IGVyckRpc3RSb3cgOiBlcnJEaXN0QmVkKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yRWwudGV4dENvbnRlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yRWwudGV4dENvbnRlbnQgPSAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9KSgpOwogICAg