Калькулятор нормы белка
Рассчитайте суточную потребность в белке с учётом вашего веса, уровня активности, возраста и целей — для здоровья, спорта или похудения.
—
Суточная норма белка
грамм в день
—
На килограмм веса
г / кг
—
Калории из белка
ккал в день
—
На один приём пищи
грамм (при 4 приёмах)
Как пользоваться калькулятором
1
Введите ваш вес в килограммах. Например: 70 кг — средний вес взрослого человека.
2
Выберите пол, возраст и уровень физической активности. Уровень активности влияет на коэффициент расчёта: от 0,8 г/кг для сидячего образа жизни до 2,0 г/кг для профессиональных спортсменов.
3
Укажите цель: поддержание веса, набор мышечной массы, похудение или восстановление. От цели зависит итоговый множитель — например, при похудении норма белка повышается, чтобы сохранить мышцы.
4
Нажмите «Рассчитать». Результат покажет суточную норму белка в граммах, норму на килограмм веса, калорийность белковой части рациона и примерную порцию на один приём пищи.
Примеры расчёта
Мужчина, 80 кг, высокая активность, набор массы
Коэффициент активности: 1,6 · Коэффициент цели: 1,25 · Итог: 80 × 1,6 × 1,25 = 160 г белка в день (2,0 г/кг).
Женщина, 60 кг, сидячий образ жизни, похудение
Коэффициент активности: 0,8 · Коэффициент цели: 1,2 · Пол (жен.): ×0,95 · Итог: 60 × 0,8 × 1,2 × 0,95 ≈ 55 г белка в день (0,9 г/кг).
Мужчина, 70 кг, умеренная активность, поддержание
Коэффициент активности: 1,3 · Коэффициент цели: 1,0 · Итог: 70 × 1,3 × 1,0 = 91 г белка в день (1,3 г/кг).
Формулы расчёта
Калькулятор использует научно обоснованную методику на базе рекомендаций ВОЗ, Академии питания и диетологии и спортивных организаций (ISSN, ACSM).
Основная формула:
Белок (г/день) = Вес (кг) × КА × КЦ × КП + В
где:
КА — коэффициент активности (0,8…2,0),
КЦ — коэффициент цели (1,0…1,25),
КП — поправка на пол (1,0 для мужчин, 0,95 для женщин),
В — возрастная надбавка (+0,05 к фактору для лиц старше 50 лет).
Коэффициенты активности: сидячий — 0,8; лёгкая — 1,0; умеренная — 1,3; высокая — 1,6; очень высокая — 2,0.
Коэффициенты цели: поддержание — 1,0; набор массы — 1,25; похудение — 1,2; восстановление — 1,15.
Пошаговое объяснение
Расчёт начинается с определения базовой потребности в белке на килограмм веса. Для человека с сидячим образом жизни это 0,8 г/кг — минимальная норма, рекомендованная ВОЗ для предотвращения дефицита.
Далее применяется коэффициент активности: чем больше физической нагрузки, тем выше потребность в белке для восстановления мышечных волокон. При умеренных тренировках коэффициент составляет 1,3, а при интенсивных — до 2,0.
Затем учитывается цель. Для набора мышечной массы норма увеличивается на 25%, для похудения — на 20% (чтобы сохранить мышцы при дефиците калорий), для восстановления после травм — на 15%.
Вносятся уточняющие поправки: у женщин потребность немного ниже из-за меньшей доли мышечной ткани, а у людей старше 50 лет — немного выше для профилактики возрастной потери мышечной массы (саркопении).
Итоговое значение округляется до одного знака после запятой и выводится в карточку результата вместе с дополнительными показателями.
Где применяется
- Спортивное питание и фитнес — планирование рациона для роста мышц, повышения выносливости и восстановления после тренировок. Часто используется совместно с калькулятором КБЖУ и счётчиком калорий для полного контроля питания.
- Похудение и сушка — расчёт повышенной нормы белка для сохранения мышечной массы при дефиците калорий. Дополняет расчёт калорий при составлении плана питания.
- Реабилитация после травм и операций — определение потребности в белке для ускоренного заживления тканей и восстановления сил.
- Возрастная профилактика — предотвращение саркопении у людей старше 50 лет путём контроля достаточного потребления белка.
- Вегетарианство и веганство — расчёт нормы белка для планирования растительного рациона и предотвращения дефицита незаменимых аминокислот.
- Беременность и лактация — оценка повышенной потребности в белке для поддержки роста плода и выработки грудного молока (требуется консультация врача).
Важные нюансы
- Калькулятор даёт оценочное значение. Индивидуальная потребность может варьироваться в пределах ±15% в зависимости от метаболизма, генетики и состава тела.
- Результат рассчитан на здоровых взрослых людей от 18 до 65 лет. Для детей, подростков, беременных и кормящих женщин нормы отличаются.
- При заболеваниях почек или печени обязательно проконсультируйтесь с врачом — высокое потребление белка может быть противопоказано.
- Норма белка — это часть общего рациона. Для полноценной картины используйте калькулятор калорий или КБЖУ расчёт, чтобы сбалансировать белки, жиры и углеводы.
- Распределяйте белок равномерно в течение дня — по 20–40 г на приём пищи для оптимального усвоения и синтеза мышечного белка.
- Источник белка имеет значение: животные белки (мясо, рыба, яйца, молочные продукты) усваиваются на 90–99%, растительные — на 70–90%. Учитывайте это при планировании рациона.
Частые ошибки
- Слишком низкое потребление белка при похудении. При дефиците калорий организм начинает разрушать мышцы. Повышенная норма белка (1,2–1,6 г/кг) помогает этого избежать. Не совершайте эту ошибку — увеличьте долю белка в рационе.
- Избыток белка без силовых тренировок. Потребление 2+ г/кг белка без стимуляции мышц нагрузкой не ускорит их рост — излишек просто превратится в энергию или отложится в жир.
- Весь белок за один приём. Организм не может усвоить более 30–40 г белка за раз для мышечного синтеза. Остальное пойдёт на энергию. Распределяйте норму на 3–5 приёмов.
- Игнорирование возрастного фактора. После 50 лет потребность в белке возрастает на 10–15%, но многие продолжают питаться как в 30 лет, теряя мышечную массу.
- Пренебрежение качеством белка. 100 г белка из куриной грудки и 100 г из белого хлеба — совершенно разные вещи. Оценивайте аминокислотный профиль продуктов.
- Расчёт «на глаз» без учёта активности. Универсальная норма «1 г на кг» подходит не всем. При интенсивных тренировках этого недостаточно, при сидячем образе жизни — может быть избыточно.
Ответы на частые вопросы
Сколько белка нужно в день обычному человеку?
Минимальная норма ВОЗ — 0,8 г на кг веса. Для человека весом 70 кг это 56 г белка в день. Однако оптимальная норма для поддержания здоровья и активности — 1,0–1,3 г/кг, то есть 70–90 г.
Можно ли съесть слишком много белка?
Для здорового человека верхний безопасный предел — около 2,5–3,0 г/кг в день. Превышение может создать нагрузку на почки и печень. Людям с заболеваниями почек следует ограничивать белок по назначению врача.
Как норма белка связана с калькулятором калорий и КБЖУ?
Белок — один из трёх макронутриентов в КБЖУ (калории, белки, жиры, углеводы). 1 г белка даёт 4 ккал. Зная свою норму белка, вы можете включить её в общий расчёт калорий и КБЖУ расчёт для сбалансированного питания.
Нужно ли пить протеиновые коктейли?
Не обязательно. Если вы набираете норму белка из обычной еды — мясо, рыба, яйца, творог, бобовые — добавки не нужны. Протеин удобен, когда трудно добрать норму из пищи, особенно при высоких потребностях (1,6+ г/кг).
Влияет ли пол на норму белка?
Да. У женщин в среднем меньше мышечная масса и немного ниже скорость мышечного синтеза. Калькулятор учитывает это поправкой 0,95 к итоговому коэффициенту. Разница невелика, но значима при точном планировании.
Нужно ли есть белок сразу после тренировки?
«Анаболическое окно» — не миф, но и не жёсткое правило. Приём 20–30 г белка в течение 1–2 часов после тренировки полезен, но общая суточная норма гораздо важнее точного времени приёма.
Источники и справочные данные
Расчёт основан на рекомендациях Всемирной организации здравоохранения (ВОЗ, 2007), Академии питания и диетологии (Academy of Nutrition and Dietetics, 2016), Международного общества спортивного питания (ISSN, 2017) и Американского колледжа спортивной медицины (ACSM, 2016). Коэффициенты активности и целей взяты из метаанализов потребности в белке для различных групп населения. Возрастная поправка учитывает данные по профилактике саркопении (ESPEN, 2018).
Норма белка: как рассчитать, зачем контролировать и что говорит наука
Белок — главный строительный материал организма. Из него состоят мышцы, кожа, волосы, ферменты, гормоны и иммунные клетки. Без достаточного количества белка не будет ни крепких мышц, ни сильного иммунитета, ни здорового обмена веществ. Но сколько именно белка нужно вам? Ответ зависит от десятка факторов: веса, возраста, образа жизни и целей. Наш калькулятор нормы белка даёт персонализированный ответ за несколько секунд.
Почему норма белка индивидуальна?
Универсальной цифры не существует. Минимальная потребность взрослого человека — 0,8 г на килограмм веса в день, установленная ВОЗ. Это уровень, ниже которого начинается дефицит. Но «минимум для выживания» и «оптимум для здоровья» — разные понятия. Для активного человека 0,8 г/кг недостаточно: мышцы не будут восстанавливаться после нагрузок, а метаболизм замедлится.
На другом полюсе — профессиональные спортсмены, которым требуется до 2,0–2,2 г/кг. Их организм постоянно разрушает и восстанавливает мышечные волокна, и без мощной белковой поддержки прогресс останавливается. Между этими крайностями — большинство людей, которым нужно от 1,0 до 1,6 г/кг в зависимости от образа жизни.
Как активность влияет на потребность в белке?
Физическая нагрузка запускает процесс разрушения мышечных белков. После тренировки организм начинает их восстанавливать — и строить новые, если получает достаточно аминокислот. Чем интенсивнее и чаще нагрузка, тем выше потребность:
- Сидячий образ жизни: 0,8–1,0 г/кг. Достаточно для базового обновления тканей.
- Лёгкая активность (1–2 тренировки в неделю): 1,0–1,2 г/кг. Небольшая надбавка для восстановления.
- Умеренная активность (3–4 тренировки): 1,2–1,5 г/кг. Оптимум для большинства занимающихся.
- Высокая активность (5–6 тренировок): 1,5–1,8 г/кг. Серьёзная нагрузка требует серьёзного питания.
- Профессиональный спорт: 1,8–2,2 г/кг. Предел физиологических потребностей.
Белок и похудение: почему это важно
При снижении веса многие совершают ошибку: урезают калории за счёт белка. Организм, недополучая аминокислоты, начинает разрушать мышцы. Результат: вес на весах падает, но качество тела ухудшается — доля жира растёт, мышц становится меньше. Это называют «скинни-фэт» (skinny fat) — худое, но дряблое тело.
Повышенное потребление белка при похудении (1,2–1,6 г/кг) решает три задачи: сохраняет мышцы, усиливает чувство сытости и увеличивает термогенез — организм тратит больше энергии на переваривание белка (до 20–30% калорий белка уходит на его усвоение). Именно поэтому калькулятор калорий и счётчик калорий полезно дополнять расчётом нормы белка: так вы худеете за счёт жира, а не мышц.
Возраст и белок: скрытая угроза саркопении
После 50 лет начинается саркопения — возрастная потеря мышечной массы. Каждое десятилетие человек теряет 3–8% мышц, если не принимает мер. Достаточное потребление белка (1,2–1,5 г/кг для пожилых) в сочетании с силовыми нагрузками способно замедлить этот процесс. Исследования показывают: люди старше 65 лет, потребляющие не менее 1,2 г/кг белка, сохраняют мышечную силу и подвижность значительно дольше, чем те, кто ограничивается 0,8 г/кг.
Белок в цифрах: от граммов к тарелке
Дневная норма белка в 100 граммов — это не абстракция. Вот как она выглядит в продуктах:
- Куриная грудка (отварная) — 200 г содержат ~62 г белка.
- Творог 5% — 200 г содержат ~34 г белка.
- Яйца — 3 крупных яйца содержат ~19 г белка.
- Лосось — 150 г содержат ~33 г белка.
- Чечевица (варёная) — 200 г содержат ~18 г белка.
Комбинируя продукты, вы легко набираете норму. Например: завтрак из трёх яиц и порции творога (53 г белка), обед из куриной грудки с гречкой (62 г), ужин из рыбы с овощами (33 г) — и вот уже 148 г белка за день.
Как вписать белок в общий КБЖУ
Норма белка — только часть уравнения. Для полноценного питания важно учитывать и другие макронутриенты. КБЖУ (калории, белки, жиры, углеводы) — система, позволяющая сбалансировать рацион. Белок даёт 4 ккал на грамм, жиры — 9 ккал, углеводы — 4 ккал. Зная свою норму белка из нашего калькулятора, вы можете рассчитать остальное с помощью калькулятора КБЖУ или выполнить КБЖУ расчёт вручную. Например, при норме белка 100 г (400 ккал) и суточной калорийности 2000 ккал, на жиры и углеводы остаётся 1600 ккал. Это и есть расчёт калорий с учётом белковой нормы.
Практические советы
Начните с расчёта на нашем калькуляторе — вы получите цифру за минуту. Затем в течение недели отслеживайте потребление белка через счётчик калорий или дневник питания. Сравните факт с нормой. Если расхождение больше 20% — корректируйте рацион. Не стремитесь к идеалу с первого дня: плавное увеличение белка на 10–15 г в неделю комфортнее резких перемен. И помните: вода — обязательный спутник белка. При высокобелковом рационе пейте на 0,5–1 л воды больше обычного, чтобы помочь почкам выводить продукты распада.
Белок — не волшебная таблетка, а фундамент. Без него не построить ни здоровое тело, ни эффективный метаболизм. Рассчитайте свою норму, сверьте с реальностью и действуйте — результат появится уже через несколько недель осознанного питания.
CihmdW5jdGlvbigpewogICAgdmFyIHdlaWdodElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb3RlaW4td2VpZ2h0Jyk7CiAgICB2YXIgZ2VuZGVyU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb3RlaW4tZ2VuZGVyJyk7CiAgICB2YXIgYWdlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvdGVpbi1hZ2UnKTsKICAgIHZhciBhY3Rpdml0eVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm90ZWluLWFjdGl2aXR5Jyk7CiAgICB2YXIgZ29hbFNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm90ZWluLWdvYWwnKTsKICAgIHZhciBjYWxjQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb3RlaW4tY2FsY3VsYXRlLWJ0bicpOwogICAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb3RlaW4tcmVzZXQtYnRuJyk7CiAgICB2YXIgd2VpZ2h0RXJyb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvdGVpbi13ZWlnaHQtZXJyb3InKTsKICAgIHZhciBhZ2VFcnJvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm90ZWluLWFnZS1lcnJvcicpOwogICAgdmFyIGdlbmVyYWxFcnJvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm90ZWluLWdlbmVyYWwtZXJyb3InKTsKCiAgICB2YXIgcmVzdWx0VG90YWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LXByb3RlaW4tdG90YWwnKTsKICAgIHZhciByZXN1bHRQZXJLZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtcHJvdGVpbi1wZXIta2cnKTsKICAgIHZhciByZXN1bHRDYWxvcmllcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtcHJvdGVpbi1jYWxvcmllcycpOwogICAgdmFyIHJlc3VsdFBlck1lYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LXByb3RlaW4tcGVyLW1lYWwnKTsKCiAgICB2YXIgYWN0aXZpdHlGYWN0b3JzID0gewogICAgICAgIHNlZGVudGFyeTogMC44LAogICAgICAgIGxpZ2h0OiAxLjAsCiAgICAgICAgbW9kZXJhdGU6IDEuMywKICAgICAgICBhY3RpdmU6IDEuNiwKICAgICAgICB2ZXJ5X2FjdGl2ZTogMi4wCiAgICB9OwoKICAgIHZhciBnb2FsTXVsdGlwbGllcnMgPSB7CiAgICAgICAgbWFpbnRhaW46IDEuMCwKICAgICAgICBnYWluOiAxLjI1LAogICAgICAgIGxvc2U6IDEuMiwKICAgICAgICByZWNvdmVyeTogMS4xNQogICAgfTsKCiAgICBmdW5jdGlvbiBoaWRlQWxsRXJyb3JzKCkgewogICAgICAgIHdlaWdodEVycm9yLmhpZGRlbiA9IHRydWU7CiAgICAgICAgYWdlRXJyb3IuaGlkZGVuID0gdHJ1ZTsKICAgICAgICBnZW5lcmFsRXJyb3IuaGlkZGVuID0gdHJ1ZTsKICAgIH0KCiAgICBmdW5jdGlvbiB2YWxpZGF0ZUlucHV0cygpIHsKICAgICAgICB2YXIgdmFsaWQgPSB0cnVlOwogICAgICAgIGhpZGVBbGxFcnJvcnMoKTsKCiAgICAgICAgdmFyIHdlaWdodCA9IHBhcnNlRmxvYXQod2VpZ2h0SW5wdXQudmFsdWUpOwogICAgICAgIGlmIChpc05hTih3ZWlnaHQpIHx8IHdlaWdodCA8PSAwIHx8IHdlaWdodCA8IDMwIHx8IHdlaWdodCA+IDI1MCkgewogICAgICAgICAgICB3ZWlnaHRFcnJvci5oaWRkZW4gPSBmYWxzZTsKICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIHZhciBhZ2VWYWwgPSBhZ2VJbnB1dC52YWx1ZS50cmltKCk7CiAgICAgICAgaWYgKGFnZVZhbCAhPT0gJycpIHsKICAgICAgICAgICAgdmFyIGFnZSA9IHBhcnNlRmxvYXQoYWdlVmFsKTsKICAgICAgICAgICAgaWYgKGlzTmFOKGFnZSkgfHwgYWdlIDwgMTQgfHwgYWdlID4gMTIwKSB7CiAgICAgICAgICAgICAgICBhZ2VFcnJvci5oaWRkZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICghdmFsaWQpIHsKICAgICAgICAgICAgZ2VuZXJhbEVycm9yLmhpZGRlbiA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgfQoKICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZSgpIHsKICAgICAgICBpZiAoIXZhbGlkYXRlSW5wdXRzKCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgdmFyIHdlaWdodCA9IHBhcnNlRmxvYXQod2VpZ2h0SW5wdXQudmFsdWUpOwogICAgICAgIHZhciBnZW5kZXIgPSBnZW5kZXJTZWxlY3QudmFsdWU7CiAgICAgICAgdmFyIGFjdGl2aXR5ID0gYWN0aXZpdHlTZWxlY3QudmFsdWU7CiAgICAgICAgdmFyIGdvYWwgPSBnb2FsU2VsZWN0LnZhbHVlOwoKICAgICAgICB2YXIgYWN0aXZpdHlGYWN0b3IgPSBhY3Rpdml0eUZhY3RvcnNbYWN0aXZpdHldIHx8IDEuMzsKICAgICAgICB2YXIgZ29hbE11bHRpcGxpZXIgPSBnb2FsTXVsdGlwbGllcnNbZ29hbF0gfHwgMS4wOwogICAgICAgIHZhciBnZW5kZXJGYWN0b3IgPSAoZ2VuZGVyID09PSAnZmVtYWxlJykgPyAwLjk1IDogMS4wOwoKICAgICAgICB2YXIgYWdlQm9udXMgPSAwOwogICAgICAgIHZhciBhZ2VWYWwgPSBhZ2VJbnB1dC52YWx1ZS50cmltKCk7CiAgICAgICAgaWYgKGFnZVZhbCAhPT0gJycpIHsKICAgICAgICAgICAgdmFyIGFnZSA9IHBhcnNlRmxvYXQoYWdlVmFsKTsKICAgICAgICAgICAgaWYgKCFpc05hTihhZ2UpICYmIGFnZSA+PSA1MCkgewogICAgICAgICAgICAgICAgYWdlQm9udXMgPSAwLjA1OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgZWZmZWN0aXZlRmFjdG9yID0gYWN0aXZpdHlGYWN0b3IgKiBnb2FsTXVsdGlwbGllciAqIGdlbmRlckZhY3RvciArIGFnZUJvbnVzOwogICAgICAgIHZhciBwcm90ZWluVG90YWwgPSB3ZWlnaHQgKiBlZmZlY3RpdmVGYWN0b3I7CgogICAgICAgIGlmICghaXNGaW5pdGUocHJvdGVpblRvdGFsKSB8fCBwcm90ZWluVG90YWwgPD0gMCkgewogICAgICAgICAgICBnZW5lcmFsRXJyb3IuaGlkZGVuID0gZmFsc2U7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHZhciBwcm90ZWluUGVyS2cgPSBlZmZlY3RpdmVGYWN0b3I7CiAgICAgICAgdmFyIHByb3RlaW5DYWxvcmllcyA9IHByb3RlaW5Ub3RhbCAqIDQ7CiAgICAgICAgdmFyIHByb3RlaW5QZXJNZWFsID0gcHJvdGVpblRvdGFsIC8gNDsKCiAgICAgICAgcHJvdGVpblRvdGFsID0gTWF0aC5yb3VuZChwcm90ZWluVG90YWwgKiAxMCkgLyAxMDsKICAgICAgICBwcm90ZWluUGVyS2cgPSBNYXRoLnJvdW5kKHByb3RlaW5QZXJLZyAqIDEwKSAvIDEwOwogICAgICAgIHByb3RlaW5DYWxvcmllcyA9IE1hdGgucm91bmQocHJvdGVpbkNhbG9yaWVzKTsKICAgICAgICBwcm90ZWluUGVyTWVhbCA9IE1hdGgucm91bmQocHJvdGVpblBlck1lYWwgKiAxMCkgLyAxMDsKCiAgICAgICAgcmVzdWx0VG90YWwudGV4dENvbnRlbnQgPSBwcm90ZWluVG90YWw7CiAgICAgICAgcmVzdWx0UGVyS2cudGV4dENvbnRlbnQgPSBwcm90ZWluUGVyS2c7CiAgICAgICAgcmVzdWx0Q2Fsb3JpZXMudGV4dENvbnRlbnQgPSBwcm90ZWluQ2Fsb3JpZXM7CiAgICAgICAgcmVzdWx0UGVyTWVhbC50ZXh0Q29udGVudCA9IHByb3RlaW5QZXJNZWFsOwoKICAgICAgICBoaWRlQWxsRXJyb3JzKCk7CiAgICB9CgogICAgZnVuY3Rpb24gcmVzZXRGb3JtKCkgewogICAgICAgIHdlaWdodElucHV0LnZhbHVlID0gJyc7CiAgICAgICAgZ2VuZGVyU2VsZWN0LnZhbHVlID0gJ21hbGUnOwogICAgICAgIGFnZUlucHV0LnZhbHVlID0gJyc7CiAgICAgICAgYWN0aXZpdHlTZWxlY3QudmFsdWUgPSAnbW9kZXJhdGUnOwogICAgICAgIGdvYWxTZWxlY3QudmFsdWUgPSAnbWFpbnRhaW4nOwogICAgICAgIHJlc3VsdFRvdGFsLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgcmVzdWx0UGVyS2cudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICByZXN1bHRDYWxvcmllcy50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgIHJlc3VsdFBlck1lYWwudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICBoaWRlQWxsRXJyb3JzKCk7CiAgICB9CgogICAgY2FsY0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNhbGN1bGF0ZSk7CiAgICByZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0Rm9ybSk7CgogICAgd2VpZ2h0SW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICBpZiAod2VpZ2h0RXJyb3IuaGlkZGVuID09PSBmYWxzZSkgewogICAgICAgICAgICB2YXIgdyA9IHBhcnNlRmxvYXQod2VpZ2h0SW5wdXQudmFsdWUpOwogICAgICAgICAgICBpZiAoIWlzTmFOKHcpICYmIHcgPj0gMzAgJiYgdyA8PSAyNTApIHsKICAgICAgICAgICAgICAgIHdlaWdodEVycm9yLmhpZGRlbiA9IHRydWU7CiAgICAgICAgICAgICAgICBpZiAoYWdlRXJyb3IuaGlkZGVuKSB7CiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhbEVycm9yLmhpZGRlbiA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KTsKCiAgICBhZ2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICAgIGlmIChhZ2VFcnJvci5oaWRkZW4gPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHZhciBhdiA9IGFnZUlucHV0LnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgaWYgKGF2ID09PSAnJykgewogICAgICAgICAgICAgICAgYWdlRXJyb3IuaGlkZGVuID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlmICh3ZWlnaHRFcnJvci5oaWRkZW4pIHsKICAgICAgICAgICAgICAgICAgICBnZW5lcmFsRXJyb3IuaGlkZGVuID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBhID0gcGFyc2VGbG9hdChhdik7CiAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKGEpICYmIGEgPj0gMTQgJiYgYSA8PSAxMjApIHsKICAgICAgICAgICAgICAgICAgICBhZ2VFcnJvci5oaWRkZW4gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGlmICh3ZWlnaHRFcnJvci5oaWRkZW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhbEVycm9yLmhpZGRlbiA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSk7Cn0pKCk7Cg==