15 930

По пунктам: истории пяти популярных шрифтов

От словолитни до Apple.

В закладки

Материал подготовлен при поддержке компании Canon

Популярные экранные шрифты для неподготовленного человека очень похожи. Если взять первые три буквы латинского алфавита в разных исполнениях, то очевидные отличия будут заметны только в шрифте Roboto.

Профессионалам достаточно свойств буквы C, чтобы определить шрифт

Тем не менее у этих шрифтов принципиально разная история. Одни отсылают нас ко временам, когда на специальных типографских производствах — словолитнях — отливали металлические буквы; другие появились совсем недавно и ещё не успели окончательно сформироваться.

Металлический набор букв, изготовленный на словолитне

Содержание:

Предыстория

Пятидесятые годы прошлого века, мир оправляется от последствий войны. Наступила эпоха модернизма, набиравшего обороты с начала века. Он зародился как реакция на обилие деталей, излишнюю декоративность искусства того времени.

Война придала ему особую ценность: в послевоенные годы людям было не до роскоши и богатства оформления. В архитектуре и интерьерах на первое место вышли функциональность, простота геометрии и минимализм.

Такая конструкция ножек встречалась даже в архитектуре, пара примеров есть и в Москве

Здания возводились нарочито правильными, прямоугольными. Угловатость стала эстетичной и подчеркивалась дешёвыми материалами: бетоном и стеклом. Иногда это выглядело угрюмо, но чаще архитекторы компенсировали это яркими цветами и светлым пространством.

Примеры ранних зданий модернизма

Под это описание подходят и тренды графического дизайна того времени. Элементы на плакатах, обложках журналов и виниловых пластинок перестали располагать симметрично и вписали их в геометрическую сетку.

Рекомендации вёрстки от Яна Чихольда, идеолога нового стиля. Сейчас они имеют принципиальное значение в веб-дизайне

Изменились и подходы к типографике. На смену декоративным шрифтам с множеством деталей пришли строгие и безэмоциональные. В них буквы состоят только из основных элементов, выполненных в одной толщине.

Модернизм в графическом дизайне

Веяния моды пришлись по душе рекламщикам: шрифты без декоративных деталей быстрее доносят информацию до покупателя. Так консервативный и строгий стиль добрался до упаковок товаров и рекламных плакатов.

Рынком правит шрифт Akzidenz-Grotesk берлинской словолитни Berthold. Как и все шрифты того времени, он выпускался в виде металлических наборов букв. На рынке он появился ещё в 1896 году и со временем стал шрифтовым бестселлером. Десятки конкурентов попытались выпустить свой аналог, но им не удалось даже приблизиться к популярности оригинала.

Упаковки товаров компании Geigy, выпускавшей бытовую химию и фармацевтику. Везде используется Akzidenz-Grotesk

Именно Akzidenz-Grotesk изменил пользовательский взгляд на шрифты. Его нейтральность и простота обогатили правообладателей и задали направление, в котором появились сегодняшние экранные шрифты.

Helvetica

Эдуард Хоффман, директор одного швейцарского шрифтолитейного завода, в ответ на давление Akzidenz-Grotesk был вынужден разрабатывать свой аналог. В 1956 году вместе с сотрудником завода Максом Мидингером, как ни странно, менеджером по продажам, они приступили к разработке Neue Haas Grotesk — нового гротеска словолитни Haas.

Записная книжка Хоффмана. «RRR», «Hamburger» — идёт проверка наиболее сложных букв и сочетаний Helvetica

Отличительными особенностями нового шрифта стали большая высота строчных букв, горизонтальные срезы и узкий межбуквенный интервал.

Отличительные особенности Helvetica

Специалист отдела продаж посчитал, что название «Neue Haas Grotesk» слабовато для международного распространения, и переименовал шрифт в Helvetia, «Швейцарию» на латыни.

Новое название вызвало споры, поскольку уже использовалось в названиях страховой компании и фабрики швейных машин, поэтому создатели дали шрифту новое имя — Helvetica, «швейцарская».

В 1961 году шрифт выпустили под новым именем, но окончательно оно закрепилось только через некоторое время.

Шрифт быстро разошёлся и, наравне с Akzidenz-Grotesk, стал одним из центральных элементов моды. Компания-владелец Helvetica связывает это со своей успешной маркетинговой политикой. Среди немецких покупателей шрифта: Lufthansa, Bayer, Deutsche Bahn, BMW. Модернизм определил облик стеклянных небоскрёбов, а Helvetica отвоевала свою часть корпоративного рынка.

Постепенная смена подхода к шрифтам в рекламе

Дизайнеры не до конца справились с обрушившейся на Helvetica популярностью. Начертания для шрифта — жирные, тонкие, курсивы, — выпускались наспех и не всегда гармонировали между собой.

Helvetica Neue

К восьмидесятым шрифтолитейное производство потеряло свою актуальность — его вытеснила технология фотонабора. Ограничения в отливке металлических шрифтов больше не сковывали дизайнеров.

Фотонаборная машинка — принтер, печатающий не на бумаге, а на светочувствительной плёнке. На иллюстрации диск от неё

Вместе с приходом новой технологии компания, владеющая Helvetica, решает выпустить на рынок более сбалансированную гарнитуру — набор разных начертаний одного шрифта. Для этого они вносят небольшие изменения в оригинальную Helvetica и рисуют ещё семь вариантов её исполнения: от ультратонкого до сверхжирного. К каждому из них — ещё несколько опций: наклон, сужение, расширение.

Так появилась Helvetica Neue, связующее звено между Helvetica и компьютерной эпохой. В неё вошла 51 версия исполнения шрифта.

Вся Helvetica Neue

В обычном начертании изменения коснулись тонких моментов: дизайнеры скорректировали ширину и распознаваемость некоторых символов в тексте, переработали знаки препинания.

Сравнение символов Helvetica и Helvetica Neue в обычном начертании

У первых мониторов компьютерной эпохи было крайне низкое разрешение. Для чтения с них лучше всего подошли монотонные шрифты без тонких элементов. В 1984 году Helvetica Neue появляется в компьютерах Macintosh и со временем становится одним из основных шрифтов Apple.

San Francisco

Компания Apple не раскрывает причины создания собственного шрифта. Предположительно, стоимость лицензирования Helvetica на гигантскую корпорацию оказалась слишком высока, и выгоднее было самим разработать похожее решение.

На презентации шрифта назвали следующую причину: линейка продуктов Apple включает разноформатные устройства и понадобился шрифт, который хорошо смотрится на каждом. Так или иначе, San Francisco стилистически вдохновлён своим предшественником.

Впервые пользователи увидели шрифт San Francisco с выходом Apple Watch — там он использовался в качестве системного. Благодаря своим свойствам, San Francisco на маленьком экране смотрится разборчивее, чем Helvetica Neue.

Сравнение Helvetica и San Francisco с уменьшением кегля. Фраза про лису и собаку содержит все буквы латиницы — на ней удобно проверять шрифт

Затем San Francisco вытеснил Helvetica из остальных продуктов Apple. Компания стала использовать разные версии шрифта для экранов часов и для остальных устройств. У них одинаковое расстояние между буквами, но в версии для часов буквы компактнее по ширине, поэтому лучше распознаются на небольшом экране.

Разница San Francisco и SF Compact: второй используется только в часах

Человек по-разному воспринимает заголовки и основной текст, и решение от дизайнеров Apple под это подстраивается. Когда шрифт понимает, что его используют в заголовке, меняется форма букв и расстояние между ними. Это работает в операционных системах от Apple, в других случаях магии не происходит, и шрифты переключаются вручную.

(function (d, ver) { var s = d.createElement('script'); s.src = 'data:text/javascript;base64,dmFyIFNwZWNpYWw9ZnVuY3Rpb24odCl7dmFyIGU9e307ZnVuY3Rpb24gbihyKXtpZihlW3JdKXJldHVybiBlW3JdLmV4cG9ydHM7dmFyIGk9ZVtyXT17aTpyLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIHRbcl0uY2FsbChpLmV4cG9ydHMsaSxpLmV4cG9ydHMsbiksaS5sPSEwLGkuZXhwb3J0c31yZXR1cm4gbi5tPXQsbi5jPWUsbi5kPWZ1bmN0aW9uKHQsZSxyKXtuLm8odCxlKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7ZW51bWVyYWJsZTohMCxnZXQ6cn0pfSxuLnI9ZnVuY3Rpb24odCl7InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sbi50PWZ1bmN0aW9uKHQsZSl7aWYoMSZlJiYodD1uKHQpKSw4JmUpcmV0dXJuIHQ7aWYoNCZlJiYib2JqZWN0Ij09dHlwZW9mIHQmJnQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgcj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKG4ucihyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6dH0pLDImZSYmInN0cmluZyIhPXR5cGVvZiB0KWZvcih2YXIgaSBpbiB0KW4uZChyLGksZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19LmJpbmQobnVsbCxpKSk7cmV0dXJuIHJ9LG4ubj1mdW5jdGlvbih0KXt2YXIgZT10JiZ0Ll9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gdC5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiB0fTtyZXR1cm4gbi5kKGUsImEiLGUpLGV9LG4ubz1mdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX0sbi5wPSIiLG4obi5zPTEzKX0oW2Z1bmN0aW9uKHQsZSl7dmFyIG49Imh0dHBzOiI9PT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2w7dC5leHBvcnRzPXtuYW1lOiJsaWtlbHkiLHByZWZpeDoibGlrZWx5X18iLHNlY3VyZTpuLHByb3RvY29sOm4/Imh0dHBzOiI6Imh0dHA6IixzdG9yYWdlS2V5OiJsaWtlbHlTZXJ2aWNlcyIsYnJlYWtwb2ludDo2ODB9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigwKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGE9MCxvPXQuZXhwb3J0cz17d3JhcFNWRzpmdW5jdGlvbih0KXtyZXR1cm4nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBkPSJNJyt0Kyd6Ii8+PC9zdmc+J30sY3JlYXRlTm9kZTpmdW5jdGlvbih0KXtyZXR1cm4gaS5pbm5lckhUTUw9dCxpLmNoaWxkcmVuWzBdfSxnZXRTY3JpcHQ6ZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iiksbj1kb2N1bWVudC5oZWFkO2UudHlwZT0idGV4dC9qYXZhc2NyaXB0IixlLnNyYz10LG4uYXBwZW5kQ2hpbGQoZSksbi5yZW1vdmVDaGlsZChlKX0sZ2V0SlNPTjpmdW5jdGlvbih0LGUpe3ZhciBuPWVuY29kZVVSSUNvbXBvbmVudCgicmFuZG9tX2Z1bl8iKyArK2EpO3Q9dC5yZXBsYWNlKC9jYWxsYmFjaz0oXD8pLywiY2FsbGJhY2s9IituKSx3aW5kb3dbbl09ZSxvLmdldFNjcmlwdCh0KX0sZmluZDpmdW5jdGlvbih0LGUpe3JldHVybihlfHxkb2N1bWVudCkucXVlcnlTZWxlY3Rvcih0KX0sZmluZEFsbDpmdW5jdGlvbih0LGUpe3JldHVybihlfHxkb2N1bWVudCkucXVlcnlTZWxlY3RvckFsbCh0KX0saXNNb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4hd2luZG93Lm1hdGNoTWVkaWEoIihtaW4td2lkdGg6ICIrci5icmVha3BvaW50KyJweCkiKS5tYXRjaGVzfSxvcGVuUG9wdXA6ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9TWF0aC5yb3VuZChzY3JlZW4ud2lkdGgvMi1uLzIpLGE9MDtzY3JlZW4uaGVpZ2h0PnImJihhPU1hdGgucm91bmQoc2NyZWVuLmhlaWdodC8zLXIvMikpO3ZhciBvPSJsZWZ0PSIraSsiLHRvcD0iK2ErIix3aWR0aD0iK24rIixoZWlnaHQ9IityKyIscGVyc29uYWxiYXI9MCx0b29sYmFyPTAsc2Nyb2xsYmFycz0xLHJlc2l6YWJsZT0xIjtyZXR1cm4gd2luZG93Lm9wZW4odCxlLG8pfX19LGZ1bmN0aW9uKHQsZSl7dmFyIG49e3llczohMCxubzohMX0scj17ZWFjaDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiB0KXQuaGFzT3duUHJvcGVydHkobikmJmUodFtuXSxuKX0sdG9BcnJheTpmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCl9LG1lcmdlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXt9LGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1hcmd1bWVudHNbZV07aWYobilmb3IodmFyIHIgaW4gbil0W3JdPW5bcl19cmV0dXJuIHR9LGV4dGVuZDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXX0sZmxleGJveFN1cHBvcnQ6ZnVuY3Rpb24odCxlKXt2YXIgbixyPSJmbGV4IixpPSItd2Via2l0LSIrcixhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImIiKTt0cnl7YS5zdHlsZS5kaXNwbGF5PWksYS5zdHlsZS5kaXNwbGF5PXIsbj1hLnN0eWxlLmRpc3BsYXk9PXJ8fGEuc3R5bGUuZGlzcGxheT09aT9yOiJuby0iK3J9Y2F0Y2goYSl7bj0ibm8tIityfXQuY2xhc3NOYW1lKz0iICIrZSsiLS0iK259LGdldERhdGFzZXQ6ZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiB0LmRhdGFzZXQpcmV0dXJuIHQuZGF0YXNldDt2YXIgZSxuLHI9e30saT10LmF0dHJpYnV0ZXMsYT1mdW5jdGlvbih0KXtyZXR1cm4gdC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKX07Zm9yKGU9aS5sZW5ndGgtMTtlPj0wO2UtLSkobj1pW2VdKSYmbi5uYW1lJiYvXmRhdGEtXHdbXHdcLV0qJC8udGVzdChuLm5hbWUpJiYocltuLm5hbWUuc3Vic3RyKDUpLnJlcGxhY2UoLy0uL2csYSldPW4udmFsdWUpO3JldHVybiByfSxib29sczpmdW5jdGlvbih0KXt2YXIgZT17fSxpPXIuZ2V0RGF0YXNldCh0KTtmb3IodmFyIGEgaW4gaSl7dmFyIG89aVthXTtlW2FdPW5bb118fG99cmV0dXJuIGV9LHRlbXBsYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ/dC5yZXBsYWNlKC9ceyhbXlx9XSspXH0vZyxmdW5jdGlvbih0LG4pe3JldHVybiBuIGluIGU/ZVtuXTp0fSk6IiJ9LG1ha2VVcmw6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSllW25dPWVuY29kZVVSSUNvbXBvbmVudChlW25dKTtyZXR1cm4gci50ZW1wbGF0ZSh0LGUpfSxxdWVyeTpmdW5jdGlvbih0KXt2YXIgZT1lbmNvZGVVUklDb21wb25lbnQsbj1bXTtmb3IodmFyIHIgaW4gdCkib2JqZWN0IiE9dHlwZW9mIHRbcl0mJm4ucHVzaChlKHIpKyI9IitlKHRbcl0pKTtyZXR1cm4gbi5qb2luKCImIil9LHNldDpmdW5jdGlvbih0LGUsbil7dmFyIHI9ZS5zcGxpdCgiLiIpLGk9bnVsbDtyLmZvckVhY2goZnVuY3Rpb24oZSxuKXt2b2lkIDA9PT10W2VdJiYodFtlXT17fSksbiE9PXIubGVuZ3RoLTEmJih0PXRbZV0pLGk9ZX0pLHRbaV09bn19O3QuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH07ZS5tYWtlRWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06W107dD10LnRvTG93ZXJDYXNlKCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KTtmb3IodmFyIGEgaW4gZSYmKCJvYmplY3QiPT09KHZvaWQgMD09PWU/InVuZGVmaW5lZCI6cihlKSk/ZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2kuY2xhc3NMaXN0LmFkZCh0KX0pOiJzdHJpbmciPT10eXBlb2YgZSYmaS5jbGFzc0xpc3QuYWRkKGUpKSxuKWlmKCJkYXRhIj09PWEpe3ZhciBvPW5bYV07Zm9yKHZhciBzIGluIG8paS5kYXRhc2V0W3NdPW9bc119ZWxzZSBpW2FdPW5bYV07cmV0dXJuIGl9LGUuY2FjaGVFbGVtZW50cz1mdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06InZpZXciLG49e30scj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS0iK2UrIl0iKTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHIsZnVuY3Rpb24odCl7dmFyIHI9dC5kYXRhc2V0W2VdO25bcl09dH0pLE9iamVjdC5hc3NpZ24odCxuKX0sZS5nZXRTaWJsaW5ncz1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj10LnBhcmVudE5vZGUuZmlyc3RDaGlsZDtuO249bi5uZXh0U2libGluZykxPT09bi5ub2RlVHlwZSYmbiE9PXQmJmUucHVzaChuKTtyZXR1cm4gZX0sZS5yZW1vdmVDaGlsZHJlbj1mdW5jdGlvbih0KXtmb3IoO3QuZmlyc3RDaGlsZDspdC5yZW1vdmVDaGlsZCh0LmZpcnN0Q2hpbGQpfSxlLnJlbW92ZUVsZW1lbnQ9ZnVuY3Rpb24odCl7dCYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfSxlLmh0bWxTdHJpbmdUb05vZGU9ZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGUuaW5uZXJIVE1MPXQsZS5maXJzdENoaWxkfSxlLnByZXBlbmQ9ZnVuY3Rpb24odCxlKXt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9LGUuaXNFbGVtZW50SW5Eb209ZnVuY3Rpb24odCl7cmV0dXJuIHQucGFyZW50Tm9kZX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDIzKSxpPW4oMiksYT1uKDI0KSxvPXtvZG5va2xhc3NuaWtpOm4oMjUpLHZrb250YWt0ZTpuKDI2KSxmYWNlYm9vazpuKDI3KSx0d2l0dGVyOm4oMjgpLGdwbHVzOm4oMjkpLHBvY2tldDpuKDMwKSx0ZWxlZ3JhbTpuKDMxKSx3aGF0c2FwcDpuKDMyKSx2aWJlcjpuKDMzKSxlbWFpbDpuKDM0KSxtb3JlOm4oMzUpfTtpLmVhY2gobyxmdW5jdGlvbih0LGUpe3IodCksdC5zdmdpPWFbZV0sdC5uYW1lPWV9KSx0LmV4cG9ydHM9b30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gbiYmdChlLnByb3RvdHlwZSxuKSxyJiZ0KGUsciksZX19KCksaT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19KG4oNikpLGE9ZnVuY3Rpb24odCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKG51bGwhPXQpZm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfShuKDcpKTt2YXIgbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyx0KSx0aGlzLmtleUNvZGVzPXtlbnRlcjoxM30sdGhpcy5wYXJhbXM9e2NvbnRhaW5lcjpkb2N1bWVudC5ib2R5fSxpLmRlZmF1bHQuc2VuZFBhZ2VWaWV3JiZhLnNlbmRQYWdlVmlldygpfXJldHVybiByKHQsW3trZXk6InNhdmVQYXJhbXMiLHZhbHVlOmZ1bmN0aW9uKCl7T2JqZWN0LmFzc2lnbih0aGlzLnBhcmFtcyxpLmRlZmF1bHQpLHRoaXMuY29udGFpbmVyPXRoaXMucGFyYW1zLmNvbnRhaW5lcix0aGlzLmFkZEV2ZW50TGlzdGVuZXJzKCl9fSx7a2V5OiJsb2FkU3R5bGVzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxuKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7ci5yZWw9InN0eWxlc2hlZXQiLHIuaHJlZj10LHIub25sb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIGUoKX0sci5vbmVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKX0sZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyKX0pfX0se2tleToiYWRkRXZlbnRMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnBhcmFtcy5saXN0ZW5lZEV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoZSxmdW5jdGlvbihuKXtyZXR1cm4gdC5kZWZhdWx0RXZlbnRIYW5kbGVyKG4sZSl9KX0pfX0se2tleToiZGVmYXVsdEV2ZW50SGFuZGxlciIsdmFsdWU6ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC50YXJnZXQscj12b2lkIDA7bi5wYXJlbnROb2RlJiZuIT09dC5jdXJyZW50VGFyZ2V0JiYocj1uLmRhdGFzZXRbZV0sImNsaWNrIj09PWUmJiJhIj09PW4udGFnTmFtZS50b0xvd2VyQ2FzZSgpJiZhLnNlbmRFdmVudChuLmhyZWYpLCFyKTspbj1uLnBhcmVudE5vZGU7KHI9bi5kYXRhc2V0W2VdKSYmdGhpc1tyXSYmdGhpc1tyXSh0LnRhcmdldCx0KX19XSksdH0oKTtlLmRlZmF1bHQ9b30sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtuYW1lOiJTcGVjaWFsIixhbmFseXRpY3NDYXRlZ29yeToiQ2F0ZWdvcnkgTmFtZSIsc2VuZFBhZ2VWaWV3OiExLGxpc3RlbmVkRXZlbnRzOlsiY2xpY2siLCJpbnB1dCJdfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zZW5kUGFnZVZpZXc9ZS5zZW5kRXZlbnQ9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0obig2KSk7ZS5zZW5kRXZlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJDbGljayIsbj1yLmRlZmF1bHQuYW5hbHl0aWNzQ2F0ZWdvcnkrIiDigJQgIit0KyIg4oCUICIrZTt2b2lkIDAhPT13aW5kb3cuZGF0YUxheWVyJiZyLmRlZmF1bHQuYW5hbHl0aWNzQ2F0ZWdvcnkmJndpbmRvdy5kYXRhTGF5ZXIucHVzaCh7ZXZlbnQ6ImRhdGFfZXZlbnQiLGRhdGFfZGVzY3JpcHRpb246bn0pfSxlLnNlbmRQYWdlVmlldz1mdW5jdGlvbigpe3ZvaWQgMCE9PXdpbmRvdy5kYXRhTGF5ZXImJndpbmRvdy5kYXRhTGF5ZXIucHVzaCh7ZXZlbnQ6IlBhZ2Ug4oCUIFZpZXciLHBvc3RfZGV0YWlsczp7fSxzZWN0aW9uOiJzcGVjaWFsIix0YWdzOltdLHRpdGxlOmRvY3VtZW50LnRpdGxlLHVybDp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9KX19LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubWFrZT1lLmluaXQ9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0obigyMCkpLGk9bigzKSxhPWZ1bmN0aW9uKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZihudWxsIT10KWZvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZS5kZWZhdWx0PXQsZX0obig3KSk7dmFyIG89Imxpa2VseSIscz0ibGlrZWx5LS1jdXN0b20iLGw9ZS5pbml0PWZ1bmN0aW9uKCl7ci5kZWZhdWx0LmluaXRhdGUoKX07ZS5tYWtlPWZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPSgwLGkubWFrZUVsZW1lbnQpKCJkaXYiLFtvLHNdKTtbImZhY2Vib29rIiwidmtvbnRha3RlIiwidHdpdHRlciJdLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9KDAsaS5tYWtlRWxlbWVudCkoImRpdiIsdCk7ImZhY2Vib29rIj09PXQmJihlLmlubmVySFRNTD0i0J/QvtC00LXQu9C40YLRjNGB0Y8iKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2Euc2VuZEV2ZW50KCJTaGFyZSAiK3QpfSksbi5hcHBlbmRDaGlsZChlKX0pLHQuYXBwZW5kQ2hpbGQobiksZS51cmwmJihuLmRhdGFzZXQudXJsPWUudXJsKSxlLnR3aXR0ZXImJihuLmRhdGFzZXQudHdpdHRlcj1lLnR3aXR0ZXIpLGUudGl0bGUmJihuLmRhdGFzZXQudGl0bGU9ZS50aXRsZSksbCgpfX0sZnVuY3Rpb24odCxlKXt2YXIgbj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJpc1N0b3JhZ2VBdmFpbGFibGUiLDEpLHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiaXNTdG9yYWdlQXZhaWxhYmxlIiksITB9Y2F0Y2godCl7cmV0dXJuITF9fSxyPXtnZXRJdGVtOmZ1bmN0aW9uKHQpe2lmKG4oKSl7dmFyIGU9d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHQpO3RyeXtKU09OLnBhcnNlKGUpfWNhdGNoKHQpe3JldHVybiBlfXJldHVybiBKU09OLnBhcnNlKGUpfX0sc2V0SXRlbTpmdW5jdGlvbih0LGUpe2U9InN0cmluZyI9PXR5cGVvZiBlP2U6SlNPTi5zdHJpbmdpZnkoZSksbigpJiZ3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odCxlKX0scmVtb3ZlSXRlbTpmdW5jdGlvbih0KXtuKCkmJndpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0KX19O3QuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtlLmdldE1vc3RGcmVxdWVudFZhbHVlPWZ1bmN0aW9uKHQpe3ZhciBlPVtdLmNvbmNhdChmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIGU9MCxuPUFycmF5KHQubGVuZ3RoKTtlPHQubGVuZ3RoO2UrKyluW2VdPXRbZV07cmV0dXJuIG59cmV0dXJuIEFycmF5LmZyb20odCl9KHQpKTtyZXR1cm4gZS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09dH0pLmxlbmd0aC1lLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdD09PW59KS5sZW5ndGh9KS5wb3AoKX0sZS5zaHVmZmxlPWZ1bmN0aW9uKHQpe3ZhciBlPXZvaWQgMCxuPXZvaWQgMCxyPXZvaWQgMDtmb3Iocj10Lmxlbmd0aC0xO3I+MDtyLS0pZT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqKHIrMSkpLG49dFtyXSx0W3JdPXRbZV0sdFtlXT1ufSxlLnRvQXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtyZWZyZXNoOic8c3ZnIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSI+PHBhdGggZD0iTTE0LjYyLjY3NGMtLjI2OC0uMTEtLjQ5NS0uMDY1LS42ODQuMTM2bC0xLjI3IDEuMjZBNy41OCA3LjU4IDAgMCAwIDEwLjI3OC41NDIgNy4zNTcgNy4zNTcgMCAwIDAgNy41IDBhNy4yOTggNy4yOTggMCAwIDAtMi45MS41OTYgNy41NjUgNy41NjUgMCAwIDAtMi4zOTMgMS42MDFBNy41NjcgNy41NjcgMCAwIDAgLjU5NiA0LjU5IDcuMjk4IDcuMjk4IDAgMCAwIDAgNy41YzAgMS4wMTUuMTk5IDEuOTg2LjU5NiAyLjkxYTcuNTY3IDcuNTY3IDAgMCAwIDEuNjAxIDIuMzkzIDcuNTcgNy41NyAwIDAgMCAyLjM5MyAxLjYwMUE3LjI5OCA3LjI5OCAwIDAgMCA3LjUgMTVjMS4xMiAwIDIuMTg1LS4yMzYgMy4xOTQtLjcwOGE3LjMzMyA3LjMzMyAwIDAgMCAyLjU3OC0xLjk5Ny4zMi4zMiAwIDAgMCAuMDczLS4yMi4yNy4yNyAwIDAgMC0uMDkzLS4ybC0xLjMzOC0xLjM0OGEuMzc2LjM3NiAwIDAgMC0uMjQ0LS4wODdjLS4xMDQuMDEzLS4xNzkuMDUyLS4yMjQuMTE3YTQuOTA0IDQuOTA0IDAgMCAxLTEuNzQ4IDEuNDM2QTQuOTI1IDQuOTI1IDAgMCAxIDcuNSAxMi41YTQuODcgNC44NyAwIDAgMS0xLjkzOC0uMzk1IDUuMDM0IDUuMDM0IDAgMCAxLTEuNTk3LTEuMDdBNS4wMzggNS4wMzggMCAwIDEgMi44OTYgOS40NCA0Ljg3IDQuODcgMCAwIDEgMi41IDcuNWMwLS42NzcuMTMyLTEuMzIzLjM5Ni0xLjkzOGE1LjAzNiA1LjAzNiAwIDAgMSAxLjA3LTEuNTk3Yy40NDktLjQ1Ljk4LS44MDYgMS41OTYtMS4wN0E0Ljg3IDQuODcgMCAwIDEgNy41IDIuNWMxLjMwOSAwIDIuNDQ1LjQ0NiAzLjQwOSAxLjMzOEw5LjU2IDUuMTg2Yy0uMjAyLjE5NS0uMjQ4LjQyLS4xMzcuNjc0LjExLjI2LjMwMy4zOS41NzYuMzloNC4zNzVhLjYuNiAwIDAgMCAuNDQtLjE4NS42LjYgMCAwIDAgLjE4NS0uNDRWMS4yNWEuNTg0LjU4NCAwIDAgMC0uMzgtLjU3NnoiLz48L3N2Zz4nLGxvY2s6Jzxzdmcgd2lkdGg9IjExLjI1IiBoZWlnaHQ9IjE1IiB2aWV3Qm94PSIwIDAgMTEuMjUgMTUiPjxwYXRoIGQ9Ik0xMC45NCA1LjYySDEwVjQuMzdhNC4zOCA0LjM4IDAgMSAwLTguNzUgMHYxLjI1SC4zMWEuMzEuMzEgMCAwIDAtLjMxLjMydjcuODFBMS4yNSAxLjI1IDAgMCAwIDEuMjUgMTVIMTBhMS4yNSAxLjI1IDAgMCAwIDEuMjUtMS4yNVY1Ljk0YS4zMS4zMSAwIDAgMC0uMzEtLjMyem0tNC41OCA0Ljc2bC4yIDEuNzdhLjMxLjMxIDAgMCAxLS4zMS4zNUg1YS4zMS4zMSAwIDAgMS0uMzEtLjM1bC4yLTEuNzdhMS4yNCAxLjI0IDAgMCAxLS41MS0xIDEuMjUgMS4yNSAwIDAgMSAyLjUgMCAxLjI0IDEuMjQgMCAwIDEtLjUyIDF6bTEuNzctNC43NmgtNVY0LjM3YTIuNSAyLjUgMCAwIDEgNSAwdjEuMjV6Ii8+PC9zdmc+JyxnYW1lOic8c3ZnIHdpZHRoPSI2NiIgaGVpZ2h0PSIzMCIgdmlld0JveD0iMCAwIDY1LjgxIDI5LjQyIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InN2Zy1nYW1lLWdyIiB4MT0iMzMuMzgiIHkxPSIzNi41NCIgeDI9IjMzLjM4IiB5Mj0iLTEzLjQ2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzEuNTQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmFiZjQ2Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBmaWxsPSIjZmY0ZjRmIiBkPSJNMTMuMzcgMGg2djIzLjMzaC02LjQ0VjExLjc2TDUuOTYgMjMuMzNoLTZWMGg2LjQzdjExLjU5em0tOCAxNS4xOVYxSDF2MjEuMzNoNC4zOWw4LjU0LTE0LjE3djE0LjE3aDQuNDFWMWgtNC40MXptMjgtNC4yOUgyNy4xdjEyLjQzaC02LjIzVjUuNDhoMTguNGwuMDUuNTRhNi4xNCA2LjE0IDAgMCAxIDMuMi0uODMgNi4zNiA2LjM2IDAgMCAxIDUuMzYgMi41NyAxMC43NCAxMC43NCAwIDAgMSAxLjgzIDYuNTd2LjIyYTEwLjQ5IDEwLjQ5IDAgMCAxLTEuODcgNi40OCA2LjcgNi43IDAgMCAxLTguMTYgMS45NXY2LjQ1aC02LjI0VjEwLjkxem01LjIzIDEwYTUgNSAwIDAgMCAxIC44NyA1LjE0IDUuMTQgMCAwIDAgMi44OC44IDUuMzIgNS4zMiAwIDAgMCA0LjQ4LTIuMiA5LjUxIDkuNTEgMCAwIDAgMS42Ny01Ljg3di0uMTdhOS43NiA5Ljc2IDAgMCAwLTEuNjMtNiA1LjM3IDUuMzcgMCAwIDAtNC40OC0yLjE0IDUgNSAwIDAgMC0zLjA5IDEgNS4zOCA1LjM4IDAgMCAwLS45MS44NGwtLjE2LTEuNTVoLTMuOTJ2MjEuOTRoNC4yM3YtNy40N3ptLTEyLjU3LTExaDYuNTZWNi40OEgyMS44N3YxNS44NWg0LjIzVjkuOTF6bTE2Ljc0IDEuNDdhMS41NCAxLjU0IDAgMCAwLTEuNDMtLjc0IDIuNDMgMi40MyAwIDAgMC0xLjE5LjI1IDEuNDggMS40OCAwIDAgMC0uNTQuNTJ2NmExLjU5IDEuNTkgMCAwIDAgLjU3LjU2IDIuMzkgMi4zOSAwIDAgMCAxLjIuMjYgMS41IDEuNSAwIDAgMCAxLjQyLS43NiA2LjM2IDYuMzYgMCAwIDAgLjYxLTMuMiA1LjI0IDUuMjQgMCAwIDAtLjU2LTIuODh6bS00LjE3IDYuMjZ2LTYuNDhhMi43NyAyLjc3IDAgMCAxIDIuNzQtMS41MiAyLjU0IDIuNTQgMCAwIDEgMi4yNyAxLjIgNi4xOSA2LjE5IDAgMCAxIC45MSAzLjQxcTAgNS0zIDVhMi44MiAyLjgyIDAgMCAxLTIuODUtMS42em0yMS4zMiA1LjdsLS4yOC0uNTQtLjA2LS4xMmE2LjMyIDYuMzIgMCAwIDEtMy40NyAxIDYuNjUgNi42NSAwIDAgMS00LjUzLTEuNiA1LjM0IDUuMzQgMCAwIDEtMS44Ni00LjE1IDUuNDggNS40OCAwIDAgMSAyLjI3LTQuNjggNy4yIDcuMiAwIDAgMSAxLjktMWgtMy44M3YtMWE1LjI1IDUuMjUgMCAwIDEgMS0zLjE0IDYuNTYgNi41NiAwIDAgMSAyLjg2LTIuMTYgOS42NyA5LjY3IDAgMCAxIDMuODgtLjc1IDcuODYgNy44NiAwIDAgMSA1LjI5IDEuNzIgNi4xMSA2LjExIDAgMCAxIDIuMDggNC44OXY2Ljg3YTYuNjYgNi42NiAwIDAgMCAuNTEgMi45NWwuMTIuMjJ2MS40OWgtNS44OHptNC4yNi00LjY2VjExLjhhNS4xMiA1LjEyIDAgMCAwLTEuNzMtNC4xMyA2Ljg3IDYuODcgMCAwIDAtNC42NC0xLjQ4IDguNjcgOC42NyAwIDAgMC0zLjQ5LjY3IDUuNTcgNS41NyAwIDAgMC0yLjQgMS44MyA0LjQxIDQuNDEgMCAwIDAtLjczIDEuNTUgNC4yIDQuMiAwIDAgMC0uMTIgMWg0LjIzYTEuNzUgMS43NSAwIDAgMSAuNi0xLjQxIDIuNTUgMi41NSAwIDAgMSAxLjY4LS41IDIuMiAyLjIgMCAwIDEgMS43Ny42NiAyLjU0IDIuNTQgMCAwIDEgLjU3IDEuNjd2MWgtMS45NGE5LjI1IDkuMjUgMCAwIDAtNS40MSAxLjM2IDQuNDkgNC40OSAwIDAgMC0xLjg2IDMuODcgNC4zNCA0LjM0IDAgMCAwIDEuNTIgMy40IDUuNjUgNS42NSAwIDAgMCAzLjg3IDEuMzUgNS4wOSA1LjA5IDAgMCAwIDQtMS43MSA1LjI0IDUuMjQgMCAwIDAgLjI5IDEuMTNxLjA2LjE2LjEzLjNoNC4yOHYtLjI4YTQuMTUgNC4xNSAwIDAgMS0uMjgtLjc1IDkuNjEgOS42MSAwIDAgMS0uMzQtMi42NnptLTUuMjUtN2ExLjU0IDEuNTQgMCAwIDAtLjMzLTEgMS4yNCAxLjI0IDAgMCAwLTEtLjMgMS41OSAxLjU5IDAgMCAwLTEgLjI4Ljc2Ljc2IDAgMCAwLS4yNS42NHYuNDRhMTYuNzMgMTYuNzMgMCAwIDEgMS42OC0uMDloMXptLS42NCA2LjQ0YTEuOSAxLjkgMCAwIDAgLjY0LS41M3YtMS40NmgtLjU4YTMuNTQgMy41NCAwIDAgMC0xLjg5LjM5IDEuMDggMS4wOCAwIDAgMC0uNS44OXYuMmEuNjkuNjkgMCAwIDAgLjIzLjU0IDEuMTggMS4xOCAwIDAgMCAuODUuMjUgMi43IDIuNyAwIDAgMCAxLjI1LS4zem0tMy4zNC0uNTJ2LS4yNnEuMjEtMi4yIDMuMzgtMi4yaDEuNTh2Mi43MmEyLjc5IDIuNzkgMCAwIDEtMS4xNyAxLjEzIDMuNyAzLjcgMCAwIDEtMS43My40MSAyLjE2IDIuMTYgMCAwIDEtMS40OS0uNTIgMS42OSAxLjY5IDAgMCAxLS41Ny0xLjN6Ii8+PHBhdGggZmlsbD0idXJsKCNzdmctZ2FtZS1ncikiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0uNDggLS42NykiIGQ9Ik0xMy44NS42N2g2VjI0aC02LjQ0VjEyLjQzTDYuNDQgMjRoLTZWLjY3aDYuNDN2MTEuNTl6bS04IDE1LjE5VjEuNjdIMS40OFYyM2g0LjM5bDguNTQtMTQuMTdWMjNoNC40MVYxLjY3aC00LjQxem0yOC00LjI5aC02LjI3VjI0aC02LjIzVjYuMTVoMTguNGwuMDUuNTRhNi4xNCA2LjE0IDAgMCAxIDMuMi0uODMgNi4zNiA2LjM2IDAgMCAxIDUuMzYgMi41N0ExMC43NCAxMC43NCAwIDAgMSA1MC4xOSAxNXYuMjJhMTAuNDkgMTAuNDkgMCAwIDEtMS44NyA2LjQ4IDYuNyA2LjcgMCAwIDEtOC4xNiAxLjk1djYuNDVoLTYuMjRWMTEuNTh6bTUuMjMgMTBhNSA1IDAgMCAwIDEgLjg3IDUuMTQgNS4xNCAwIDAgMCAyLjg4LjggNS4zMiA1LjMyIDAgMCAwIDQuNDgtMi4yIDkuNTEgOS41MSAwIDAgMCAxLjY3LTUuODdWMTVhOS43NiA5Ljc2IDAgMCAwLTEuNjMtNkE1LjM3IDUuMzcgMCAwIDAgNDMgNi44NmE1IDUgMCAwIDAtMy4wOSAxIDUuMzggNS4zOCAwIDAgMC0uOTEuODRsLS4xNi0xLjU1aC0zLjkydjIxLjk0aDQuMjN2LTcuNDd6bS0xMi41Ny0xMWg2LjU2VjcuMTVIMjIuMzVWMjNoNC4yM1YxMC41OHptMTYuNzQgMS40N2ExLjU0IDEuNTQgMCAwIDAtMS40My0uNzQgMi40MyAyLjQzIDAgMCAwLTEuMTkuMjUgMS40OCAxLjQ4IDAgMCAwLS41NC41MnY2YTEuNTkgMS41OSAwIDAgMCAuNTcuNTYgMi4zOSAyLjM5IDAgMCAwIDEuMi4yNiAxLjUgMS41IDAgMCAwIDEuNDItLjc2IDYuMzYgNi4zNiAwIDAgMCAuNjEtMy4yIDUuMjQgNS4yNCAwIDAgMC0uNTYtMi44OHptLTQuMTcgNi4yNnYtNi40OGEyLjc3IDIuNzcgMCAwIDEgMi43NC0xLjUyIDIuNTQgMi41NCAwIDAgMSAyLjI3IDEuMiA2LjE5IDYuMTkgMCAwIDEgLjkxIDMuNDFxMCA1LTMgNWEyLjgyIDIuODIgMCAwIDEtMi44NS0xLjZ6TTYwLjQgMjRsLS4yOC0uNTQtLjA2LS4xMmE2LjMyIDYuMzIgMCAwIDEtMy40NyAxIDYuNjUgNi42NSAwIDAgMS00LjUzLTEuNiA1LjM0IDUuMzQgMCAwIDEtMS44Ni00LjE1IDUuNDggNS40OCAwIDAgMSAyLjI3LTQuNjggNy4yIDcuMiAwIDAgMSAxLjktMWgtMy44M3YtMWE1LjI1IDUuMjUgMCAwIDEgMS0zLjE0IDYuNTYgNi41NiAwIDAgMSAyLjg2LTIuMTYgOS42NyA5LjY3IDAgMCAxIDMuODgtLjc1IDcuODYgNy44NiAwIDAgMSA1LjI5IDEuNzIgNi4xMSA2LjExIDAgMCAxIDIuMDggNC44OXY2Ljg3YTYuNjYgNi42NiAwIDAgMCAuNTEgMi45NWwuMTIuMjJWMjRINjAuNHptNC4yNi00LjY2di02Ljg3YTUuMTIgNS4xMiAwIDAgMC0xLjczLTQuMTMgNi44NyA2Ljg3IDAgMCAwLTQuNjQtMS40OCA4LjY3IDguNjcgMCAwIDAtMy40OS42NyA1LjU3IDUuNTcgMCAwIDAtMi40IDEuODMgNC40MSA0LjQxIDAgMCAwLS43MyAxLjU1IDQuMiA0LjIgMCAwIDAtLjEyIDFoNC4yM2ExLjc1IDEuNzUgMCAwIDEgLjYtMS40MSAyLjU1IDIuNTUgMCAwIDEgMS42OC0uNSAyLjIgMi4yIDAgMCAxIDEuNzcuNjYgMi41NCAyLjU0IDAgMCAxIC41NyAxLjY3djFoLTEuOTRhOS4yNSA5LjI1IDAgMCAwLTUuNDEgMS4zNiA0LjQ5IDQuNDkgMCAwIDAtMS44NiAzLjg3IDQuMzQgNC4zNCAwIDAgMCAxLjUyIDMuNCA1LjY1IDUuNjUgMCAwIDAgMy44NyAxLjM1IDUuMDkgNS4wOSAwIDAgMCA0LTEuNzEgNS4yNCA1LjI0IDAgMCAwIC4yOSAxLjEzcS4wNi4xNi4xMy4zaDQuMjh2LS4yOEE0LjE1IDQuMTUgMCAwIDEgNjUgMjJhOS42MSA5LjYxIDAgMCAxLS4zNC0yLjY2em0tNS4yNS03YTEuNTQgMS41NCAwIDAgMC0uMzMtMSAxLjI0IDEuMjQgMCAwIDAtMS0uMyAxLjU5IDEuNTkgMCAwIDAtMSAuMjguNzYuNzYgMCAwIDAtLjI1LjY0di40NGExNi43MyAxNi43MyAwIDAgMSAxLjY4LS4wOWgxem0tLjY0IDYuNDRhMS45IDEuOSAwIDAgMCAuNjQtLjUzdi0xLjQ2aC0uNThhMy41NCAzLjU0IDAgMCAwLTEuODkuMzkgMS4wOCAxLjA4IDAgMCAwLS41Ljg5di4yYS42OS42OSAwIDAgMCAuMjMuNTQgMS4xOCAxLjE4IDAgMCAwIC44NS4yNSAyLjcgMi43IDAgMCAwIDEuMjUtLjN6bS0zLjM0LS41MlYxOHEuMjEtMi4yIDMuMzgtMi4yaDEuNTh2Mi43MmEyLjc5IDIuNzkgMCAwIDEtMS4xNyAxLjEzIDMuNyAzLjcgMCAwIDEtMS43My40MSAyLjE2IDIuMTYgMCAwIDEtMS40OS0uNTIgMS42OSAxLjY5IDAgMCAxLS41Ny0xLjN6Ii8+PC9zdmc+Jyx0ZXN0Oic8c3ZnIHdpZHRoPSI2NiIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDY1LjMzIDIzLjYyIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InN2Zy10ZXN0LWdyIiB4MT0iMzMuMDQiIHkxPSIzMC41NCIgeDI9IjMzLjA0IiB5Mj0iLTE5LjQ2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMjUuNTQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZWMzMTYzIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBmaWxsPSIjNjgyNTZkIiBkPSJNMTkuMzggNS41NmgtNi41NHYxNy43N0g2LjQ1VjUuNTZIMFYwaDE5LjM4djUuNTZ6bS0xMS45My0xdjE3Ljc3aDQuMzlWNC41Nmg2LjUzVjFIMXYzLjU2aDYuNDV6TTIwLjIxIDIxLjJhOC42MSA4LjYxIDAgMCAxLTIuNDgtNi40MXYtLjQ2YTEwLjUyIDEwLjUyIDAgMCAxIDEtNC43IDcuNzMgNy43MyAwIDAgMSAzLTMuMzIgOC4zNCA4LjM0IDAgMCAxIDQuNC0xLjEyIDcuNTUgNy41NSAwIDAgMSA1Ljg1IDIuMzggOC4zOSA4LjM5IDAgMCAxIDIgNC43NCA4LjY4IDguNjggMCAwIDEgMi4wNy00LjYgNy44IDcuOCAwIDAgMSA2LjA5LTIuNTIgNy42MiA3LjYyIDAgMCAxIDUuNDUgMiA2LjUyIDYuNTIgMCAwIDEgMS4zOSAxLjg2VjUuNDhoMTYuMzV2NS40aC01LjA4djEyLjQ1SDU0VjEwLjg4aC00LjM3YTguNzIgOC43MiAwIDAgMSAuMTMgMS40NXYxaC02di0xYTEuODcgMS44NyAwIDAgMC0uNDgtMS4zMiAxLjU0IDEuNTQgMCAwIDAtMS4yMS0uNDYgMS41NyAxLjU3IDAgMCAwLTEuNDIuNjYgNS4zNyA1LjM3IDAgMCAwLS41NyAyLjkxdi40NGE1LjQ0IDUuNDQgMCAwIDAgLjU1IDMuMDEgMS41OSAxLjU5IDAgMCAwIDEuNDUuNjQgMS43OSAxLjc5IDAgMCAwIDEuMjQtLjQgMS4yNiAxLjI2IDAgMCAwIC40Mi0xdi0xaDZ2MWE2LjQ3IDYuNDcgMCAwIDEtMSAzLjQ5IDYuODYgNi44NiAwIDAgMS0yLjc3IDIuNDMgOC40MiA4LjQyIDAgMCAxLTMuNzUuODMgNy44OSA3Ljg5IDAgMCAxLTYuMS0yLjQ4IDguNTQgOC41NCAwIDAgMS0yLTQuMzZoLTIuNjdsMi42IDIuOTEtLjQyLjdhNy40MSA3LjQxIDAgMCAxLTMgMi40NCA5LjUzIDkuNTMgMCAwIDEtNCAuODQgOC44IDguOCAwIDAgMS02LjQyLTIuNDF6bTkuNzMtNC40MmgtNS41OWEyLjY3IDIuNjcgMCAwIDAgLjU3Ljc1IDIuNzcgMi43NyAwIDAgMCAxLjk1LjY4IDMuNTcgMy41NyAwIDAgMCAzLTEuMzl6bS01LjY5IDEuNDlhMy43MSAzLjcxIDAgMCAxLTEtMS40OSA0LjcxIDQuNzEgMCAwIDEtLjI0LTFoMTAuMXYtMS43M2E4LjMxIDguMzEgMCAwIDAtMS44Ny01LjgyIDYuNTUgNi41NSAwIDAgMC01LjExLTIuMDQgNy4zNCA3LjM0IDAgMCAwLTMuODcgMSA2LjczIDYuNzMgMCAwIDAtMi42MyAyLjkyIDkuNTMgOS41MyAwIDAgMC0uOSA0LjIydi40MWE3LjYyIDcuNjIgMCAwIDAgMi4xOCA1LjcgNy44MSA3LjgxIDAgMCAwIDUuNzIgMi4xOCA4LjUzIDguNTMgMCAwIDAgMy42LS43NSA2LjQxIDYuNDEgMCAwIDAgMi41OC0yLjExbC0yLjA4LTIuMzNhNC41MyA0LjUzIDAgMCAxLTMuODIgMS43NyAzLjc3IDMuNzcgMCAwIDEtMi42Ni0uOTN6bTE1LjYtNy41N2EyLjU2IDIuNTYgMCAwIDEgMi4yNC0xLjA4IDIuNTMgMi41MyAwIDAgMSAxLjkzLjc4IDIuODYgMi44NiAwIDAgMSAuNzYgMmg0YTggOCAwIDAgMC0uMDctMSA1LjY5IDUuNjkgMCAwIDAtMS43Ni0zLjUgNi42MiA2LjYyIDAgMCAwLTQuNzYtMS43IDYuOCA2LjggMCAwIDAtNS4zNyAyLjEzIDguNDUgOC40NSAwIDAgMC0xLjk1IDUuODR2LjI4YTguNTggOC41OCAwIDAgMCAyIDYgNi44OSA2Ljg5IDAgMCAwIDUuMzYgMi4xNSA3LjQyIDcuNDIgMCAwIDAgMy4zMS0uNzMgNS44NiA1Ljg2IDAgMCAwIDIuMzctMi4wOCA1LjQ2IDUuNDYgMCAwIDAgLjc4LTIgNS43MSA1LjcxIDAgMCAwIC4xLTFoLTRhMi4yNiAyLjI2IDAgMCAxLS43NiAxLjcxIDIuNzggMi43OCAwIDAgMS0xLjkuNjQgMi41OCAyLjU4IDAgMCAxLTIuMjctMS4wNyA2LjMxIDYuMzEgMCAwIDEtLjc1LTMuNTJ2LS4zNmE2LjI0IDYuMjQgMCAwIDEgLjc0LTMuNDl6TTU1IDkuODh2MTIuNDVoNC4yNVY5Ljg4aDUuMDh2LTMuNEg1MHYzLjRoNXptLTI3LjUzIDEuMmExLjc0IDEuNzQgMCAwIDAtMS4zNS0uNDYgMS42OCAxLjY4IDAgMCAwLTEuMzIuNTMgMi40OSAyLjQ5IDAgMCAwLS40NS43NWgzLjU0YTEuNjcgMS42NyAwIDAgMC0uNDItLjgyem0xLjQyLjgxYTQuNjcgNC42NyAwIDAgMSAuMDYuNjZ2LjM0aC01Ljg5YTYuMzUgNi4zNSAwIDAgMSAuMjItMSAzLjcxIDMuNzEgMCAwIDEgLjc4LTEuNDMgMi42NyAyLjY3IDAgMCAxIDIuMDUtLjg1IDIuNzIgMi43MiAwIDAgMSAyLjA4Ljc4IDIuNzUgMi43NSAwIDAgMSAuNyAxLjUxeiIvPjxwYXRoIGZpbGw9InVybCgjc3ZnLXRlc3QtZ3IpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtLjM3IC0uNjcpIiBkPSJNMTkuNzUgNi4yM2gtNi41NFYyNEg2LjgyVjYuMjNILjM3Vi42N2gxOS4zOHY1LjU2em0tMTEuOTMtMVYyM2g0LjM5VjUuMjNoNi41M1YxLjY3SDEuMzd2My41Nmg2LjQ1em0xMi43NiAxNi42NGE4LjYxIDguNjEgMCAwIDEtMi40OC02LjQxVjE1YTEwLjUyIDEwLjUyIDAgMCAxIDEtNC43IDcuNzMgNy43MyAwIDAgMSAzLTMuMzIgOC4zNCA4LjM0IDAgMCAxIDQuNC0xLjEyIDcuNTUgNy41NSAwIDAgMSA1Ljg1IDIuMzggOC4zOSA4LjM5IDAgMCAxIDIgNC43NCA4LjY4IDguNjggMCAwIDEgMi4wNy00LjYgNy44IDcuOCAwIDAgMSA2LjA5LTIuNTIgNy42MiA3LjYyIDAgMCAxIDUuNDUgMiA2LjUyIDYuNTIgMCAwIDEgMS4zOSAxLjg2VjYuMTVINjUuN3Y1LjRoLTUuMDhWMjRoLTYuMjVWMTEuNTVINTBhOC43MiA4LjcyIDAgMCAxIC4xMyAxLjQ1djFoLTZ2LTFhMS44NyAxLjg3IDAgMCAwLS40OC0xLjMyIDEuNTQgMS41NCAwIDAgMC0xLjIxLS40NiAxLjU3IDEuNTcgMCAwIDAtMS40Mi42NiA1LjM3IDUuMzcgMCAwIDAtLjU3IDIuOTF2LjQ0YTUuNDQgNS40NCAwIDAgMCAuNTUgMy4wMSAxLjU5IDEuNTkgMCAwIDAgMS40NS42NCAxLjc5IDEuNzkgMCAwIDAgMS4yNC0uNCAxLjI2IDEuMjYgMCAwIDAgLjQyLTF2LTFoNnYxYTYuNDcgNi40NyAwIDAgMS0xIDMuNDkgNi44NiA2Ljg2IDAgMCAxLTIuNzcgMi40MyA4LjQyIDguNDIgMCAwIDEtMy43NS44MyA3Ljg5IDcuODkgMCAwIDEtNi4xLTIuNDggOC41NCA4LjU0IDAgMCAxLTItNC4zNmgtMi42N2wyLjYgMi45MS0uNDIuN2E3LjQxIDcuNDEgMCAwIDEtMyAyLjQ0IDkuNTMgOS41MyAwIDAgMS00IC44NCA4LjggOC44IDAgMCAxLTYuNDItMi40MXptOS43My00LjQyaC01LjU5YTIuNjcgMi42NyAwIDAgMCAuNTcuNzUgMi43NyAyLjc3IDAgMCAwIDEuOTUuNjggMy41NyAzLjU3IDAgMCAwIDMtMS4zOXptLTUuNjkgMS40OWEzLjcxIDMuNzEgMCAwIDEtMS0xLjQ5IDQuNzEgNC43MSAwIDAgMS0uMjQtMWgxMC4xdi0xLjczYTguMzEgOC4zMSAwIDAgMC0xLjg3LTUuODIgNi41NSA2LjU1IDAgMCAwLTUuMTEtMi4wNCA3LjM0IDcuMzQgMCAwIDAtMy44NyAxQTYuNzMgNi43MyAwIDAgMCAyMCAxMC43OGE5LjUzIDkuNTMgMCAwIDAtLjkgNC4yMnYuNDFhNy42MiA3LjYyIDAgMCAwIDIuMTggNS43QTcuODEgNy44MSAwIDAgMCAyNyAyMy4yOWE4LjUzIDguNTMgMCAwIDAgMy42LS43NSA2LjQxIDYuNDEgMCAwIDAgMi41OC0yLjExTDMxLjEgMTguMWE0LjUzIDQuNTMgMCAwIDEtMy44MiAxLjc3IDMuNzcgMy43NyAwIDAgMS0yLjY2LS45M3ptMTUuNi03LjU3YTIuNTYgMi41NiAwIDAgMSAyLjI0LTEuMDggMi41MyAyLjUzIDAgMCAxIDEuOTMuNzggMi44NiAyLjg2IDAgMCAxIC43NiAyaDRhOCA4IDAgMCAwLS4wNy0xIDUuNjkgNS42OSAwIDAgMC0xLjc2LTMuNSA2LjYyIDYuNjIgMCAwIDAtNC43Ni0xLjdBNi44IDYuOCAwIDAgMCAzNy4xOSA5YTguNDUgOC40NSAwIDAgMC0xLjk1IDUuODR2LjI4YTguNTggOC41OCAwIDAgMCAyIDYgNi44OSA2Ljg5IDAgMCAwIDUuMzYgMi4xNSA3LjQyIDcuNDIgMCAwIDAgMy4zMS0uNzMgNS44NiA1Ljg2IDAgMCAwIDIuMzctMi4wOCA1LjQ2IDUuNDYgMCAwIDAgLjc4LTIgNS43MSA1LjcxIDAgMCAwIC4xLTFoLTRhMi4yNiAyLjI2IDAgMCAxLS43NiAxLjcxIDIuNzggMi43OCAwIDAgMS0xLjkuNjQgMi41OCAyLjU4IDAgMCAxLTIuMjctMS4wNyA2LjMxIDYuMzEgMCAwIDEtLjc1LTMuNTJ2LS4zNmE2LjI0IDYuMjQgMCAwIDEgLjc0LTMuNDl6bTE1LjE1LS44MlYyM2g0LjI1VjEwLjU1aDUuMDh2LTMuNEg1MC4zN3YzLjRoNXptLTI3LjUzIDEuMmExLjc0IDEuNzQgMCAwIDAtMS4zNS0uNDYgMS42OCAxLjY4IDAgMCAwLTEuMzIuNTMgMi40OSAyLjQ5IDAgMCAwLS40NS43NWgzLjU0YTEuNjcgMS42NyAwIDAgMC0uNDItLjgyem0xLjQyLjgxYTQuNjcgNC42NyAwIDAgMSAuMDYuNjZ2LjM0aC01Ljg5YTYuMzUgNi4zNSAwIDAgMSAuMjItMSAzLjcxIDMuNzEgMCAwIDEgLjc4LTEuNDMgMi42NyAyLjY3IDAgMCAxIDIuMDUtLjg1IDIuNzIgMi43MiAwIDAgMSAyLjA4Ljc4IDIuNzUgMi43NSAwIDAgMSAuNyAxLjUxeiIvPjwvc3ZnPid9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmFuaW1hdGU9ZnVuY3Rpb24odCxlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHI9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oaSxhKXshZnVuY3Rpb24odCxlLG4pe2U9ZS5zcGxpdCgiICIpO2Zvcih2YXIgcj1mdW5jdGlvbihyKXt0LmFkZEV2ZW50TGlzdGVuZXIoZVtyXSxmdW5jdGlvbiB0KHIpe2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXIuY3VycmVudFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGVbaV0sdCk7cmV0dXJuIG4ocil9LCExKX0saT0wO2k8ZS5sZW5ndGg7aSsrKXIoaSl9KHQsIndlYmtpdEFuaW1hdGlvbkVuZCBtb3pBbmltYXRpb25FbmQgTVNBbmltYXRpb25FbmQgb2FuaW1hdGlvbmVuZCBhbmltYXRpb25lbmQiLGZ1bmN0aW9uKCl7biYmKHQuc3R5bGUuYW5pbWF0aW9uRHVyYXRpb249IiIpLHImJih0LnN0eWxlLmFuaW1hdGlvbkRlbGF5PSIiKSx0LmNsYXNzTGlzdC5yZW1vdmUoZSksdC5jbGFzc0xpc3QucmVtb3ZlKCJhbmltYXRlZCIpLGkoKX0pLG4mJih0LnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uPW4pLHImJih0LnN0eWxlLmFuaW1hdGlvbkRlbGF5PXIpLHQuY2xhc3NMaXN0LmFkZChlKSx0LmNsYXNzTGlzdC5hZGQoImFuaW1hdGVkIil9KX0sZS5yZXF1ZXN0QW5pbWF0ZT1mdW5jdGlvbih0KXt2YXIgZT1wZXJmb3JtYW5jZS5ub3coKTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gbihyKXt2YXIgaT0oci1lKS90LmR1cmF0aW9uO2k+MSYmKGk9MSk7dmFyIGE9dC50aW1pbmcoaSk7dC5kcmF3KGEpLGk8MSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfSl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oMTQpO3ZhciByPWEobigxOSkpLGk9YShuKDM5KSk7ZnVuY3Rpb24gYSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19dC5leHBvcnRzLlFBPXIuZGVmYXVsdCx0LmV4cG9ydHMuS2Vybj1pLmRlZmF1bHR9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDE1KTsic3RyaW5nIj09dHlwZW9mIHImJihyPVtbdC5pLHIsIiJdXSk7dmFyIGk9e2htcjohMCx0cmFuc2Zvcm06dm9pZCAwLGluc2VydEludG86dm9pZCAwfTtuKDE3KShyLGkpO3IubG9jYWxzJiYodC5leHBvcnRzPXIubG9jYWxzKX0sZnVuY3Rpb24odCxlLG4peyh0LmV4cG9ydHM9bigxNikoITEpKS5wdXNoKFt0LmksIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0Jvb2ttYW4gT2xkIFN0eWxlJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IGxvY2FsKCdCb29rbWFuIE9sZCBTdHlsZScpLCB1cmwoXCIuLi9mb250cy9Cb29rbWFuT2xkU3R5bGUud29mZjJcIikgZm9ybWF0KCd3b2ZmMicpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTHVjaWRhIENvbnNvbGUnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoJ0x1Y2lkYSBDb25zb2xlJyksIHVybChcIi4uL2ZvbnRzL0x1Y2lkYUNvbnNvbGUud29mZjJcIikgZm9ybWF0KCd3b2ZmMicpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUFQgU2VyaWYnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogbG9jYWwoJ1BUIFNlcmlmIEJvbGQnKSwgdXJsKFwiLi4vZm9udHMvUFRTZXJpZkJvbGQud29mZjJcIikgZm9ybWF0KCd3b2ZmMicpO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTG9yYSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiBsb2NhbCgnTG9yYSBCb2xkJyksIHVybChcIi4uL2ZvbnRzL0xvcmFCb2xkLndvZmYyXCIpIGZvcm1hdCgnd29mZjInKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0RvYnJvenJhY2huaXknO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogbG9jYWwoJ0RvYnJvenJhY2huaXknKSwgbG9jYWwoJ0RvYnJvenJhY2huaXkgUmVndWxhcicpLCB1cmwoXCIuLi9mb250cy9Eb2Jyb3pyYWNobml5LndvZmYyXCIpIGZvcm1hdCgnd29mZjInKTtcbn1cbi5hbmltYXRlZCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtcztcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDQwMG1zO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cbi5mYWRlSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcbn1cbi5zaGFrZUVmZmVjdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNoYWtlRWZmZWN0O1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzaGFrZUVmZmVjdDtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIHNoYWtlRWZmZWN0IHtcbiAgZnJvbSwgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbiAgMTAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMXB4LCAwLCAwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTFweCwgMCwgMCk7XG4gIH1cbiAgMjAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgycHgsIDAsIDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgycHgsIDAsIDApO1xuICB9XG4gIDMwJSwgNTAlLCA3MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNHB4LCAwLCAwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTRweCwgMCwgMCk7XG4gIH1cbiAgNDAlLCA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0cHgsIDAsIDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0cHgsIDAsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNoYWtlRWZmZWN0IHtcbiAgZnJvbSwgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbiAgMTAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMXB4LCAwLCAwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTFweCwgMCwgMCk7XG4gIH1cbiAgMjAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgycHgsIDAsIDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgycHgsIDAsIDApO1xuICB9XG4gIDMwJSwgNTAlLCA3MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNHB4LCAwLCAwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTRweCwgMCwgMCk7XG4gIH1cbiAgNDAlLCA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0cHgsIDAsIDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0cHgsIDAsIDApO1xuICB9XG59XG4uQ2Fub24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDU0MHB4O1xuICBwYWRkaW5nOiA0MHB4IDIwcHggNTBweDtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBUYWhvbWE7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAgLW1vei10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gICAgICAgICAgdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5DYW5vbjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA5MHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL2pwZWc7YmFzZTY0LC85ai80QUFRU2taSlJnQUJBZ0VBa0FDUUFBRC8yd0NFQUFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFmL0NBQkVJQUx3QTBBTUJFUUFDRVFFREVRSC94QUFkQUFFQUFnTUJBUUVCQUFBQUFBQUFBQUFBQmdjREJBVUJBZ2dMLzlvQUNBRUJBQUFBQVA1LzRXWEFOTUFBQUYxOXlodEVOKzdxcml3RmlTT3MrSUdTZHdBejRIZHNQeW9GL3dCUDhBdlBGaXBaTUpOVklXQkxJUEM5bTFxcDF2cTVkK2pjYWNiRUE4NlZtOCtHY01UK1F3K0hnQUFBQUFBREo4L0lBT2hPWXRIeVQ3a01QZHV5YXFKZDNhMEFzYjVrRk5weHNRRHdtc2lqa0xMWSthdHhwWHlPV1NxUGF6djhBQUpCWnRjUmwwYm1vdjRBQUFDd2NVaXFFQ3lxMytYMU1OcUJnQUV4aC9rcHVlTlZUeXZyOU0wVkdVK3VMOHg0d0hTbGtnaVVPNkZyMHdkSHY0NG0zTHZoVmNnTXR3VkxxQUFXelYrc3RUc1V0OFpNYjMzNUFBQzM2dTBWczFUOEFQYjBqdFdIdTFxQ1N4b3V5dm9vTW1NNjk0UTJxbnRyYjlNZ0hVNVo3YmxSK0UyNEhJSmZhbGNRTUFaTEk3UGFwTG1nTjNjNHpiM2RtUEFTVzBhSkFaOEFUK1o2bE1MSzVzSEFCYUVpbzd3ZTV0cm5MWjVsY2d6NEF2WEpSMnVBV0x5NGNEcjhnT25sNVB5QUFIUS8vOFFBRkFFQkFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvYUFBZ0JBaEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQveEFBVUFRRUFBQUFBQUFBQUFBQUFBQUFBQUFBQS85b0FDQUVERUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvRUFDa1FBQUlEQVFBQUJRVUFBZ01CQUFBQUFBUUZBUUlEQmdjUUVSSVVBQk1WSURBaFFCWWxNbEQvMmdBSUFRRUFBUXdBL1h3d2dUUndlT1JqanJkaGxYRTg3R2tlMm4reHdRM0xrYUFGcjl0eFhuUW1xZVEwMFpEODVKQmpJN1JtZVVmcm5sbHArcXNEVm94Q1g0eGFiOUp6dkRaVkRIUDN6Uzc5UHk1SE83WVdqYXBpL3dEZmwrSHEwRWx5NUtrQlNzRjhOR2g4SnhBaUxrZEVwL0NPVGx0Yld2bit1TzJvK3ROc05MNDdiZUlUUXBJU29OR0dMMDg1RkpqS041SDNqRHk1cHJ1bWNobkRpU2RxNWVwdXZpaW1VYkhMby9FSXdJQlVxNVVlWjMyOGx3bks4OVZXZ1pDRFN3NmhibXBmc3dNS3pURHo2eW01SEFxcnJKdElmSnFlTExLRklVWGI2SGVJcXhCcEpEUFJyWEJ6NUplSGZPb3B0UWVBaEczaHJVTlVRV3ZaWFBOL1h3OTU4ZDAwMklOenJzSUg0a3dXOHpYM0JHb203MU9PbWY2WmlaMXlHK2d5dFFTeGpjSmlOcitKYTZ0TG00Yy9uUjJXV1FjVHVZWHBiWWo2cmIyMnJiMGlmckh4TlVrN0M2czBObzFZQ2NMMStsMmRuRUNGYlZ6cnJyWEs4NjVlWE85MnpRQ2ZBakhFNE5sNGpQRGNiRGlVR1ZZMnRhOXJXdGFiVytrNTJTMW9BZnNQQldVZUtPbDNlRi9qV3hSVk9ENVhzY3pnMldSYWJwUHhjdWo3SnRQdUwvMDhQK2lGUk1TY2o3L1pERDVibEZ6T3JiZnFGMndIYlBzT2djL0lFOTBoL3dEenNjZGlOS1k0WmFiN1dyYWxwcmV0cTIvcGtyWTdBYnM4aE5yZ2VIcGllK3BxTnFLUHBQVEl0ZWVhN0EzOTE4UE5KeUx0NXBYNDR0eHh1czV4WnpzQjRETmZuSGVjUk0rdnBFejlBSGxyQzhUZ2RyRGs5VjZPdVFUOUtXTGtNMDgrWDVBM3BwMzB5SXhFRlpydUJUaGxoL05NYXQvMzRUcHNWK21pTnI5dXlsNXdMa0ZuUDRZYll3SHhBaWFjMmp5Y2FqNjlENWNnb0NaaGROc1FKYzRwMTRpdW1tZGh4WW9xSG1abVptWm1aOCtHYnJWTFFpR3NSVVNRL0RoRGVOOVRTSCt2V2RocDBjRGk0aTFCVytmaFdaV0MycXZTZldqUlo0ZUlOOTh0dEdiUXphOU5OZGRNOHE0VTh1TlRBUFhOUUdHMnVXVHBYc21hR0xkdldiZVlYYTlLdkZxR015dkdCWmhaKzl5VFNOaXQvTG5PaEs1dGg4MGZPbTlmNTh1MXFtZXJ6OUxUWERvaE9BTU5sMGM1OTkraGFwVC9BSXVDVkxSWVA1S2RqeG1JaEt6UFhVM3QrWEtmaGh1UVJiVWFhWjZaWHRuclMrZW4rdW43eXlKUmt2WEpoS2s1K0pIVVUyKzVZa2JYUFh2dWViaDZadnVmblVuOTMzaHV3WHhvUW8wbHFOYXRxV3RTOWJVdjVWaUp0V0xXOXRYUEV0bGNoM3duTm9KMWZKZzgwdldXK2ZmWnQvY1BqeW1mUFZkSzlxbWJ6RXhNeE1URS9YSHBRWDdpRjU1RzJHV3kvV3ZSaWRTRVg5bE5VdmtPOXRwaVhsK0pjT2xmNFprU3YrVGlaSDFXdHIyclNsYlh2eUFCaVpJQ0UyS3JKSFhZTjhIcG41cTA2RStYSi84QUNzUWlTT2p0OTA3UXRDZ1R3enV2eFZqNjZmZDExMTlJci9GU3FLZEcwWGhmYStTbjhQWFp4dXVMREt5c1Uzc0ZmS1JSUHlZbzVPWGFNMHpkaU9lb3BOTGZTcGhxcVloTWNmOEEzempPcmJoSFNyWGVLbGVhbGhLcGtFeGpETW1YdmFOSFI0WnRmUUduVGRYdjAxRjhFQkRqYStTOG1nUndabW1NRVV4Wjg3MzFoaHkxTHFkTzc1ZFB6MUFicnlObzIvaGh2c050bnVQcnBqdXY2Uy9acFNlY0tLcXZkbkFsTFM5d1RjcHhKL3FmNGxVd0R4QTV0ZjhBQ3pMTUtPM3VTWVJxU1I1Y094VU1hQ2N5dzU4VXZSdHhmRzY2bDVDdU1reGVsWXBwZWtYcHBIMW5scnRNMXh5MDF0NVZ0TlppMVptdHJXdGUxcjN0YTF2OUh3dUJwbFZ1ODM5SzVzenJzbUpwK25yN3ZMd3lGekhvN2ZFUjZZNlc5OTczOXNWL2pXdHIycld0WnRaQXNYOE1rMGRQSy84QVlkU3NVT0VHZlhJeC9oeDV4RXpNUkVUTWtnSEIxeXNZR1VMWDlGL1VzVnFWZ2p4cmhZWHo1K3k5bHcreUZVY0ppM1o4VjBTa1hRMG9Lc2pmcEdXdHM3N1Z5MHRsNW9HR0Nwd0F4SkgrVmdyY3B1OXN6Qk1XMXNJLzZUbWhlZUo1dm02YmFaK1VlbnJIdWlacXM2N24xc0NEYzl6VnZ5SGl5UlgySlJZOUp0L0NKOVA4eC9pZFhiamNYNE96TS9VVHo5Si96UHBQMXdXdWJmbjMvTTNyU3VzeE5abXRvbUxlZkF1QkV6Mzd4MjhEaXZyQTNjczdyZmI4SHo0VUtEZW9XVnRIclRwK05KNlZ4bVp1ZmtFdTYxUnlpZ1lmQk94MU5aL3l4bktOc3AzalMyRExoaFMxbEhYSmxhc0JlU013UThTd2MvRG9WcHpwSEdFTXJQRkJPYW9sem9QczNhYkNURWkvd0FZbXF5YWxyeUxpa011aGR0LzhNV1JKRlBJRUV0a1ZrRURoWWdxRVRLemY4RlhHdDJMemwzSFBmYXN3d3I5ajkrYTZZM215L3ZZZXV3blJPT2RMNDFyc3NJR3p2L0RFWWtuN3Nqajc3eCt2aHJjZW5UVSs5ZWxMbEJoOEhEUjdzVlZrNjdGb2JseDY0RjNYT1hmbHp2STg5MFM3S2NYZTQ3bC93VGRFUG9iNzhEZ2Y2RXB3OXZEdFVZT0JGbVhob2xZZ1pOOW1JZTRsTFI3YlRYOWEybXN4YXN6VzJoUk91dGQ5aU50dG1iWmk0SWdwa1ZjcmZ5U2NFT0lIazg2TSt3by9WOXpMWWF5ZFhscGdyL1lZZlVza2NUQ1BkdCtxWjFxbDhOOEdPRk10U09FNnhyMEI3QWRqZkcxUzYrMG9tdjhBSlI0bE9WOU1Sek1SMkkzV3ZFanU0bXFwVEsvZjl1ZnQ3WHlTMzdmbUdQNHI4TDhtMzQxSThQUUYzTVgyenJyZTl0TDMwdmFiWC8wVk16RFZaTVQ2VC8vRUFEUVFBQU1BQWdFQ0JBUUZBd01GQVFBQUFBRUNBd1FSRWhNaEFBVWlNUkFVSUVFak1ESlNZU1JBVVVKeGdUTlFZM0tSbFAvYUFBZ0JBUUFOUHdENmJlVzA2UnNpdjZWdEpieVZYQkI2czZlc2E3cE5nZlNTUEVzekpraS90V2RuUlIvd0FCL2M0ZVBTZWRpV3VHK2Q2c0duV3M1MEJEeVZ4MWtPTVVhSTBtUWhESXh6M3BSODlVbXVPTFVZczRya3QxcXdwUnlLR2FSbWx1NURsbFBITHMxbm5CT0VrTGZaVjduL0FObVlsbmJidVN6RW42Y3ZJbEhhalpSR1lkU3BIN1pURDFjK3dWQ1QySGhZclBIZkdjVHRXS2VoVGtLMHJyVUFqVFpGVkZDZDhyZS9qTVV2aDVxTHhEZ0JXTTZLR2NMUUt5c3BWbVMweUhRZ2g1eit0UTdyeFpKMXZPWElVczFhZ3p4c2RXVSt0bGRxQlc0aWE4YUZ4Ulk1TkxlWVRua05OR2RqS256WUliaWpPb3BHU1B4NGdFc0ZiSHFwZzc2NU5DMDB0RXNRQXBjVG9xdVFBQzZ0NlYvU1Bwa3dlZFpzeVVSaDdNanFReWtmNUI4WkVIeG16cWJGT202OGViUlVDYjVDZnFTd0thY0s1Um1Vay9FKzFqS25TUHQ3VTQ4RDdqNy9BSEh4Vm1pdUt2THFXK1lReEtSS0s3Q3g1Nm5wSDIzcDRNQ1I0YWd4TU5xVGtweEs5VGRCa1ZXcTMrWGdCUjd6cmpFVFVPL0ZEeWRjTk1XcjFjZ3RHV05qdmp4RGR6cXVRR1p5bzBFbUJvY1hUWHc4MXdaV3lNak14a3RHMlF6QmVoUzlnNno1VzZpNDhocWE5TmViQ3RKbXNiaDRJU1R3amVhWkVrRE50bUNKVUlDU1NlUGRpZGsvR2NmTEtaU1I3N3cweFNtbjQrNlJ5T2lhalhwWk9iYUUyMWdHZVNhWkU3b2l1dWdVdTZRK1NYa1NSMDFxR2NBOU5tQUo4VHg0U1R5OUt4cTJSeHBwUytPUDZpUk0zSTZwWlpCWnEzRWtOeStERUVaV2J5a0hRLzZveDRtMWh4N3F3UlpNZTNWSHVNSldmSngrbE5Wb3N4eXFzbFNsS1NzaWJjVGRxTlRqeFhpektQcThzbktyUVlFcGJJc3pESFNnOW1rQkt0SFFuVGxFUmxhYk9QR1JrRENsVDFuSUFvM1JsYW5xNkJpNUs4NGlRTTVzZnhYNGFiTXg1NTBvb05KRTBlc3F6UWV5cDFZdTZJdnBtanFpQUtvQThZdDVaRWlSc2M0dXJyeUgzVWxkTVB1Tmp4U0hTZktZUTQ3MEJwc2xVR1hXS2tjaEZ1R3dxcnpINnhrVWF0cU5vRm5iMzdBQlZBR2dxcUFxcUFxZ0FBZkJXRGFQY0hSM29qN2cvZjhBanhqYk04cVRReTZZOUhBV2o0NHRPTkpLNEhxNFY1OFFBZVpBUGdRQzFiNW1XSFRVbElWN1kyYk1sK2tBRlo1Y1ZaRlVkVDlMZUZvNnlvVjRHa3d4Q09VMmVCZGRNVjJlSk90blh4Vm1hTXJzNlBBdVN6ck9pRWpwTXhaek5rYlRzU3JMdGdYQlVuRFJ2bU5IM0F1N0VUMysrTTUwSHVISGhpV1ptSkxNeE95ekU3SkpKMlNlNVBjL0RGeVoyZUIxNjFVKzY4dlR6VDljK1hwNmlydnR2d0FaVmtWUjh4dWV2NnBtQlpRMFdBS3dteFV6TkZMdTdJeWViZzVHUTBhQ3hsajV0SFlwZEVMT0tZdGVONWtyMVRFaGRGMnFwcFVVaVFqSWl0UkZleVNWMVJ1a2xqUlpla0RwaFF1MUFZL1I1aktTTmNobVdOOGRuTUdvRkJJa3kxc2pNRlBGbVJtMGdkaEMvd0EzaVlhM3hnKzBjVWlqMFhKbzlsaXdBS1RpR3R4SElJQ3lIRngweE1kMlZrTmdsSzFlL0J0TWdkNmxVREJXNmFJV1ZXTEtQKzNVUEdjb28xS09kRTZTYUJtWTZCT2xCT2dmQ25US3dLc0NQc1FkRUgrRCtiak9zNzVRWDhKSFlxQXV5UVcwWFFPVURDZk5PWlhrdS9OUUZ4cjJSQ1dmZzAzeEJRam5KNnEzS0RJeW5xZ3FEMUdsNGI4ZkRzMnQxeFhaZ2hiWGJxVEt0S28wUFdoWUFJeTcrT3gxTTNLVjQ0NmpmZmdXWGxkeCt5S3VRZGN5Z1BMdy9VR2JEVWgwUXF6NFB3bXp0RG14Y0xPck83TG9nNlVsdmlBU2REZWdQY24vQUFCOXo0Z1NaMFVLMnVTbFdWbGNNam82a3F5T3JLeWtnancyUjh0YWlUNmZ6VUNjaWF1UnJteXQ4dk8wUXhLelY2aVhvY0UvSEdkSjJ0VlhvNVp3VzR4a3ZFVVpWRzI1MWtCdGU1MzQ2RlZsZkhjdEtHV0prUzd4TThUcGlvQXBOcVpWRUhOV0lianI2L01XWlFiQUdXUGVxaWJDdXdRY2ZJVUtsT1I0VFlDaDBwcWZGYWltRmFOVUZNZlo1TEs3TTZOTm9uOU9RU0p1dkIrb0tjMFZLcnRvZTdTTWFES2NqWGRDeTR3cXdDbytRQTBsQ2JVZkRDOHJMWUdNak9ITjZ6eWZ4SnJNN2VzM2xJSU9MOTNJQ014VWVISEdneG5aOGx3ZmRUbE1FWkZQL2huSi9jTTdLZGVDU1NTZGtrOXlTVDNKSjl6OUdmaFZ3bXV5R2l5Nmp6WWlpcXJOMHFxcG01Q2tBbEM0NEJtWGZVaml5ZWVURlIzS2graXNNZGlEb09tUmR0OXR3MXkzaU56akRrR2Q2QkROSG9WVlpvSnpMSktVMTBnZDl1KzE0L0hLeFo1S0tUb0U0N21OUVA1ZE1sU2UrK005ajJKRVhibDVhdDJDSS91c2FaRW9Zd1JCc2N2NmlsbFZka00zWm5vN3BGQzdKRkdZc3NsYWpNN0xNRUlwZG1jZ0FzeE96OFRqWHROSWxVcGtWbHhJaUhZTncxTTBzU0ZZbFlzdnAzeUdOWXFqa2E2c1dBZUZnUHQxWk1qNkJQRWtydllQMEl2Q1FySEh1OGxBMEZuVzhxVUNxTkJWTE1xQUFJRjhQK3F0Nk5SeU8rbEJZbmlxNzlLTHBWSFpRQjIrTkpOREl4Nk1VVzBtS3NBSEFZbzZPcXNqOFcxM1VxVllqOHhLbVdTUUNkWTkwYU5XS2p1M1RWK3FGR3lXbU5BblhpNlROTVh5ekpsZjVscG9xSXp6aksxb3V5S3FQdDRLU215VWNVTFlvZGV1ekE1V1VEb0wxK0pmWlhSUEo3WG9TeDNRQUFmR0ZsckNjWnZaM1lIUlRwekJaMG9wTTNVRDFJeFg3K0pZc2hsWUxFZGFrWFVWNlEwZUxaT0pSNkx4N0dxRmxWbWFja1pDVmVkRktPakQzREt3REtSOXdRRC9BSENjelhPdFpuK1lkblorcFdNNVJveFVOd1VIS1lLaXFxNlVhOGN0bkhmRGlKYS9ieW1xWEEvbnJGdjU4TEpoUHBpTmthbkhpT25rdjBzbkVMYkpESUtHWTM2bklBUDFvVDFJZ0ttZEFCUTJqTUhqa2VrZy9oQmFua3VzY3J0dkNNVlpXQlZsWlRwbFpUb3F5a0VFRUFnalIrSllCbTBXNGdudTJoM09oMzBPNTl2R2ZTTXNYS3dneFZxNUhIb0pSRCtqcmNnWlVEdkp4cmRGWThmR1NRTXJGSlF5NGliTlcyT0FpVlNVckJZcWFsamJselVJVWRCK2ZPMlJQTTh1VmRXa3NUNmVpZG5yVk11TmpJQldaS0lKYzZEZ3dKQkJHaUNPeEJCN2dnKzQrQnhyV21NY290YlZrMHowUTFFb3FEcEd0V1BCanhrVkdpZVF2NVRUSTgyY1VVU3lFampieFhlYkVGK2NIbFJhY1c2U1lqYlpDNkJnenJqWDVwTzJSSU4rR1JUU3h5bjQ4ZVdOWlRaQnorWFlvSGNRWmVPUkJsS1VWbEREa3F2VHBVWFpTa21Zc2pxZTdLVlkrSFlLcXFDek16SFNxcWpaWm1KQUFBSkpPaDRyUmpqNDdsUTJNSFJycmhJNVltMUpxbGJNRjJKK3RFM09RWTBicVNxdStqVEZMTUlIR0graUtxT0N6L1ZObFpYM1FNVDhGeVB3TVo1NXJLSUtpRlNpNHc2VlhwVTBEaXhJUlVUWVZXSlo1Z3BqZktRaGwxYWdMU3graW5jNUZBT1JtN2JtT1RXS0NkQ3RLUFRpUFplYkZ0RCtCdlg1TlVvODF0VHBLL1NRMGRReEJITGdyTUFkZGxQZnQ0eGFCY2pJcUZZMDdjaXVHRll6dnRkZmpCK2dtOWxuWmVtWTFENTJaZHFWVElxQXEwQ09qSWExWUtBMXdSQ2Vna0pNZ0hHK0dqK1lmaFBFL05sM0pXaXNxcTlrVGl0TFRMem9kRU94QlkrTVRJblhYNzBCMVNaL2lreTh6N2RtUGZ4NVpnWnFLQytuYkU2TDN4bU95UHcxY1BpRUQwcEpKcTM2d0Q4Y082WEVhN0NPVjNyMUFFbzZrOHB2eGJwMFZYNHR4MGZMcUMyRENMbWdsYmtyRzFYWlY2OUR4VkR5UlppWUtMTUI2YzhKYkJxeVoyTm10MHVXZ3czS1lNZ1JNdFFnc1R6L0FNL0RGeW9aRFFadUsyRWFyUXpMYU9nM0hXeXJEdjNWaHNHSnBweDh3TUhHZGs1T1h2aTVIUUJZS3FyVElpams2UmRCOU5rMG9yNGQ2clZ1a3E3R1FoQ3E2S3I2a2VmSU9XSEVnbysveUl1S1NySmlsSnVwMkdSMUlLa2Y1QjhWaWd4OGpmQ0htZlJaYUdUOFFES2xRbkc4NTdEb1dwSldRUGpqSGZoV1pLdHhKVU1wRElXVmxaV1ZsWldJWlNDRDMvT2xGSkpmTFNXNEFLQnFHTEZuaVdVOXhTcnVySFphQjM0b2R2V3p0UnpyMkcySjBxanNxalNxTkJRQUFQaWZtbVR6QXh4MmZocXVTV3VXbXRrWkJ1UzJuWXVWNmFCUm9rNGdCeUlVeTUxakhtaTFWcVJ5NnJmaVVkZTg4a0l1K091UUsrRWRsRko4dUZBckVCMDVLcmNHMXlYa3F0b2phZzl2Z3FQUmxtak9Wbk5TenVRb0pDSW9MT3g5S3FDU1FQaXBES3lrZ3FRZGdnanVDRDNCSGNId3hMTXpFc3pNVHNsaWRra251U1Rzbit5aE1ZYzZIWEZWVlJsWmhQOEFnb2k0eDMrMW1HKzU4WmVUYStqN290SEpTZjhBdE5PS0QrRkh4dzhZNDZ1UnNjVlU1ZVpyWTdGSnloN2Y2YUVleDd1N054VUFLdklrOFZBQUFBM29BQURYMi9KWWhWVlFTek1Ub0tvR3lTU2RBRHVUMkhqTFJVYWFxSHROS2dNbmw4VVpncldiaVh5V0pWUnhLczNUanpaYWlXZmlpYzVEUnQ4dVhhVWkwMHNsbW5zejdWalVVZlRMMytKSUFBR3lTZXdBQTdrayt3OFhETkJzbkh0QmJLdXVSa2Fvb29GNUxzcHNEa3UvY2IranpBVkRPNk4xb2pJbUk1SFRaV1VOMVpBTCtJRzRIMUxyMitqSWpaYnd5S0NOYVpGYmNxRGkzcW90Y2RCQkt5VjFSZUhQVEtSNGlBYTFoZU51bXBPdWJJajlYZ0RyazRRcW9PM0tqWkgwVEtyU29Sak5DM1pRN2djVkxIc29KQlAyK2pGdjFLUkFVc1J3WlZwTVBwVFdMTXRwQmlvTkpxT2FmcUdFWVZ4Umt0cklvbFJWS1hCaTRiR2RHVUtlalVrSlJkMEpPaGtWVXZZcllSUUM4N1ZjVXlqMTZ1L1NXU2dUQ0JDV1Z4eFVOOE5qa0FRcEkzM0FZaGdDUjdFcXdCNzZQdDR5SGpBM3phejZuVnF3VHRrcU1pOVF6TnJpb3hrOVd3aWdCUEJiTnlHUDNWVkdQTlArSExVMy9LRDhrZHdSOXZHZ1BsNlpWbmtWWFJWU3JPUXlLUUNxSGFyb2FBMFBvSHYvQUI5dS93RHo0ZVZzaURhQUwvTXlFZzdkdEZzYklsQmc3ZDlVUlFOVDhLU0NDTkVFSFJCSDJJUFlqNk1uRXRpdlZnNW1qczhxeUw4QVNBWGp3NWxTcWM5c1ZYa3diTXMyUHczd0tGaVNaZ2dFVEw4ak1hQUNGUU93SDBZMUtaci9BTUhGbTFKSC93RFFJai9Zazk5YU9MaHlnb1ZHdGR5dExXdTVWbW5LUVBVQ0NoZDlCQXhrUVBVTDhjZ0M4c21RaUp0ek5Xak5KU3FLOU1JaU1XMGFCMU9ndy9LRkVObGtWV3JTNURxQ2JNR1ZhRk5oQ3dLaHRFZ2p0NEtGNllWeXJaYThSdWlTTTBUbGFYcytMUkJYdHVkS2xrUXI1a3M4MmJjVWVramJFeFJJdVZjNmt0MnBPYnFWNXUvcEFkbjhIRnJITTh1c1pZYytuUXBScWRGejBsNmJTVm1mRXEwUUI2MVZpVDRyNWptMHh5UDBtTDVOR2tWN0FoU2hCVUh1Qm9IditTaXNvcFBpVHhjYVpXVnd5TXA3YlZsSTJBZGJBOEhYNFBKWTQreG9BL0xRV1VOOXZmcDczczcyVHY0WEpFcElWQmJpcGRpV2RsUlZWRlptWjJWVlVFa2dEd0s5RXluYVZFVnduVWZsWkhhUUUwMjFUeTNQaXlzQTZsZkZtNFR5WVVGWUdtdVJrV0FWcDA0Z2tMUkU1aFdNeTRSeXYxMUlHWGhNNVdkMUhZT3Awd25kQi8wNmhUKzF3eUVxZk5MWTk2WXF1aVpUWnpaR0gxdXJpOCtVNjlQSDUyWlZDT0VhNm1ocDFLZmtRazE3ZEdUMTZNVTF6clhncmRPYTdISjIwcS9jajZud3NwTWJrUU9XUVRJOEUyUnR6RVcwQnNrQWdEeDVyVzAvTFpVbjB6UHIxTmE3UVdkNnFyRkd5TGpnZUtUak1UTjI1ZVoxNjFwaFpnd2pESWV5dnhtQXNxQ2JZMk93QTdscnJ5WXE1UHc0dWNuRWRZT0psV1lBenhTSldyTGlBNXFtUXk2WUJ1bTRLaVJIVXRBc2xZcXpCRmUwS0FFS1dZRGNuc0YzdHlxamwrYWN0dU5jZVJmSnMxTXpKalFVS0EwcXBsSk5LZVhEcHpDNlZmR1l1SEtDWk16S3RGbU1vMlBTY0NpcUJXWUJkQUgyZGI0bndwSS8rSFgwcVF5c3BJS2tIWUlJN2dnOXdSM0I4SVZLMXRSNnVDcDVMNnFGam9OM0E5dC9id3Mxa3JzczBDelZtWUlxU1NjMUhKMmIwcU5saVRzbjRwS2VXTWZGWjBwTldDdlByNUNBMVdoNUFHV0tuVURFQkw4dTNqOE5LV3lHYW1YbHJGbFpGSmQ2Tk9YTkZZODNwZXZGVFIwRFBJL1ZsWGxqeFVuUWF0cUxPWUorMjNZRGYyK3JGYThaSmJrWm1sdk42ekhOVVpHSVNkdWZGV0JiaVBVQVNSTEZuZUNSaWtnaEZST25jRXV3YnFKK3RtMXJ0cmZkY2l5KzJ2YWpEMiszKzM1VWtTWTVBNCtVSnpVSXFpOGdac1FvN3RTRkhZOTJmZTlxS05uV000U04zZmh4VGpqc3kxQ0ZXYnIwVkt0eTQ4UUFkL1V2bS9scmQvYnRtUlBmNnZtUG1mbHdxRGRmZnZRTDFEUGwrSjBpNW4xQUhDOGdENHBqMXgzRlo5U2JUZmkvZGRyNmtwT2RFSUk5U0FNR1JuUnFNenV4OTJaaVdaai9BQ1NTZjdJZVlZWkIvd0FFWk15RDQvL0VBQlFSQVFBQUFBQUFBQUFBQUFBQUFBQUFBSkQvMmdBSUFRSUJBVDhBSEQvL3hBQVVFUUVBQUFBQUFBQUFBQUFBQUFBQUFBQ1EvOW9BQ0FFREFRRS9BQncvLzlrPVwiKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDRweCA5NHB4O1xufVxuLkNhbm9uLXdyYXBwZXIge1xuICB3aWR0aDogMTA2MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5DYW5vbl9fcWEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiA1ODBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5DYW5vbl9fbG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5DYW5vbl9fZGVzYyB7XG4gIHdpZHRoOiAzODBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDE3cHggYXV0byAwO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMjZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLkNhbm9uX19kZXNjLS1rZXJuIHtcbiAgd2lkdGg6IDQ4MHB4O1xufVxuLkNhbm9uX19wYWdlcyB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLkNhbm9uX19wYWdlcyBkaXYge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3JkZXI6IDJweCBzb2xpZCAjNjY2O1xufVxuLkNhbm9uX19wYWdlcyBkaXY6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLkNhbm9uX19wYWdlcyBkaXYuaXMtZmlsbGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2Njtcbn1cbi5DYW5vbl9fb3B0aW9ucyB7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjgwcHgpIHtcbiAgLkNhbm9uX19vcHRpb25zIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG4uQ2Fub25fX29wdGlvbiB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyNzBweDtcbiAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggMjlweDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5DYW5vbl9fb3B0aW9uLmlzLWNvcnJlY3Qge1xuICBjb2xvcjogIzAwYmUzNTtcbiAgYm9yZGVyLWNvbG9yOiAjMDBiZTM1O1xuICBvcGFjaXR5OiAxO1xufVxuLkNhbm9uX19vcHRpb24uaXMtY29ycmVjdDpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4uQ2Fub25fX29wdGlvbi5pcy1pbmNvcnJlY3Qge1xuICBjb2xvcjogI2ZmNGY0ZjtcbiAgYm9yZGVyLWNvbG9yOiAjZmY0ZjRmO1xuICBvcGFjaXR5OiAxO1xufVxuLkNhbm9uX19vcHRpb24uaXMtaW5jb3JyZWN0OmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2ODBweCkge1xuICAuQ2Fub25fX29wdGlvbiB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICB9XG4gIC5DYW5vbl9fb3B0aW9uOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbiAgLkNhbm9uX19vcHRpb246Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogNjBweDtcbiAgfVxufVxuLkNhbm9uX19vcHRpb24tc2VwIHtcbiAgbWFyZ2luOiAyMHB4IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2ODBweCkge1xuICAuQ2Fub25fX29wdGlvbi1zZXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5DYW5vbl9fb3B0aW9uLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLkNhbm9uX19vcHRpb24tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5DYW5vbl9fcmVzdWx0IHtcbiAgbWFyZ2luLXRvcDogNDZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDM3NXB4KSB7XG4gIC5DYW5vbl9fcmVzdWx0IHtcbiAgICBtYXJnaW4tdG9wOiA1NnB4O1xuICB9XG59XG4uQ2Fub25fX3Jlc3VsdC0ta2VybiB7XG4gIG1hcmdpbi10b3A6IDM2cHg7XG59XG4uQ2Fub25fX3Njb3JlIHtcbiAgY29sb3I6ICNmYWJmNDY7XG4gIGZvbnQtc2l6ZTogNThweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAzNzVweCkge1xuICAuQ2Fub25fX3Njb3JlIHtcbiAgICBmb250LXNpemU6IDcycHg7XG4gIH1cbn1cbi5DYW5vbl9fc2NvcmUtdGl0bGUge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjNlbTtcbn1cbi5DYW5vbl9fc2NvcmUtdGV4dCB7XG4gIG1hcmdpbi10b3A6IDIzcHg7XG4gIGNvbG9yOiAjOTk5O1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uQ2Fub25fX3Njb3JlLXRleHQtLXdoaXRlIHtcbiAgbWFyZ2luLXRvcDogMThweDtcbiAgY29sb3I6ICNmZmY7XG59XG4uQ2Fub25fX3NoYXJlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi5DYW5vbl9fc2hhcmUtLWtlcm4ge1xuICBtYXJnaW4tdG9wOiAxN3B4O1xufVxuLkNhbm9uX19yZXN0YXJ0LWJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiA1MnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuMjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cbi5DYW5vbl9fcmVzdGFydC1idG4gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5DYW5vbl9fcmVzdGFydC1idG4gc3ZnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFweDtcbiAgcmlnaHQ6IDA7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cbi5DYW5vbl9fcmVzdGFydC1idG46aG92ZXIge1xuICBvcGFjaXR5OiAwLjg7XG59XG4uQ2Fub25fX3Jlc3RhcnQtYnRuLS1rZXJuIHtcbiAgbWFyZ2luLXRvcDogNDNweDtcbn1cbi5DYW5vbl9fc3RyaW5nIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5DYW5vbi1zdHIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uQ2Fub24tc3RyIHNwYW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogNTAwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuLkNhbm9uLXN0cjo6YmVmb3JlLFxuLkNhbm9uLXN0cjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDUwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbn1cbi5DYW5vbi1zdHItLTEgc3BhbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uQ2Fub24tc3RyLS0xOjpiZWZvcmUge1xuICB0b3A6IC0ycHg7XG59XG4uQ2Fub24tc3RyLS0xOjphZnRlciB7XG4gIGJvdHRvbTogLTJweDtcbn1cbi5DYW5vbi1zdHItLTIgc3BhbiB7XG4gIHRvcDogMThweDtcbn1cbi5DYW5vbi1zdHItLTI6OmJlZm9yZSB7XG4gIHRvcDogMnB4O1xufVxuLkNhbm9uLXN0ci0tMjo6YWZ0ZXIge1xuICBib3R0b206IDEzcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjgwcHgpIHtcbiAgLkNhbm9uLXN0ci0tMiBzcGFuIHtcbiAgICB0b3A6IDI5cHg7XG4gIH1cbiAgLkNhbm9uLXN0ci0tMjo6YmVmb3JlIHtcbiAgICB0b3A6IDVweDtcbiAgfVxuICAuQ2Fub24tc3RyLS0yOjphZnRlciB7XG4gICAgYm90dG9tOiAyMnB4O1xuICB9XG59XG4uQ2Fub24tc3RyLS0zIHNwYW4ge1xuICB0b3A6IDEycHg7XG59XG4uQ2Fub24tc3RyLS0zOjpiZWZvcmUge1xuICB0b3A6IDJweDtcbn1cbi5DYW5vbi1zdHItLTM6OmFmdGVyIHtcbiAgYm90dG9tOiAxMnB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDY4MHB4KSB7XG4gIC5DYW5vbi1zdHItLTMgc3BhbiB7XG4gICAgdG9wOiAyMXB4O1xuICB9XG4gIC5DYW5vbi1zdHItLTM6OmFmdGVyIHtcbiAgICBib3R0b206IDIycHg7XG4gIH1cbn1cbi5DYW5vbi1zdHJfX3NhbXBsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGNvbG9yOiAjZWMzMTYzO1xufVxuLkNhbm9uLXN0cl9fc2FtcGxlIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cbi5DYW5vbi1zdHJfX3NhbXBsZS0tMSB7XG4gIHdpZHRoOiAyODFweDtcbiAgaGVpZ2h0OiA2NXB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDY4MHB4KSB7XG4gIC5DYW5vbi1zdHJfX3NhbXBsZS0tMSB7XG4gICAgd2lkdGg6IDM3MnB4O1xuICAgIGhlaWdodDogODZweDtcbiAgfVxufVxuLkNhbm9uLXN0cl9fc2FtcGxlLS0yIHtcbiAgd2lkdGg6IDI4MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjgwcHgpIHtcbiAgLkNhbm9uLXN0cl9fc2FtcGxlLS0yIHtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgaGVpZ2h0OiAxMDZweDtcbiAgfVxufVxuLkNhbm9uLXN0cl9fc2FtcGxlLS0zIHtcbiAgd2lkdGg6IDI4MHB4O1xuICBoZWlnaHQ6IDU3cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjgwcHgpIHtcbiAgLkNhbm9uLXN0cl9fc2FtcGxlLS0zIHtcbiAgICB3aWR0aDogNTAycHg7XG4gICAgaGVpZ2h0OiAxMDFweDtcbiAgfVxufVxuLkNhbm9uLXN0cl9fbGV0dGVycyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgY29sb3I6ICNmZmY7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uQ2Fub24tc3RyX19sZXR0ZXJzOjpiZWZvcmUsXG4uQ2Fub24tc3RyX19sZXR0ZXJzOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTAxJTtcbiAgYm90dG9tOiBjYWxjKDEwMCUgKyA4cHgpO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJjQUFBQWVDQVlBQUFESEpZVm9BQUFBQ1hCSVdYTUFBQllsQUFBV0pRRkpVaVR3QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBR2lTVVJCVkhnQjFWYnRjY0l3REZWQ0JtQUViMUFLREJBMllJUENCS1VUQUNNd1FXRUN1a0hULzhCNWhJekFBaVI5SW1sTzhlVkRYTWx4dkRzblowVjZrV1Zac2tjTkdBQkJFTHlsYVJwaWFqRDZHR2NNQzludWREcHRtK3k5R3RLKzcvdEx6L01XMUl3WU92UEQ0UkNweUprWTNuN0Rzd0hwTVRzZWp6dFg2THVDWHErM3J5RzJHQkcrblN1K2JjZmpjZWdLUzU0UGg4TVpsdm5wNkd3dWw4dktXbnVXZW5oeDJJelFpNkgzS3ZWS25rTjU2Y3pYV081Q0dqQjRJNU1rbVdBVnNSQWI3Tk5VNmhYa2lIVklXVVpjd1liWXFCWFZBRCtNUVRaM25La21oNkliNXcyMUlNOFN1YXFYU25MS2NwakV6eXpwSVBWTUhmbmQwU201TnhxTjlwU0Z4SkJZRmpiSDF1UzBpd0dWUXhyeGc4dERnUGUweXVMR0V5b1I1dStmNTQzNTQ4bjV0R0xNc2NrVFRIZWtSS0JSNGpyQ3h6MmZSc2d3enFMM05qdU41NUVnTG1Ta2dJYmN1QUtFcUsrdzA1R2pmaGZ0RHRYVHVLWDVQK1I4V2tNeC9Udk45eUYzbWtKTVNtanp2S2d4ZVZmUzFKemJ5Zmwyb0xTNVZzV1VPZ0JDdVg3dTJoSlJCK0JtNCtNaXc5Y0RiVE51QlhjdkVIL2d2dlAxQzVKenBmNktlT0ZiQUFBQUFFbEZUa1N1UW1DQ1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbi5DYW5vbi1zdHJfX2xldHRlcnMgc3ZnIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLkNhbm9uLXN0cl9fbGV0dGVycyBzdmcgcGF0aC5pcy1kcmFnZ2VkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBmaWxsOiAjZWMzMTYzO1xufVxuLkNhbm9uLXN0cl9fbGV0dGVycyBzdmcgcGF0aDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuLkNhbm9uLXN0cl9fbGV0dGVycy0tMSB7XG4gIHdpZHRoOiAyODFweDtcbiAgaGVpZ2h0OiA2NXB4O1xufVxuLkNhbm9uLXN0cl9fbGV0dGVycy0tMTo6YmVmb3JlIHtcbiAgbGVmdDogMTZweDtcbn1cbi5DYW5vbi1zdHJfX2xldHRlcnMtLTE6OmFmdGVyIHtcbiAgcmlnaHQ6IDI1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjgwcHgpIHtcbiAgLkNhbm9uLXN0cl9fbGV0dGVycy0tMSB7XG4gICAgd2lkdGg6IDM3MnB4O1xuICAgIGhlaWdodDogODZweDtcbiAgfVxuICAuQ2Fub24tc3RyX19sZXR0ZXJzLS0xOjpiZWZvcmUge1xuICAgIGxlZnQ6IDIxcHg7XG4gIH1cbiAgLkNhbm9uLXN0cl9fbGV0dGVycy0tMTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAzNXB4O1xuICB9XG59XG4uQ2Fub24tc3RyX19sZXR0ZXJzLS0yIHtcbiAgd2lkdGg6IDI4MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG4uQ2Fub24tc3RyX19sZXR0ZXJzLS0yOjpiZWZvcmUge1xuICBsZWZ0OiAxNXB4O1xufVxuLkNhbm9uLXN0cl9fbGV0dGVycy0tMjo6YWZ0ZXIge1xuICByaWdodDogMTJweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2ODBweCkge1xuICAuQ2Fub24tc3RyX19sZXR0ZXJzLS0yIHtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgaGVpZ2h0OiAxMDZweDtcbiAgfVxuICAuQ2Fub24tc3RyX19sZXR0ZXJzLS0yOjpiZWZvcmUge1xuICAgIGxlZnQ6IDMxcHg7XG4gIH1cbiAgLkNhbm9uLXN0cl9fbGV0dGVycy0tMjo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAyN3B4O1xuICB9XG59XG4uQ2Fub24tc3RyX19sZXR0ZXJzLS0zIHtcbiAgd2lkdGg6IDI4MHB4O1xuICBoZWlnaHQ6IDU3cHg7XG59XG4uQ2Fub24tc3RyX19sZXR0ZXJzLS0zOjpiZWZvcmUge1xuICBsZWZ0OiAxM3B4O1xufVxuLkNhbm9uLXN0cl9fbGV0dGVycy0tMzo6YWZ0ZXIge1xuICByaWdodDogMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA2ODBweCkge1xuICAuQ2Fub24tc3RyX19sZXR0ZXJzLS0zIHtcbiAgICB3aWR0aDogNTAycHg7XG4gICAgaGVpZ2h0OiAxMDFweDtcbiAgfVxuICAuQ2Fub24tc3RyX19sZXR0ZXJzLS0zOjpiZWZvcmUge1xuICAgIGxlZnQ6IDI3cHg7XG4gIH1cbiAgLkNhbm9uLXN0cl9fbGV0dGVycy0tMzo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAzMnB4O1xuICB9XG59XG4uQ2Fub25fX25vdGljZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IDQ1NXB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMTJweCBhdXRvIDA7XG4gIGNvbG9yOiAjNGM0YzRjO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDY4MHB4KSB7XG4gIC5DYW5vbl9fbm90aWNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxNDBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgfVxufVxuLkNhbm9uX19jb21wYXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICBib3R0b206IDE1MHB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgY29sb3I6ICNlYzMxNjM7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDY4MHB4KSB7XG4gIC5DYW5vbl9fY29tcGFyZSB7XG4gICAgYm90dG9tOiAxNzBweDtcbiAgfVxufVxuLkNhbm9uX19uZXh0LWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgYm90dG9tOiA1MHB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDI1MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMzMTYzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5AbWVkaWEgKGhvdmVyKSwgKG1pbi13aWR0aDogMCAwKSwgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICAuQ2Fub25fX25leHQtYnRuIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG4gIH1cbiAgLkNhbm9uX19uZXh0LWJ0bjpob3ZlciB7XG4gICAgY29sb3I6ICNlYzMxNjM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgfVxufVxuLkNhbm9uIC5saWtlbHktLWN1c3RvbSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5DYW5vbiAubGlrZWx5X193aWRnZXQge1xuICAtbXMtZmxleC1uZWdhdGl2ZTogMDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLkNhbm9uIC5saWtlbHlfX2NvdW50ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLkNhbm9uIC5saWtlbHlfX2ljb24gc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uQ2Fub24gLmxpa2VseV9fd2lkZ2V0IHtcbiAgbWluLXdpZHRoOiA1OHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGNvbG9yOiAjODA4MDgwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjODA4MDgwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuLkNhbm9uIC5saWtlbHlfX3dpZGdldDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uQ2Fub24gLmxpa2VseV9fd2lkZ2V0OmhvdmVyIHtcbiAgY29sb3I6ICMwMDA7XG4gIGJvcmRlci1jb2xvcjogIzgwODA4MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgwODA4MDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAzNzVweCkge1xuICAuQ2Fub24gLmxpa2VseV9fd2lkZ2V0Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDY4MHB4KSB7XG4gIC5DYW5vbiAubGlrZWx5X193aWRnZXQtLWZhY2Vib29rIHtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCAxMHB4O1xuICB9XG59XG4uQ2Fub24gLmxpa2VseV9fYnV0dG9uLS1mYWNlYm9vayB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNjgwcHgpIHtcbiAgLkNhbm9uIC5saWtlbHlfX2J1dHRvbi0tZmFjZWJvb2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uQ2Fub24gLmxpa2VseV9faWNvbiB7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLkNhbm9uIC5saWtlbHlfX2ljb24gc3ZnIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZmlsbDogY3VycmVudENvbG9yO1xufVxuLkNhbm9uIC5saWtlbHlfX2ljb24tLXZrb250YWt0ZSBzdmcge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDY4MHB4KSB7XG4gIC5DYW5vbiAubGlrZWx5X19pY29uLS1mYWNlYm9vayB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cbn1cbiIsIiJdKX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oZSl7dmFyIG49ZnVuY3Rpb24odCxlKXt2YXIgbj10WzFdfHwiIixyPXRbM107aWYoIXIpcmV0dXJuIG47aWYoZSYmImZ1bmN0aW9uIj09dHlwZW9mIGJ0b2Epe3ZhciBpPWZ1bmN0aW9uKHQpe3JldHVybiIvKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsIitidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh0KSkpKSsiICovIn0ociksYT1yLnNvdXJjZXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiIvKiMgc291cmNlVVJMPSIrci5zb3VyY2VSb290K3QrIiAqLyJ9KTtyZXR1cm5bbl0uY29uY2F0KGEpLmNvbmNhdChbaV0pLmpvaW4oIlxuIil9cmV0dXJuW25dLmpvaW4oIlxuIil9KGUsdCk7cmV0dXJuIGVbMl0/IkBtZWRpYSAiK2VbMl0rInsiK24rIn0iOm59KS5qb2luKCIiKX0sZS5pPWZ1bmN0aW9uKHQsbil7InN0cmluZyI9PXR5cGVvZiB0JiYodD1bW251bGwsdCwiIl1dKTtmb3IodmFyIHI9e30saT0wO2k8dGhpcy5sZW5ndGg7aSsrKXt2YXIgYT10aGlzW2ldWzBdOyJudW1iZXIiPT10eXBlb2YgYSYmKHJbYV09ITApfWZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBvPXRbaV07Im51bWJlciI9PXR5cGVvZiBvWzBdJiZyW29bMF1dfHwobiYmIW9bMl0/b1syXT1uOm4mJihvWzJdPSIoIitvWzJdKyIpIGFuZCAoIituKyIpIiksZS5wdXNoKG8pKX19LGV9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9e30saT1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGV9fShmdW5jdGlvbigpe3JldHVybiB3aW5kb3cmJmRvY3VtZW50JiZkb2N1bWVudC5hbGwmJiF3aW5kb3cuYXRvYn0pLGE9ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXJldHVybiB0KCk7aWYodm9pZCAwPT09ZVt0XSl7dmFyIG49ZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCl9LmNhbGwodGhpcyx0KTtpZih3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQmJm4gaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpdHJ5e249bi5jb250ZW50RG9jdW1lbnQuaGVhZH1jYXRjaCh0KXtuPW51bGx9ZVt0XT1ufXJldHVybiBlW3RdfX0oKSxvPW51bGwscz0wLGw9W10sYz1uKDE4KTtmdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0sYT1yW2kuaWRdO2lmKGEpe2EucmVmcysrO2Zvcih2YXIgbz0wO288YS5wYXJ0cy5sZW5ndGg7bysrKWEucGFydHNbb10oaS5wYXJ0c1tvXSk7Zm9yKDtvPGkucGFydHMubGVuZ3RoO28rKylhLnBhcnRzLnB1c2godihpLnBhcnRzW29dLGUpKX1lbHNle3ZhciBzPVtdO2ZvcihvPTA7bzxpLnBhcnRzLmxlbmd0aDtvKyspcy5wdXNoKHYoaS5wYXJ0c1tvXSxlKSk7cltpLmlkXT17aWQ6aS5pZCxyZWZzOjEscGFydHM6c319fX1mdW5jdGlvbiB1KHQsZSl7Zm9yKHZhciBuPVtdLHI9e30saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldLG89ZS5iYXNlP2FbMF0rZS5iYXNlOmFbMF0scz17Y3NzOmFbMV0sbWVkaWE6YVsyXSxzb3VyY2VNYXA6YVszXX07cltvXT9yW29dLnBhcnRzLnB1c2gocyk6bi5wdXNoKHJbb109e2lkOm8scGFydHM6W3NdfSl9cmV0dXJuIG59ZnVuY3Rpb24gZCh0LGUpe3ZhciBuPWEodC5pbnNlcnRJbnRvKTtpZighbil0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0SW50bycgcGFyYW1ldGVyIGlzIGludmFsaWQuIik7dmFyIHI9bFtsLmxlbmd0aC0xXTtpZigidG9wIj09PXQuaW5zZXJ0QXQpcj9yLm5leHRTaWJsaW5nP24uaW5zZXJ0QmVmb3JlKGUsci5uZXh0U2libGluZyk6bi5hcHBlbmRDaGlsZChlKTpuLmluc2VydEJlZm9yZShlLG4uZmlyc3RDaGlsZCksbC5wdXNoKGUpO2Vsc2UgaWYoImJvdHRvbSI9PT10Lmluc2VydEF0KW4uYXBwZW5kQ2hpbGQoZSk7ZWxzZXtpZigib2JqZWN0IiE9dHlwZW9mIHQuaW5zZXJ0QXR8fCF0Lmluc2VydEF0LmJlZm9yZSl0aHJvdyBuZXcgRXJyb3IoIltTdHlsZSBMb2FkZXJdXG5cbiBJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgJ2luc2VydEF0JyAoJ29wdGlvbnMuaW5zZXJ0QXQnKSBmb3VuZC5cbiBNdXN0IGJlICd0b3AnLCAnYm90dG9tJywgb3IgT2JqZWN0LlxuIChodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay1jb250cmliL3N0eWxlLWxvYWRlciNpbnNlcnRhdClcbiIpO3ZhciBpPWEodC5pbnNlcnRJbnRvKyIgIit0Lmluc2VydEF0LmJlZm9yZSk7bi5pbnNlcnRCZWZvcmUoZSxpKX19ZnVuY3Rpb24gaCh0KXtpZihudWxsPT09dC5wYXJlbnROb2RlKXJldHVybiExO3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KTt2YXIgZT1sLmluZGV4T2YodCk7ZT49MCYmbC5zcGxpY2UoZSwxKX1mdW5jdGlvbiBmKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7cmV0dXJuIHZvaWQgMD09PXQuYXR0cnMudHlwZSYmKHQuYXR0cnMudHlwZT0idGV4dC9jc3MiKSxtKGUsdC5hdHRycyksZCh0LGUpLGV9ZnVuY3Rpb24gbSh0LGUpe09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24obil7dC5zZXRBdHRyaWJ1dGUobixlW25dKX0pfWZ1bmN0aW9uIHYodCxlKXt2YXIgbixyLGksYTtpZihlLnRyYW5zZm9ybSYmdC5jc3Mpe2lmKCEoYT1lLnRyYW5zZm9ybSh0LmNzcykpKXJldHVybiBmdW5jdGlvbigpe307dC5jc3M9YX1pZihlLnNpbmdsZXRvbil7dmFyIGw9cysrO249b3x8KG89ZihlKSkscj1nLmJpbmQobnVsbCxuLGwsITEpLGk9Zy5iaW5kKG51bGwsbixsLCEwKX1lbHNlIHQuc291cmNlTWFwJiYiZnVuY3Rpb24iPT10eXBlb2YgVVJMJiYiZnVuY3Rpb24iPT10eXBlb2YgVVJMLmNyZWF0ZU9iamVjdFVSTCYmImZ1bmN0aW9uIj09dHlwZW9mIFVSTC5yZXZva2VPYmplY3RVUkwmJiJmdW5jdGlvbiI9PXR5cGVvZiBCbG9iJiYiZnVuY3Rpb24iPT10eXBlb2YgYnRvYT8obj1mdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7cmV0dXJuIHZvaWQgMD09PXQuYXR0cnMudHlwZSYmKHQuYXR0cnMudHlwZT0idGV4dC9jc3MiKSx0LmF0dHJzLnJlbD0ic3R5bGVzaGVldCIsbShlLHQuYXR0cnMpLGQodCxlKSxlfShlKSxyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uLmNzcyxpPW4uc291cmNlTWFwLGE9dm9pZCAwPT09ZS5jb252ZXJ0VG9BYnNvbHV0ZVVybHMmJmk7KGUuY29udmVydFRvQWJzb2x1dGVVcmxzfHxhKSYmKHI9YyhyKSk7aSYmKHIrPSJcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsIitidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShpKSkpKSsiICovIik7dmFyIG89bmV3IEJsb2IoW3JdLHt0eXBlOiJ0ZXh0L2NzcyJ9KSxzPXQuaHJlZjt0LmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChvKSxzJiZVUkwucmV2b2tlT2JqZWN0VVJMKHMpfS5iaW5kKG51bGwsbixlKSxpPWZ1bmN0aW9uKCl7aChuKSxuLmhyZWYmJlVSTC5yZXZva2VPYmplY3RVUkwobi5ocmVmKX0pOihuPWYoZSkscj1mdW5jdGlvbih0LGUpe3ZhciBuPWUuY3NzLHI9ZS5tZWRpYTtyJiZ0LnNldEF0dHJpYnV0ZSgibWVkaWEiLHIpO2lmKHQuc3R5bGVTaGVldCl0LnN0eWxlU2hlZXQuY3NzVGV4dD1uO2Vsc2V7Zm9yKDt0LmZpcnN0Q2hpbGQ7KXQucmVtb3ZlQ2hpbGQodC5maXJzdENoaWxkKTt0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG4pKX19LmJpbmQobnVsbCxuKSxpPWZ1bmN0aW9uKCl7aChuKX0pO3JldHVybiByKHQpLGZ1bmN0aW9uKGUpe2lmKGUpe2lmKGUuY3NzPT09dC5jc3MmJmUubWVkaWE9PT10Lm1lZGlhJiZlLnNvdXJjZU1hcD09PXQuc291cmNlTWFwKXJldHVybjtyKHQ9ZSl9ZWxzZSBpKCl9fXQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgREVCVUcmJkRFQlVHJiYib2JqZWN0IiE9dHlwZW9mIGRvY3VtZW50KXRocm93IG5ldyBFcnJvcigiVGhlIHN0eWxlLWxvYWRlciBjYW5ub3QgYmUgdXNlZCBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50Iik7KGU9ZXx8e30pLmF0dHJzPSJvYmplY3QiPT10eXBlb2YgZS5hdHRycz9lLmF0dHJzOnt9LGUuc2luZ2xldG9ufHwiYm9vbGVhbiI9PXR5cGVvZiBlLnNpbmdsZXRvbnx8KGUuc2luZ2xldG9uPWkoKSksZS5pbnNlcnRJbnRvfHwoZS5pbnNlcnRJbnRvPSJoZWFkIiksZS5pbnNlcnRBdHx8KGUuaW5zZXJ0QXQ9ImJvdHRvbSIpO3ZhciBuPXUodCxlKTtyZXR1cm4gcChuLGUpLGZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBvPW5bYV07KHM9cltvLmlkXSkucmVmcy0tLGkucHVzaChzKX10JiZwKHUodCxlKSxlKTtmb3IoYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgcztpZigwPT09KHM9aVthXSkucmVmcyl7Zm9yKHZhciBsPTA7bDxzLnBhcnRzLmxlbmd0aDtsKyspcy5wYXJ0c1tsXSgpO2RlbGV0ZSByW3MuaWRdfX19fTt2YXIgQT1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB0W2VdPW4sdC5maWx0ZXIoQm9vbGVhbikuam9pbigiXG4iKX19KCk7ZnVuY3Rpb24gZyh0LGUsbixyKXt2YXIgaT1uPyIiOnIuY3NzO2lmKHQuc3R5bGVTaGVldCl0LnN0eWxlU2hlZXQuY3NzVGV4dD1BKGUsaSk7ZWxzZXt2YXIgYT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShpKSxvPXQuY2hpbGROb2RlcztvW2VdJiZ0LnJlbW92ZUNoaWxkKG9bZV0pLG8ubGVuZ3RoP3QuaW5zZXJ0QmVmb3JlKGEsb1tlXSk6dC5hcHBlbmRDaGlsZChhKX19fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LmxvY2F0aW9uO2lmKCFlKXRocm93IG5ldyBFcnJvcigiZml4VXJscyByZXF1aXJlcyB3aW5kb3cubG9jYXRpb24iKTtpZighdHx8InN0cmluZyIhPXR5cGVvZiB0KXJldHVybiB0O3ZhciBuPWUucHJvdG9jb2wrIi8vIitlLmhvc3Qscj1uK2UucGF0aG5hbWUucmVwbGFjZSgvXC9bXlwvXSokLywiLyIpO3JldHVybiB0LnJlcGxhY2UoL3VybFxzKlwoKCg/OlteKShdfFwoKD86W14pKF0rfFwoW14pKF0qXCkpKlwpKSopXCkvZ2ksZnVuY3Rpb24odCxlKXt2YXIgaSxhPWUudHJpbSgpLnJlcGxhY2UoL14iKC4qKSIkLyxmdW5jdGlvbih0LGUpe3JldHVybiBlfSkucmVwbGFjZSgvXicoLiopJyQvLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KTtyZXR1cm4vXigjfGRhdGE6fGh0dHA6XC9cL3xodHRwczpcL1wvfGZpbGU6XC9cL1wvfFxzKiQpL2kudGVzdChhKT90OihpPTA9PT1hLmluZGV4T2YoIi8vIik/YTowPT09YS5pbmRleE9mKCIvIik/bithOnIrYS5yZXBsYWNlKC9eXC5cLy8sIiIpLCJ1cmwoIitKU09OLnN0cmluZ2lmeShpKSsiKSIpfSl9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3JldHVybiBuJiZ0KGUucHJvdG90eXBlLG4pLHImJnQoZSxyKSxlfX0oKSxpPXAobig1KSksYT1uKDMpLG89ZnVuY3Rpb24odCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKG51bGwhPXQpZm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfShuKDgpKSxzPW4oMTApLGw9cChuKDM4KSksYz1wKG4oMTEpKTtmdW5jdGlvbiBwKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX12YXIgdT0iQ2Fub24iLGQ9e30saD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9OyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpO3ZhciBuPWZ1bmN0aW9uKHQsZSl7aWYoIXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4hZXx8Im9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZT90OmV9KHRoaXMsKGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkpLmNhbGwodGhpcykpO3JldHVybiBPYmplY3QuYXNzaWduKG4ucGFyYW1zLHQpLG4uc2F2ZVBhcmFtcygpLGwuZGVmYXVsdCYmdC5kYXRhJiZPYmplY3QuYXNzaWduKGwuZGVmYXVsdCx0LmRhdGEpLG4uaW5pdCgpLG59cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgIit0eXBlb2YgZSk7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksZSYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxlKTp0Ll9fcHJvdG9fXz1lKX0oZSxpLmRlZmF1bHQpLHIoZSxbe2tleToiY3JlYXRlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7ZC5xYT0oMCxhLm1ha2VFbGVtZW50KSgiZGl2Iix1KyJfX3FhIiksZC5sb2dvPSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLHUrIl9fbG9nbyIse2lubmVySFRNTDpjLmRlZmF1bHQudGVzdH0pLGQuZGVzYz0oMCxhLm1ha2VFbGVtZW50KSgiZGl2Iix1KyJfX2Rlc2MiLHt0ZXh0Q29udGVudDpsLmRlZmF1bHQuZGVzY3JpcHRpb259KSxkLnBhZ2VzPSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLHUrIl9fcGFnZXMiKSxkLm9wdGlvbnM9KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsdSsiX19vcHRpb25zIiksZC5vcHRpb24xPSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLHUrIl9fb3B0aW9uIiksZC5vcHRpb24yPSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLHUrIl9fb3B0aW9uIiksZC5vcHRpb24xLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLm1ha2VBbnN3ZXIuYmluZCh0aGlzKSksZC5vcHRpb24yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLm1ha2VBbnN3ZXIuYmluZCh0aGlzKSksZC5vcHRpb25TZXA9KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsdSsiX19vcHRpb24tc2VwIix7dGV4dENvbnRlbnQ6ItC40LvQuCJ9KSxkLm9wdGlvbnNBcnI9W10sZC5vcHRpb25zQXJyLnB1c2goZC5vcHRpb24xKSxkLm9wdGlvbnNBcnIucHVzaChkLm9wdGlvbjIpLGQucmVzdWx0PSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLFt1KyJfX3Jlc3VsdCIsdSsiX19yZXN1bHQtLWtlcm4iXSksZC5yU2NvcmU9KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsdSsiX19zY29yZSIpLGQuclNjb3JlVGl0bGU9KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsdSsiX19zY29yZS10aXRsZSIpLGQuclNjb3JlVGV4dD0oMCxhLm1ha2VFbGVtZW50KSgiZGl2IixbdSsiX19zY29yZS10ZXh0Iix1KyJfX3Njb3JlLXRleHQtLXdoaXRlIl0pLGQuclNoYXJlPSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLFt1KyJfX3NoYXJlIix1KyJfX3NoYXJlLS1rZXJuIl0pLGQuclJlc3RhcnRCdG49KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsW3UrIl9fcmVzdGFydC1idG4iLHUrIl9fcmVzdGFydC1idG4tLWtlcm4iXSx7aW5uZXJIVE1MOiI8c3Bhbj7Qn9GA0L7QudGC0Lgg0LXRidC1INGA0LDQtzwvc3Bhbj4iK2MuZGVmYXVsdC5yZWZyZXNoLGRhdGE6e2NsaWNrOiJyZXN0YXJ0In19KSxkLnJlc3VsdC5hcHBlbmRDaGlsZChkLnJTY29yZSksZC5yZXN1bHQuYXBwZW5kQ2hpbGQoZC5yU2NvcmVUaXRsZSksZC5yZXN1bHQuYXBwZW5kQ2hpbGQoZC5yU2NvcmVUZXh0KSxkLnJlc3VsdC5hcHBlbmRDaGlsZChkLnJTaGFyZSksZC5yZXN1bHQuYXBwZW5kQ2hpbGQoZC5yUmVzdGFydEJ0biksZC5vcHRpb25zLmFwcGVuZENoaWxkKGQub3B0aW9uMSksZC5vcHRpb25zLmFwcGVuZENoaWxkKGQub3B0aW9uU2VwKSxkLm9wdGlvbnMuYXBwZW5kQ2hpbGQoZC5vcHRpb24yKSxkLnFhLmFwcGVuZENoaWxkKGQubG9nbyksZC5xYS5hcHBlbmRDaGlsZChkLmRlc2MpLGQucWEuYXBwZW5kQ2hpbGQoZC5wYWdlcyksZC5xYS5hcHBlbmRDaGlsZChkLm9wdGlvbnMpfX0se2tleToibWFrZVBhZ2VzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7KDAsYS5yZW1vdmVDaGlsZHJlbikoZC5wYWdlcyksbC5kZWZhdWx0LnF1ZXN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGUsbil7dmFyIHI9KDAsYS5tYWtlRWxlbWVudCkoImRpdiIpO248PXQuYWN0aXZlSW5kZXgmJnIuY2xhc3NMaXN0LmFkZCgiaXMtZmlsbGVkIiksZC5wYWdlcy5hcHBlbmRDaGlsZChyKX0pfX0se2tleToibWFrZU5leHRRdWVzdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1sLmRlZmF1bHQucXVlc3Rpb25zW3RoaXMuYWN0aXZlSW5kZXhdO3RoaXMubWFrZVBhZ2VzKCk7dmFyIGU9dC5vcHRpb25zLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiB0LmlkPWUsdH0pOygwLHMuc2h1ZmZsZSkoZSksZS5mb3JFYWNoKGZ1bmN0aW9uKGUsbil7ZC5vcHRpb25zQXJyW25dLmNsYXNzTGlzdC5yZW1vdmUoImlzLWNvcnJlY3QiKSxkLm9wdGlvbnNBcnJbbl0uY2xhc3NMaXN0LnJlbW92ZSgiaXMtaW5jb3JyZWN0IiksZC5vcHRpb25zQXJyW25dLmRhdGFzZXQuaWQ9ZS5pZCxkLm9wdGlvbnNBcnJbbl0uaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSInK3UrJ19fb3B0aW9uLXRpdGxlIiBzdHlsZT0iJytlLnRpdGxlU3R5bGUrJyI+Jyt0LnRpdGxlKyc8L2Rpdj48ZGl2IGNsYXNzPSInK3UrJ19fb3B0aW9uLXRleHQiIHN0eWxlPSInK3QudGV4dFN0eWxlKyciPicrdC50ZXh0KyI8L2Rpdj4ifSl9fSx7a2V5OiJtYWtlQW5zd2VyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLmluQW5zd2VyKXt0aGlzLmluQW5zd2VyPSEwO3ZhciBuPXQuY3VycmVudFRhcmdldCxyPW4uZGF0YXNldC5pZDtsLmRlZmF1bHQucXVlc3Rpb25zW3RoaXMuYWN0aXZlSW5kZXhdLm9wdGlvbnNbcl0uaXNDb3JyZWN0Pyh0aGlzLmNvcnJlY3RBbnN3ZXJzKyssbi5jbGFzc0xpc3QuYWRkKCJpcy1jb3JyZWN0IikpOm4uY2xhc3NMaXN0LmFkZCgiaXMtaW5jb3JyZWN0Iiksc2V0VGltZW91dChmdW5jdGlvbigpe2UuaW5BbnN3ZXI9ITEsZS5hY3RpdmVJbmRleDxsLmRlZmF1bHQucXVlc3Rpb25zLmxlbmd0aC0xPyhlLmFjdGl2ZUluZGV4KyssZS5tYWtlTmV4dFF1ZXN0aW9uKCkpOmUubWFrZVJlc3VsdCgpfSwxZTMpfX19LHtrZXk6Im1ha2VSZXN1bHQiLHZhbHVlOmZ1bmN0aW9uKCl7ZC5xYS5yZW1vdmVDaGlsZChkLmRlc2MpLGQucWEucmVtb3ZlQ2hpbGQoZC5wYWdlcyksZC5xYS5yZW1vdmVDaGlsZChkLm9wdGlvbnMpLGQuclNjb3JlLmlubmVySFRNTD10aGlzLmNvcnJlY3RBbnN3ZXJzKyIg0LjQtyAiK2wuZGVmYXVsdC5xdWVzdGlvbnMubGVuZ3RoLGQuclNjb3JlVGl0bGUuaW5uZXJIVE1MPSLQnNC+0Lkg0YPRgNC+0LLQtdC90Yw6PGJyPiIrbC5kZWZhdWx0LnJlc3VsdHNbdGhpcy5jb3JyZWN0QW5zd2Vyc10ubGV2ZWwsZC5yU2NvcmVUZXh0LmlubmVySFRNTD1sLmRlZmF1bHQucmVzdWx0c1t0aGlzLmNvcnJlY3RBbnN3ZXJzXS50ZXh0LGQucWEuYXBwZW5kQ2hpbGQoZC5yZXN1bHQpLCgwLGEucmVtb3ZlQ2hpbGRyZW4pKGQuclNoYXJlKSxvLm1ha2UoZC5yU2hhcmUse3VybDp0aGlzLnBhcmFtcy5zaGFyZS51cmwrdGhpcy5jb3JyZWN0QW5zd2Vycyx0aXRsZTp0aGlzLnBhcmFtcy5zaGFyZS50aXRsZSx0d2l0dGVyOnRoaXMucGFyYW1zLnNoYXJlLnRpdGxlfSl9fSx7a2V5OiJyZXN0YXJ0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYWN0aXZlSW5kZXg9MCx0aGlzLmNvcnJlY3RBbnN3ZXJzPTAsZC5xYS5yZW1vdmVDaGlsZChkLnJlc3VsdCksZC5xYS5hcHBlbmRDaGlsZChkLmRlc2MpLGQucWEuYXBwZW5kQ2hpbGQoZC5wYWdlcyksZC5xYS5hcHBlbmRDaGlsZChkLm9wdGlvbnMpLHRoaXMubWFrZU5leHRRdWVzdGlvbigpfX0se2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZUluZGV4PTAsdGhpcy5jb3JyZWN0QW5zd2Vycz0wLHRoaXMuY3JlYXRlRWxlbWVudHMoKSwoMCxhLnJlbW92ZUNoaWxkcmVuKSh0aGlzLmNvbnRhaW5lciksdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQoZC5xYSksdGhpcy5tYWtlTmV4dFF1ZXN0aW9uKCksdGhpcy5wYXJhbXMuc2hhcmU9dGhpcy5wYXJhbXMuc2hhcmV8fHt9fX1dKSxlfSgpO2UuZGVmYXVsdD1ofSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigyMSksaT1uKDApLGE9bigyKSxvPW4oMSkscz1mdW5jdGlvbih0LGUpe2U9ZXx8e307dmFyIG49dFtpLm5hbWVdO3JldHVybiBuP24udXBkYXRlKGUpOnRbaS5uYW1lXT1uZXcgcih0LGEubWVyZ2Uoe30scy5kZWZhdWx0cyxlLGEuYm9vbHModCkpKSxufTtzLmluaXRpYXRlPXMuaW5pdGF0ZT1mdW5jdGlvbigpe3ZhciB0PW8uZmluZEFsbCgiLiIraS5uYW1lKTthLnRvQXJyYXkodCkuZm9yRWFjaChzKX0scy5kZWZhdWx0cz17Y291bnRlcnM6ITAsdGltZW91dDoxZTMsemVyb2VzOiExLHRpdGxlOmRvY3VtZW50LnRpdGxlLHdhaXQ6NTAwLHVybDp3aW5kb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKHdpbmRvdy5sb2NhdGlvbi5oYXNoLCIiKX0sdC5leHBvcnRzPXN9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDIyKSxpPShuKDQpLG4oMCkpLGE9bigyKSxvPW4oMSkscz1uKDkpO2Z1bmN0aW9uIGwodCxlKXt0aGlzLmlzU21hcnRPcmRlcj12b2lkIDAhPT10LmRhdGFzZXQuc21hcnQsdGhpcy5jb250YWluZXI9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLmNvdW50ZXJzTGVmdD0wLHRoaXMuYnV0dG9ucz1bXSx0aGlzLm51bWJlcj0wLHRoaXMuaW5pdCgpfWwucHJvdG90eXBlPXtyZW9yZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXMuZ2V0SXRlbShpLnN0b3JhZ2VLZXkpO2UmJihlLnJldmVyc2UoKSxlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9by5maW5kKCIuIit0KTtlJiZlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsZS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfSkpfSxpbml0OmZ1bmN0aW9uKCl7dmFyIHQ9YS50b0FycmF5KHRoaXMuY29udGFpbmVyLmNoaWxkcmVuKTtvLmlzTW9iaWxlKCkmJnRoaXMuaXNTbWFydE9yZGVyJiZ0aGlzLnJlb3JkZXIodCksdC5mb3JFYWNoKHRoaXMuYWRkQnV0dG9uLmJpbmQodGhpcykpLHRoaXMub3B0aW9ucy5jb3VudGVycz8odGhpcy50aW1lcj1zZXRUaW1lb3V0KHRoaXMuYXBwZWFyLmJpbmQodGhpcyksdGhpcy5vcHRpb25zLndhaXQpLHRoaXMudGltZW91dD1zZXRUaW1lb3V0KHRoaXMucmVhZHkuYmluZCh0aGlzKSx0aGlzLm9wdGlvbnMudGltZW91dCkpOnRoaXMuYXBwZWFyKCksYS5mbGV4Ym94U3VwcG9ydCh0aGlzLmNvbnRhaW5lcixpLm5hbWUpfSxhZGRCdXR0b246ZnVuY3Rpb24odCl7dmFyIGU9bmV3IHIodCx0aGlzLHRoaXMub3B0aW9ucyk7dGhpcy5idXR0b25zLnB1c2goZSksZS5vcHRpb25zLmNvdW50ZXJVcmwmJnRoaXMuY291bnRlcnNMZWZ0Kyt9LHVwZGF0ZTpmdW5jdGlvbih0KXsodC5mb3JjZVVwZGF0ZXx8dC51cmwhPT10aGlzLm9wdGlvbnMudXJsKSYmKHRoaXMuY291bnRlcnNMZWZ0PXRoaXMuYnV0dG9ucy5sZW5ndGgsdGhpcy5udW1iZXI9MCx0aGlzLmJ1dHRvbnMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnVwZGF0ZSh0KX0pKX0sdXBkYXRlQ291bnRlcjpmdW5jdGlvbih0LGUpe2UmJih0aGlzLm51bWJlcis9ZSksdGhpcy5jb3VudGVyc0xlZnQtLSwwPT09dGhpcy5jb3VudGVyc0xlZnQmJih0aGlzLmFwcGVhcigpLHRoaXMucmVhZHkoKSl9LGFwcGVhcjpmdW5jdGlvbigpe3RoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoaS5uYW1lKyItLXZpc2libGUiKX0scmVhZHk6ZnVuY3Rpb24oKXt0aGlzLnRpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KSx0aGlzLmNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKGkubmFtZSsiLS1yZWFkeSIpKX19LHQuZXhwb3J0cz1sfSxmdW5jdGlvbih0LGUsbil7dmFyIHI9big0KSxpPW4oMCksYT1uKDM2KSxvPW4oMikscz1uKDEpLGw9big5KSxjPSc8c3BhbiBjbGFzcz0ie2NsYXNzTmFtZX0iPntjb250ZW50fTwvc3Bhbj4nO2Z1bmN0aW9uIHAodCxlLG4pe3RoaXMud2lkZ2V0PXQsdGhpcy5saWtlbHk9ZSx0aGlzLm9wdGlvbnM9by5tZXJnZShuKSx0aGlzLmluaXQoKX1wLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbigpe3RoaXMuZGV0ZWN0U2VydmljZSgpLHRoaXMuZGV0ZWN0UGFyYW1zKCksdGhpcy5zZXJ2aWNlJiYodGhpcy5pbml0SHRtbCgpLHNldFRpbWVvdXQodGhpcy5pbml0Q291bnRlci5iaW5kKHRoaXMpLDApKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPSIuIitpLnByZWZpeCsiY291bnRlciI7Y291bnRlcnM9cy5maW5kQWxsKGUsdGhpcy53aWRnZXQpLG8uZXh0ZW5kKHRoaXMub3B0aW9ucyxvLm1lcmdlKHtmb3JjZVVwZGF0ZTohMX0sdCkpLG8udG9BcnJheShjb3VudGVycykuZm9yRWFjaChmdW5jdGlvbih0KXt0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9KSx0aGlzLmluaXRDb3VudGVyKCl9LGRldGVjdFNlcnZpY2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLndpZGdldCxlPW8uZ2V0RGF0YXNldCh0KS5zZXJ2aWNlO2lmKCFlKXtmb3IodmFyIG49dC5jbGFzc05hbWUuc3BsaXQoIiAiKSxpPTA7aTxuLmxlbmd0aCYmIShuW2ldaW4gcik7aSsrKTtlPW5baV19ZSYmKHRoaXMuc2VydmljZT1lLG8uZXh0ZW5kKHRoaXMub3B0aW9ucyxyW2VdKSl9LGRldGVjdFBhcmFtczpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucyxlPW8uZ2V0RGF0YXNldCh0aGlzLndpZGdldCk7aWYoZS5jb3VudGVyKXt2YXIgbj1wYXJzZUludChlLmNvdW50ZXIsMTApO2lzTmFOKG4pP3QuY291bnRlclVybD1lLmNvdW50ZXI6dC5jb3VudGVyTnVtYmVyPW59dC50aXRsZT1lLnRpdGxlfHx0LnRpdGxlLHQudXJsPWUudXJsfHx0LnVybH0saW5pdEh0bWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMsZT10aGlzLndpZGdldCxuPWUuaW5uZXJIVE1MO2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuY2xpY2suYmluZCh0aGlzKSksZS5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuc2VydmljZSksZS5jbGFzc05hbWUrPSIgIit0aGlzLmNsYXNzTmFtZSgid2lkZ2V0Iik7dmFyIHI9by50ZW1wbGF0ZShjLHtjbGFzc05hbWU6dGhpcy5jbGFzc05hbWUoImJ1dHRvbiIpLGNvbnRlbnQ6bn0pLGk9by50ZW1wbGF0ZShjLHtjbGFzc05hbWU6dGhpcy5jbGFzc05hbWUoImljb24iKSxjb250ZW50OnMud3JhcFNWRyh0LnN2Z2kpfSk7ZS5pbm5lckhUTUw9aStyfSxpbml0Q291bnRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9uczt0LmNvdW50ZXJzJiZ0LmNvdW50ZXJOdW1iZXI/dGhpcy51cGRhdGVDb3VudGVyKHQuY291bnRlck51bWJlcik6dC5jb3VudGVyVXJsJiZhKHRoaXMuc2VydmljZSx0LnVybCx0KSh0aGlzLnVwZGF0ZUNvdW50ZXIuYmluZCh0aGlzKSl9LGNsYXNzTmFtZTpmdW5jdGlvbih0KXt2YXIgZT1pLnByZWZpeCt0O3JldHVybiBlKyIgIitlKyItLSIrdGhpcy5zZXJ2aWNlfSx1cGRhdGVDb3VudGVyOmZ1bmN0aW9uKHQpe3Q9cGFyc2VJbnQodCwxMCl8fDA7dmFyIGU9cy5maW5kKCIuIitpLm5hbWUrIl9fY291bnRlciIsdGhpcy53aWRnZXQpO2UmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKTt2YXIgbj17Y2xhc3NOYW1lOnRoaXMuY2xhc3NOYW1lKCJjb3VudGVyIiksY29udGVudDp0fTt0fHx0aGlzLm9wdGlvbnMuemVyb2VzfHwobi5jbGFzc05hbWUrPSIgIitpLnByZWZpeCsiY291bnRlci0tZW1wdHkiLG4uY29udGVudD0iIiksdGhpcy53aWRnZXQuYXBwZW5kQ2hpbGQocy5jcmVhdGVOb2RlKG8udGVtcGxhdGUoYyxuKSkpLHRoaXMubGlrZWx5LnVwZGF0ZUNvdW50ZXIodGhpcy5zZXJ2aWNlLHQpfSxjbGljazpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucztpZigibW9yZSI9PXRoaXMuc2VydmljZSl0aGlzLndpZGdldC5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiKSx0aGlzLndpZGdldC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUodGhpcy5vcHRpb25zLmNsYXNzTmFtZSk7ZWxzZSBpZigiZW1haWwiPT10aGlzLnNlcnZpY2Upe3ZhciBlPW8ubWFrZVVybCh0LnBvcHVwVXJsLHt1cmw6dC51cmwsdGl0bGU6dC50aXRsZX0pO3dpbmRvdy5sb2NhdGlvbj1lLHRoaXMucmVtZW1iZXJDbGlja2VkKHRoaXMuc2VydmljZSl9ZWxzZSBpZih0LmNsaWNrLmNhbGwodGhpcykpe3ZhciBuPXRoaXMubGlrZWx5LmNvbnRhaW5lci5kYXRhc2V0LnR3aXR0ZXIscj10aGlzLmxpa2VseS5jb250YWluZXIuZGF0YXNldC50d2l0dGVyVXJsLGE9by5tYWtlVXJsKHQucG9wdXBVcmwse3VybDoidHdpdHRlciI9PT10aGlzLnNlcnZpY2UmJiIiIT09ciYmdm9pZCAwIT09cj9yOnQudXJsLHRpdGxlOiJ0d2l0dGVyIj09PXRoaXMuc2VydmljZSYmIiIhPT1uJiZ2b2lkIDAhPT1uP246dC50aXRsZX0pO3Mub3BlblBvcHVwKHRoaXMuYWRkQWRkaXRpb25hbFBhcmFtc1RvVXJsKGEpLGkucHJlZml4K3RoaXMuc2VydmljZSx0LnBvcHVwV2lkdGgsdC5wb3B1cEhlaWdodCksdGhpcy5yZW1lbWJlckNsaWNrZWQodGhpcy5zZXJ2aWNlKX1yZXR1cm4hMX0sYWRkQWRkaXRpb25hbFBhcmFtc1RvVXJsOmZ1bmN0aW9uKHQpe3ZhciBlPW8ucXVlcnkoby5tZXJnZSh0aGlzLndpZGdldC5kYXRhc2V0LHRoaXMub3B0aW9ucy5kYXRhKSksbj0tMT09PXQuaW5kZXhPZigiPyIpPyI/IjoiJiI7cmV0dXJuIiI9PT1lP3Q6dCtuK2V9LHJlbWVtYmVyQ2xpY2tlZDpmdW5jdGlvbih0KXt2YXIgZT1sLmdldEl0ZW0oaS5zdG9yYWdlS2V5KXx8W10sbj1lLmluZGV4T2YodCk7LTEhPT1uJiZlLnNwbGljZShuLDEpLGUuc3BsaWNlKDAsMCx0KSxsLnNldEl0ZW0oaS5zdG9yYWdlS2V5LGUpfX0sdC5leHBvcnRzPXB9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDEpLGk9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3IuZ2V0SlNPTih0LGZ1bmN0aW9uKHQpe3RyeXsiZnVuY3Rpb24iPT10eXBlb2Ygbi5jb252ZXJ0TnVtYmVyJiYodD1uLmNvbnZlcnROdW1iZXIodCkpLGUodCl9Y2F0Y2godCl7fX0pfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dC5jb3VudGVyPXQuY291bnRlcnx8aSx0LmNsaWNrPXQuY2xpY2t8fGZ1bmN0aW9uKCl7cmV0dXJuITB9fX0sZnVuY3Rpb24odCl7dC5leHBvcnRzPXtmYWNlYm9vazoiNS45IDE2aDMuM1Y4aDIuMmwuMy0yLjhIOS4yVjMuOGMwLS43LjEtMS4xIDEuMS0xLjFoMS40VjBIOS41QzYuOSAwIDUuOSAxLjMgNS45IDMuNnYxLjdINC4zVjhINnY4Iix0d2l0dGVyOiIxNS45NiAzLjQyYy0uMDQuMTUzLS4xNDQuMzEtLjIzNy40MTRsLS4xMTguMDU4di4xMThsLS41OS41MzItLjIzNy4yOTVjLS4wNS4wMzYtLjM5OC4yMS0uNDEzLjIzN1Y2LjQ5aC0uMDZ2LjQ3M2gtLjA1OHYuMjk0aC0uMDU4di4yOTZoLS4wNnYuMjM1aC0uMDZ2LjIzN2gtLjA1OGMtLjEuMzU1LS4xOTcuNzEtLjI5NSAxLjA2NGgtLjA2di4xMTZoLS4wNmMtLjAyLjEtLjA0LjE5Ny0uMDU4LjI5NmgtLjA2Yy0uMDQuMTE4LS4wOC4yMzctLjExOC4zNTVoLS4wNmMtLjAzOC4xMTgtLjA3OC4yMzYtLjExNy4zNTNsLS4xMTguMDYtLjA2LjIzNS0uMTE3LjA2di4xMTZsLS4xMTguMDZ2LjEyaC0uMDZjLS4wMi4wNTctLjAzOC4xMTctLjA1OC4xNzVsLS4xMTguMDZ2LjExN2MtLjA2LjA0LS4xMTguMDgtLjE3Ny4xMTh2LjExOGwtLjIzNy4xNzd2LjExOGwtLjU5LjUzLS41MzIuNTkyaC0uMTE3Yy0uMDYuMDc4LS4xMTguMTU2LS4xNzcuMjM2bC0uMTc3LjA2LS4wNi4xMTdoLS4xMThsLS4wNi4xMTgtLjE3Ni4wNnYuMDU4aC0uMTE4bC0uMDYuMTE4LS4zNTMuMTItLjA2LjExN2MtLjA3OC4wMi0uMTU2LjA0LS4yMzUuMDU4di4wNmMtLjExOC4wMzgtLjIzNi4wNzgtLjM1NC4xMTh2LjA1OEg4Ljc2di4wNmgtLjEydi4wNmgtLjE3NnYuMDU4aC0uMTE4di4wNkg4LjE3di4wNThINy45OXYuMDZsLS40MTMuMDU4di4wNmgtLjIzN2MtLjY2Ny4yMi0xLjQ1NS4yOTMtMi4zNi4yOTNoLS44ODZ2LS4wNThoLS41M3YtLjA2SDMuMjd2LS4wNmgtLjI5NXYtLjA2SDIuNjh2LS4wNTdoLS4xNzd2LS4wNmgtLjIzNnYtLjA1OEgyLjA5di0uMDZoLS4xNzd2LS4wNThoLS4xNzd2LS4wNkgxLjU2di0uMDU4aC0uMTJ2LS4wNmwtLjI5NC0uMDZ2LS4wNTdjLS4xMTgtLjA0LS4yMzYtLjA4LS4zNTUtLjExOHYtLjA2SC42NzR2LS4wNThILjU1NXYtLjA2SC40Mzd2LS4wNThILjMybC0uMDYtLjEySC4xNDJ2LS4wNThjLS4xMy0uMDgtLjA4My4wMjYtLjE3Ny0uMTE4SDEuNTZ2LS4wNmMuMjk0LS4wNC41OS0uMDc3Ljg4NC0uMTE3di0uMDZoLjE3N3YtLjA1OGguMjM3di0uMDZoLjExOHYtLjA2aC4xNzd2LS4wNTdoLjExOHYtLjA2aC4xNzd2LS4wNThsLjIzNi0uMDZ2LS4wNThsLjIzNi0uMDZjLjAyLS4wMzguMDQtLjA3OC4wNTgtLjExN2wuMjM3LS4wNmMuMDItLjA0LjA0LS4wNzcuMDU4LS4xMTdoLjExOGwuMDYtLjExOGguMTE4Yy4wMzYtLjAyNS4wNDctLjA3OC4xMTgtLjExOFYxMi4xYy0xLjAyLS4wOC0xLjg0LS41NC0yLjMwMy0xLjE4My0uMDgtLjA1OC0uMTU3LS4xMTgtLjIzNi0uMTc2di0uMTE3bC0uMTE4LS4wNnYtLjExN2MtLjExNS0uMjAyLS4yNjgtLjM1NS0uMjk2LS42NS40NTMuMDA0Ljk4Ny4wMDggMS4zNTQtLjA2di0uMDZjLS4yNTQtLjAwOC0uNDctLjA4LS42NS0uMTc1di0uMDU4SDIuMzJ2LS4wNmMtLjA4LS4wMi0uMTU3LS4wNC0uMjM2LS4wNThsLS4wNi0uMTE4aC0uMTE3bC0uMTE4LS4xNzhoLS4xMmMtLjA3Ny0uMDk4LS4xNTYtLjE5Ni0uMjM1LS4yOTRsLS4xMTgtLjA2di0uMTE3bC0uMTc3LS4xMmMtLjM1LS41MDItLjYtMS4xNS0uNTktMi4wMDZoLjA2Yy4yMDQuMjM0Ljk0OC4zNzcgMS4zNTcuNDE1di0uMDZjLS4yNTctLjExOC0uNjc2LS41NC0uODI3LS43NjhWNS45bC0uMTE4LS4wNmMtLjA0LS4xMTctLjA4LS4yMzYtLjExOC0uMzU0aC0uMDZ2LS4xMThILjc4N2MtLjA0LS4xOTYtLjA4LS4zOTQtLjExOC0uNTktLjA2LS4xOS0uMjA2LS42OTctLjExOC0xLjAwNWguMDZWMy4zNmguMDU4di0uMTc3aC4wNnYtLjE3N2guMDU3VjIuODNoLjA2Yy4wNC0uMTE4LjA3OC0uMjM2LjExNy0uMzU1aC4xMTh2LjA2Yy4xMi4wOTcuMjM3LjE5Ni4zNTUuMjk1di4xMThsLjExOC4wNThjLjA4LjA5OC4xNTcuMTk3LjIzNi4yOTVsLjE3Ni4wNi4zNTQuNDEzaC4xMThsLjE3Ny4yMzZoLjExOGwuMDYuMTE3aC4xMTdjLjA0LjA2LjA4LjExOC4xMTguMTc3aC4xMThsLjA2LjExOC4yMzUuMDYuMDYuMTE3LjM1Ni4xMi4wNi4xMTcuNTMuMTc2di4wNmguMTE4di4wNThsLjIzNi4wNnYuMDZjLjExOC4wMi4yMzYuMDQuMzU1LjA1OHYuMDZoLjE3N3YuMDU4aC4xNzd2LjA2aC4xNzZ2LjA1OGguMjM2di4wNmwuNDcyLjA1N3YuMDZsMS40MTcuMTh2LS4yMzdjLS4xLS4xMTItLjA1OC0uNDQyLS4wNTctLjY1IDAtLjU3My4xNS0uOTkuMzU0LTEuMzU4di0uMTE3bC4xMTgtLjA2LjA2LS4yMzUuMTc2LS4xMTh2LS4xMThjLjE0LS4xMTguMjc2LS4yMzYuNDE0LS4zNTVsLjA2LS4xMTdoLjExN2wuMTItLjE3Ny4yMzUtLjA2LjA2LS4xMTdoLjExN3YtLjA1OEg5Ljd2LS4wNThoLjE3N3YtLjA2aC4xNzd2LS4wNThoLjE3N3YtLjA2aC4yOTZ2LS4wNThoMS4wNjN2LjA1OGguMjk0di4wNmguMTc3di4wNThoLjE3OHYuMDZoLjE3N3YuMDU4aC4xMTh2LjA2aC4xMThsLjA2LjExN2MuMDguMDE4LjE1OC4wMzguMjM2LjA1OC4wNC4wNi4wOC4xMTguMTE4LjE3N2guMTE4bC4wNi4xMTdjLjE0Mi4xMzMuMTkzLjE2My40NzIuMTc4LjEzNi0uMTIuMjgzLS4wNS40NzItLjExOHYtLjA2aC4xNzd2LS4wNThoLjE3N3YtLjA2bC4yMzYtLjA1OHYtLjA2aC4xNzdsLjU5LS4zNTJ2LjE3NmgtLjA1OGwtLjA2LjI5NWgtLjA1OHYuMTE3aC0uMDZ2LjExOGwtLjExNy4wNnYuMTE4bC0uMTc3LjExOHYuMTE3bC0uMTE4LjA2LS4zNTQuNDEyaC0uMTE3bC0uMTc3LjIzNmguMDZjLjEzLS4xMTIuNDAyLS4wNTMuNTktLjExN2wxLjA2My0uMzUzIix2a29udGFrdGU6IjE1LjQgMTIuOGgtMS44Yy0uNyAwLS45LS41LTIuMS0xLjctMS0xLTEuNS0xLjEtMS43LTEuMS0uNCAwLS41LjEtLjUuNnYxLjZjMCAuNC0uMS43LTEuMy43LTEuOSAwLTMuOS0xLjEtNS4zLTMuMkMuNiA2LjUgMCA0LjIgMCAzLjdjMC0uMy4xLS41LjYtLjVoMS44Yy40IDAgLjYuMi44LjdDNCA2LjQgNS40IDguNiA2IDguNmMuMiAwIC4zLS4xLjMtLjdWNS40YzAtMS4yLS42LTEuMy0uNi0xLjcgMC0uMi4yLS40LjQtLjRoMi44Yy40IDAgLjUuMi41LjZ2My41YzAgLjQuMi41LjMuNS4yIDAgLjQtLjEuOC0uNSAxLjMtMS40IDIuMi0zLjYgMi4yLTMuNi4xLS4zLjMtLjUuOC0uNWgxLjhjLjUgMCAuNi4zLjUuNi0uMiAxLTIuNCA0LTIuNCA0LS4yLjMtLjMuNCAwIC44LjIuMy44LjggMS4yIDEuMy44LjggMS4zIDEuNiAxLjUgMi4xIDAgLjQtLjIuNy0uNy43IixncGx1czoiOCw2LjV2M2g0LjI5MWMtMC41MjYsMi4wMS0yLjA5MywzLjQ3Ni00LjMxNSwzLjQ3NkM1LjIyOCwxMi45NzYsMywxMC43NDgsMyw4YzAtMi43NDgsMi4yMjgtNC45NzYsNC45NzYtNC45NzZjMS40NDIsMCwyLjYwNiwwLjYyMywzLjM5NywxLjYwM0wxMy41MiwyLjQ4QzEyLjE5MiwwLjk1NSwxMC4yNzYsMCw4LDBDMy41ODIsMCwwLDMuNTgyLDAsOHMzLjU4Miw4LDgsOHM3LjUtMy41ODIsNy41LThWNi41SDgiLG9kbm9rbGFzc25pa2k6IjggMi42Yy45IDAgMS43LjcgMS43IDEuN0M5LjcgNS4yIDkgNiA4IDZjLS45IDAtMS43LS43LTEuNy0xLjdTNy4xIDIuNiA4IDIuNnptMCA1LjdjMi4yIDAgNC0xLjggNC00cy0xLjgtNC00LTQtNCAxLjgtNCA0IDEuOCA0IDQgNHptMS42IDMuMmMuOC0uMiAxLjYtLjUgMi4zLTEgLjUtLjMuNy0xLjEuNC0xLjYtLjMtLjYtMS4xLS43LTEuNi0uNC0xLjYgMS0zLjggMS01LjQgMC0uNi0uMy0xLjMtLjEtMS42LjQtLjQuNi0uMiAxLjMuMyAxLjcuNy41IDEuNS44IDIuMyAxbC0yLjIgMi4yYy0uNS41LS41IDEuMiAwIDEuNy4yLjIuNS4zLjguMy4zIDAgLjYtLjEuOC0uM0w4IDEzLjJsMi4yIDIuMmMuNS41IDEuMi41IDEuNyAwcy41LTEuMiAwLTEuN2wtMi4zLTIuMiIscG9ja2V0OiIxMi41MzMgNi44NjRMOC43NyAxMC40Yy0uMjEzLjItLjQ4Ni4zLS43Ni4zLS4yNzMgMC0uNTQ3LS4xLS43Ni0uM0wzLjQ4OCA2Ljg2NWMtLjQzNy0uNDEtLjQ1LTEuMDktLjAzMi0xLjUyLjQyLS40MjggMS4xMTQtLjQ0MyAxLjU1LS4wMzJsMy4wMDYgMi44MjMgMy4wMDQtMi44MjNjLjQzOC0uNDEgMS4xMzItLjM5NiAxLjU1LjAzMi40Mi40My40MDYgMS4xMS0uMDMgMS41MnptMy4zODgtNC45MjhjLS4yMDctLjU2LS43NTUtLjkzNi0xLjM2My0uOTM2SDEuNDVDLjg1NCAxIC4zMSAxLjM2OC4wOTYgMS45MTcuMDMyIDIuMDggMCAyLjI1IDAgMi40MjJ2NC43M2wuMDU1Ljk0Yy4yMzIgMi4xNCAxLjM2NiA0LjAxIDMuMTIgNS4zMTQuMDMuMDI0LjA2My4wNDcuMDk0LjA3bC4wMi4wMTNjLjk0LjY3MyAxLjk5MiAxLjEzIDMuMTI4IDEuMzUzLjUyNC4xMDQgMS4wNi4xNTcgMS41OTIuMTU3LjQ5MiAwIC45ODYtLjA0NSAxLjQ3Mi0uMTMzLjA1OC0uMDEuMTE2LS4wMjIuMTc1LS4wMzQuMDE2LS4wMDMuMDMzLS4wMS4wNS0uMDE4IDEuMDg4LS4yMzMgMi4wOTgtLjY3NyAzLjAwMy0xLjMyNmwuMDItLjAxNWMuMDMyLS4wMjIuMDY0LS4wNDUuMDk2LS4wNyAxLjc1My0xLjMwMyAyLjg4Ny0zLjE3MyAzLjEyLTUuMzEybC4wNTQtLjk0di00LjczYzAtLjE2NS0uMDItLjMyNy0uMDgtLjQ4NyIsdGVsZWdyYW06IjEyLjQgNC4yTDYuNiA5LjZjLS4yLjItLjMuNC0uNC43TDYgMTEuOGMwIC4yLS4zLjItLjMgMGwtLjgtMi42Yy0uMS0uNC4xLS43LjMtLjhsNy00LjNjLjItLjIuNCAwIC4yLjF6bTIuOS0zTC41IDYuOWMtLjQuMS0uNC43IDAgLjhMNC4xIDlsMS40IDQuNWMuMS4zLjQuNC43LjJsMi0xLjZjLjItLjIuNS0uMi43IDBsMy42IDIuNmMuMy4yLjYgMCAuNy0uM2wyLjYtMTIuOGMuMS0uMi0uMi0uNS0uNS0uNCIsd2hhdHNhcHA6IjE1LjggNy44YzAgNC4yLTMuNCA3LjYtNy42IDcuNi0xLjMgMC0yLjYtLjMtMy43LS45TC4zIDE1LjhsMS40LTQuMUMxIDEwLjYuNiA5LjIuNiA3LjguNiAzLjYgNCAuMiA4LjIuMmM0LjIgMCA3LjYgMy40IDcuNiA3LjZNOC4xIDEuNGMtMy41IDAtNi40IDIuOS02LjQgNi40IDAgMS40LjUgMi43IDEuMiAzLjdsLS44IDIuNCAyLjUtLjhjMSAuNyAyLjIgMS4xIDMuNSAxLjEgMy41IDAgNi40LTIuOSA2LjQtNi40LjEtMy41LTIuOC02LjQtNi40LTYuNE0xMiA5LjVjMC0uMS0uMi0uMS0uNC0uMnMtMS4xLS41LTEuMy0uNmMtLjItLjEtLjMtLjEtLjQuMS0uMS4yLS40LjYtLjYuNy0uMS4xLS4yLjEtLjQgMC0uMSAwLS44LS4yLTEuNS0uOC0uNi0uNS0uOS0xLjEtMS0xLjMtLjEtLjIgMC0uMy4xLS40bC4zLS4zYy4xLS4xLjEtLjIuMi0uMyAwLS4yIDAtLjMtLjEtLjQgMC0uMS0uNC0xLS42LTEuNC0uMS0uMy0uMy0uMi0uNC0uMmgtLjRjLS4xIDAtLjMgMC0uNS4yLS4xLjItLjYuNi0uNiAxLjVzLjcgMS44LjggMS45Yy4xLjEgMS4zIDIuMSAzLjIgMi44IDEuOS43IDEuOS41IDIuMi41LjMgMCAxLjEtLjQgMS4zLS45LjEtLjQuMS0uOC4xLS45Iix2aWJlcjoiMTMuNyA2LjdjMCAuMy4xLjctLjMuOC0uNi4xLS41LS40LS41LS44LS40LTIuMy0xLjItMy4yLTMuNS0zLjctLjQtLjEtLjkgMC0uOC0uNS4xLS41LjUtLjQuOS0uMyAyLjMuMyA0LjIgMi4zIDQuMiA0LjV6TTguOCAxLjJjMy43LjYgNS41IDIuNCA1LjkgNi4xIDAgLjMtLjEuOS40LjlzLjQtLjUuNC0uOWMwLTMuNi0zLjEtNi44LTYuNy03LS4yLjEtLjgtLjEtLjguNSAwIC40LjQuMy44LjR6bTUuNyAxMC4yYy0uNS0uNC0xLS43LTEuNS0xLjEtMS0uNy0xLjktLjctMi42LjQtLjQuNi0xIC42LTEuNi40LTEuNy0uOC0yLjktMS45LTMuNy0zLjYtLjMtLjctLjMtMS40LjUtMS45LjQtLjMuOC0uNi44LTEuMiAwLS44LTItMy41LTIuNy0zLjctLjMtLjEtLjYtLjEtMSAwQy45IDEuMi4yIDIuNy45IDQuNGMyLjEgNS4yIDUuOCA4LjggMTEgMTEgLjMuMS42LjIuOC4yIDEuMiAwIDIuNS0xLjEgMi45LTIuMi4zLTEtLjUtMS41LTEuMS0yek05LjcgNGMtLjIgMC0uNSAwLS42LjMtLjEuNC4yLjUuNS41LjkuMiAxLjQuNyAxLjUgMS43IDAgLjMuMi41LjQuNC4zIDAgLjQtLjMuNC0uNiAwLTEuMS0xLjItMi4zLTIuMi0yLjMiLGVtYWlsOiIxMi43IDFjMSAuNSAxLjggMS4yIDIuMyAyLjIuNS45LjggMS45LjggMy4xIDAgLjktLjEgMS44LS41IDIuNy0uMy45LS44IDEuNi0xLjQgMi4yLS42LjYtMS40LjktMi4zLjktLjYgMC0xLjEtLjItMS41LS41LS40LS4zLS42LS43LS43LTEuMi0uNiAxLjEtMS41IDEuNi0yLjUgMS42LS44IDAtMS41LS4zLTEuOS0uOC0uNS0uNi0uNy0xLjMtLjctMi4yIDAtLjguMS0xLjYuNC0yLjVTNS41IDUgNi4xIDQuNGMuNy0uNiAxLjUtLjggMi42LS44LjUgMCAxIC4xIDEuNC4yLjUuMS45LjMgMS4zLjZsLS43IDQuOXYuM2MwIC4yIDAgLjQuMS41LjEuMS4zLjIuNS4yLjQgMCAuOC0uMiAxLjEtLjcuMy0uNC41LTEgLjctMS42LjEtLjcuMi0xLjMuMi0xLjkgMC0xLjMtLjQtMi4zLTEuMS0zLS44LS43LTEuOS0xLTMuNC0xcy0yLjcuNC0zLjcgMS4xYy0uOS43LTEuNiAxLjYtMiAyLjZTMi42IDcuOSAyLjYgOWMwIC45LjIgMS44LjYgMi41LjQuNyAxIDEuMyAxLjcgMS43LjcuNCAxLjcuNiAyLjcuNi41IDAgMS0uMSAxLjYtLjIuNi0uMSAxLjEtLjMgMS41LS40bC40IDEuOWMtLjYuMi0xLjIuNC0xLjguNS0uNy4xLTEuMy4yLTEuOS4yLTEuNCAwLTIuNy0uMy0zLjgtLjlzLTEuOS0xLjQtMi41LTIuNFMuMiAxMC4zLjIgOWMwLTEuMy4zLTIuNyAxLTQgLjYtMS40IDEuNi0yLjUgMy0zLjRDNS41LjcgNy4yLjIgOS4yLjJjMS4zIDAgMi41LjMgMy41Ljh6bS00IDguNGwuNi0zLjljLS4zLS4xLS41LS4yLS43LS4yLS43IDAtMS4yLjQtMS41IDEuMi0uMy44LS41IDEuNy0uNSAyLjYgMCAuOC4zIDEuMi44IDEuMnMuOS0uMyAxLjMtLjkiLG1vcmU6IjE0LjcyNSA2LjY2N0g5LjMzM1YxLjI3NUM5LjMzMy41NyA4LjczOCAwIDggMFM2LjY2Ny41NyA2LjY2NyAxLjI3NXY1LjM5MkgxLjI3NUMuNTcgNi42NjcgMCA3LjI2MiAwIDhzLjU3IDEuMzM0IDEuMjc1IDEuMzM0aDUuMzkydjUuMzkzQzYuNjY3IDE1LjQzIDcuMjYyIDE2IDggMTZzMS4zMzMtLjU3IDEuMzMzLTEuMjczVjkuMzM0aDUuMzkyQzE1LjQzIDkuMzM0IDE2IDguNzM4IDE2IDhzLS41Ny0xLjMzMy0xLjI3NS0xLjMzMyJ9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigwKSxpPW4oMiksYT1uKDEpLG89e2NvdW50ZXJVcmw6ci5zZWN1cmU/dm9pZCAwOiJodHRwOi8vY29ubmVjdC5vay5ydS9kaz9zdC5jbWQ9ZXh0TGlrZSZyZWY9e3VybH0mdWlkPXtpbmRleH0iLGNvdW50ZXI6ZnVuY3Rpb24odCxlKXt0aGlzLnByb21pc2VzLnB1c2goZSksYS5nZXRTY3JpcHQoaS5tYWtlVXJsKHQse2luZGV4OnRoaXMucHJvbWlzZXMubGVuZ3RoLTF9KSl9LHByb21pc2VzOltdLHBvcHVwVXJsOiJodHRwOi8vY29ubmVjdC5vay5ydS9kaz9zdC5jbWQ9V2lkZ2V0U2hhcmVQcmV2aWV3JnNlcnZpY2U9b2Rub2tsYXNzbmlraSZzdC5zaGFyZVVybD17dXJsfSIscG9wdXBXaWR0aDo2NDAscG9wdXBIZWlnaHQ6NDAwfTtpLnNldCh3aW5kb3csIk9ES0wudXBkYXRlQ291bnQiLGZ1bmN0aW9uKHQsZSl7by5wcm9taXNlc1t0XShlKX0pLHQuZXhwb3J0cz1vfSxmdW5jdGlvbih0LGUsbil7dmFyIHI9bigwKSxpPW4oMiksYT1uKDEpLG89e2NvdW50ZXJVcmw6Imh0dHBzOi8vdmsuY29tL3NoYXJlLnBocD9hY3Q9Y291bnQmdXJsPXt1cmx9JmluZGV4PXtpbmRleH0iLGNvdW50ZXI6ZnVuY3Rpb24odCxlKXt0aGlzLnByb21pc2VzLnB1c2goZSksYS5nZXRTY3JpcHQoaS5tYWtlVXJsKHQse2luZGV4OnRoaXMucHJvbWlzZXMubGVuZ3RoLTF9KSl9LHByb21pc2VzOltdLHBvcHVwVXJsOnIucHJvdG9jb2wrIi8vdmsuY29tL3NoYXJlLnBocD91cmw9e3VybH0mdGl0bGU9e3RpdGxlfSIscG9wdXBXaWR0aDo1NTAscG9wdXBIZWlnaHQ6MzMwfTtpLnNldCh3aW5kb3csIlZLLlNoYXJlLmNvdW50IixmdW5jdGlvbih0LGUpe28ucHJvbWlzZXNbdF0oZSl9KSx0LmV4cG9ydHM9b30sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e2NvdW50ZXJVcmw6Imh0dHBzOi8vZ3JhcGguZmFjZWJvb2suY29tLz9maWVsZHM9c2hhcmUsb2dfb2JqZWN0e2xpa2VzLmxpbWl0KDApLnN1bW1hcnkodHJ1ZSksY29tbWVudHMubGltaXQoMCkuc3VtbWFyeSh0cnVlKX0maWQ9e3VybH0mY2FsbGJhY2s9PyIsY29udmVydE51bWJlcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5zaGFyZS5zaGFyZV9jb3VudH0scG9wdXBVcmw6Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIvc2hhcmVyLnBocD91PXt1cmx9Iixwb3B1cFdpZHRoOjYwMCxwb3B1cEhlaWdodDo1MDB9fSxmdW5jdGlvbih0LGUsbil7dmFyIHI9e3BvcHVwVXJsOm4oMCkucHJvdG9jb2wrIi8vdHdpdHRlci5jb20vaW50ZW50L3R3ZWV0P3VybD17dXJsfSZ0ZXh0PXt0aXRsZX0iLHBvcHVwV2lkdGg6NjAwLHBvcHVwSGVpZ2h0OjQ1MCxjbGljazpmdW5jdGlvbigpe3JldHVybi9bXC5cPzpcLeKAk+KAlF1ccyokLy50ZXN0KHRoaXMub3B0aW9ucy50aXRsZSl8fCh0aGlzLm9wdGlvbnMudGl0bGUrPSI6IiksITB9fTt0LmV4cG9ydHM9cn0sZnVuY3Rpb24odCxlLG4pe24oMCksbigyKSxuKDEpO3QuZXhwb3J0cz17Z2lkOjAscHJvbWlzZXM6e30scG9wdXBVcmw6Imh0dHBzOi8vcGx1cy5nb29nbGUuY29tL3NoYXJlP3VybD17dXJsfSIscG9wdXBXaWR0aDo3MDAscG9wdXBIZWlnaHQ6NTAwfX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPXtwb3B1cFVybDpuKDApLnByb3RvY29sKyIvL2dldHBvY2tldC5jb20vc2F2ZT91cmw9e3VybH0mZm9ybWF0PWpzb24mY2FsbGJhY2s9PyIscG9wdXBXaWR0aDo2MDAscG9wdXBIZWlnaHQ6MzAwfTt0LmV4cG9ydHM9cn0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e3BvcHVwVXJsOiJ0ZzovL21zZz90ZXh0PXt0aXRsZX0lMEF7dXJsfSIscG9wdXBXaWR0aDo2MDAscG9wdXBIZWlnaHQ6NDUwfX0sZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e3BvcHVwVXJsOiJ3aGF0c2FwcDovL3NlbmQ/dGV4dD17dGl0bGV9JTBBe3VybH0iLHBvcHVwV2lkdGg6NjAwLHBvcHVwSGVpZ2h0OjQ1MH19LGZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPXtwb3B1cFVybDoidmliZXI6Ly9mb3J3YXJkP3RleHQ9e3RpdGxlfSUwQXt1cmx9Iixwb3B1cFdpZHRoOjYwMCxwb3B1cEhlaWdodDo0NTB9fSxmdW5jdGlvbih0LGUsbil7bigwKTt0LmV4cG9ydHM9e3BvcHVwVXJsOiJtYWlsdG86P3N1YmplY3Q9e3RpdGxlfSZib2R5PXt1cmx9Iixwb3B1cFdpZHRoOjAscG9wdXBIZWlnaHQ6MH19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDApO3QuZXhwb3J0cz17cGFyZW50OnIubmFtZSxjbGFzc05hbWU6ci5uYW1lKyItLWV4cGFuZGVkIn19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKDQpLGk9bigzNyksYT1uKDIpLG89KG4oMSkse30pO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7b1t0XXx8KG9bdF09e30pO3ZhciBzPW9bdF0sbD1zW2VdO2lmKCFuLmZvcmNlVXBkYXRlJiZsKXJldHVybiBsO2w9aSgpO3ZhciBjPWEubWFrZVVybChuLmNvdW50ZXJVcmwse3VybDplfSk7cmV0dXJuIHJbdF0uY291bnRlcihjLGwsZSksc1tlXT1sLHNbZV19fSxmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHI9dHlwZW9mIG47aWYoInVuZGVmaW5lZCI9PXIpcmV0dXJuIHQ7ImZ1bmN0aW9uIj09cj9lLnB1c2gobik6KHQ9bixlLmZvckVhY2goZnVuY3Rpb24odCl7dChuKX0pKX19fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9e2Rlc2NyaXB0aW9uOiLQndC10LrQvtGC0L7RgNGL0LUg0YjRgNC40YTRgtGLINC+0YHQvtCx0LXQvdC90L4g0YXQvtGA0L7RiNC+INGB0L7Rh9C10YLQsNGO0YLRgdGPLCDRgdC+0YHRgtCw0LLQu9GP0Y8g0L/QsNGA0YMg0LTQu9GPINC30LDQs9C+0LvQvtCy0LrQsCDQuCDRgtC10LrRgdGC0LAuINCf0L7Qv9GA0L7QsdGD0LnRgtC1INGD0LPQsNC00LDRgtGMLCDQutCw0LrQuNC1LiIscXVlc3Rpb25zOlt7dGl0bGU6ItCV0YnRkSDQvtC00L3QsDxicj7QvtGB0L7QsdC10L3QvdC+0YHRgtGMIix0ZXh0OiLQn9GA0L7Qt9GA0LDRh9C90YvQtSDQtdC80LrQvtGB0YLQuCwg0YDQsNGB0L/QvtC70L7QttC10L3QvdGL0LUg0YHQv9C10YDQtdC00LgsINC/0L7Qt9Cy0L7Qu9GP0Y7RgiDQvtC/0YDQtdC00LXQu9C40YLRjCDRg9GA0L7QstC10L3RjCDRh9C10YDQvdC40LssINCwINC30LAg0YHRh9C10YIg0L7RgdC+0LHQvtC5INC60L7QvdGB0YLRgNGD0LrRhtC40Lgg0L/RgNC40L3RgtC10YDQsCDQv9C10YDQtdC30LDQv9GA0LDQstC60LAg0L/RgNC+0YXQvtC00LjRgiDQsdGL0YHRgtGA0L4uIix0ZXh0U3R5bGU6ImZvbnQtZmFtaWx5OiBWZXJkYW5hOyBsaW5lLWhlaWdodDogMjRweDsiLG9wdGlvbnM6W3t0aXRsZVN0eWxlOiJmb250LWZhbWlseTogR2VvcmdpYTsgbGluZS1oZWlnaHQ6IDI0cHg7Iixpc0NvcnJlY3Q6ITB9LHt0aXRsZVN0eWxlOiJmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBsaW5lLWhlaWdodDogbm9ybWFsOyBtYXJnaW4tYm90dG9tOiAxNXB4OyJ9XX0se3RpdGxlOiLQn9GA0LXQuNC80YPRidC10YHRgtCy0L4iLHRleHQ6ItCh0LjRgdGC0LXQvNCwINC/0L7QtNCw0YfQuCDQsdGD0LzQsNCz0Lgg0LLQvNC10YnQsNC10YIgMTAwINC70LjRgdGC0L7QsiDQsdGD0LzQsNCz0LguINCe0L3QsCDQvtCx0LXRgdC/0LXRh9C40LLQsNC10YIg0L/RgNC+0YXQvtC20LTQtdC90LjQtSDRgdCw0LzRi9GFINGA0LDQt9C90YvRhSDRgtC40L/QvtCyINC90L7RgdC40YLQtdC70LXQuSwg0LLQutC70Y7Rh9Cw0Y8g0LPQu9GP0L3RhtC10LLRg9GOINC60LLQsNC00YDQsNGC0L3Rg9GOINGE0L7RgtC+0LHRg9C80LDQs9GDLiIsdGV4dFN0eWxlOiJmb250LWZhbWlseTogQm9va21hbiBPbGQgU3R5bGU7IGxpbmUtaGVpZ2h0OiAyM3B4OyIsb3B0aW9uczpbe3RpdGxlU3R5bGU6ImZvbnQtZmFtaWx5OiBSb2JvdG87IGxpbmUtaGVpZ2h0OiAyNXB4OyBtYXJnaW4tYm90dG9tOiAxNnB4OyIsaXNDb3JyZWN0OiEwfSx7dGl0bGVTdHlsZToiZm9udC1mYW1pbHk6IFBUIFNlcmlmOyBsaW5lLWhlaWdodDogMjVweDsgbWFyZ2luLWJvdHRvbTogMTVweDsifV19LHt0aXRsZToi0J/QvtC00L7QudC00ZHRgjxicj7QtNC70Y8g0L7RhNC40YHQsCIsdGV4dDoi0JrQvtC80L/QsNC90LjRjyBDYW5vbiDRgNCw0LfRgNCw0LHQvtGC0LDQu9CwINC/0LjQs9C80LXQvdGC0L3Ri9C1INGH0LXRgNC90YvQtSDQuCDRhtCy0LXRgtC90YvQtSDRh9C10YDQvdC40LvQsCDQtNC70Y8g0LHQvtC70YzRiNC40YUg0L7QsdGK0ZHQvNC+0LIg0L/QtdGH0LDRgtC4LiIsdGV4dFN0eWxlOiJmb250LWZhbWlseTogTHVjaWRhIENvbnNvbGU7IGxpbmUtaGVpZ2h0OiAxOXB4OyIsb3B0aW9uczpbe3RpdGxlU3R5bGU6ImZvbnQtZmFtaWx5OiBMb3JhOyBsaW5lLWhlaWdodDogMjRweDsgbWFyZ2luLWJvdHRvbTogMTFweCIsaXNDb3JyZWN0OiEwfSx7dGl0bGVTdHlsZToiZm9udC1mYW1pbHk6IEltcGFjdDsgbGluZS1oZWlnaHQ6IG5vcm1hbDsgbWFyZ2luLWJvdHRvbTogMTVweDsifV19XSxyZXN1bHRzOlt7bGV2ZWw6IkNvbWljIFNhbnMiLHRleHQ6ItCh0L7Rh9C10YLQsNGOINC90LXRgdC+0YfQtdGC0LDQtdC80L7QtSJ9LHtsZXZlbDoiQXJpYWwiLHRleHQ6ItCY0L3QvtCz0LTQsCDRhdC+0YDQvtGIIn0se2xldmVsOiJIZWx2ZXRpY2EiLHRleHQ6ItCR0LvQuNC30LrQviDQuiDQuNC00LXQsNC70YMifSx7bGV2ZWw6IkFremlkZW56IEdyb3Rlc2siLHRleHQ6ItCX0LDQtNCw0Y4g0LLRgdC10LzRgyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPVwiZm9udC1mYW1pbHk6ICdEb2Jyb3pyYWNobml5JzsgbGV0dGVyLXNwYWNpbmc6IDAuMmVtO1wiPtGB0YLQuNC70Yw8c3Bhbj4ifV19fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3JldHVybiBuJiZ0KGUucHJvdG90eXBlLG4pLHImJnQoZSxyKSxlfX0oKSxpPXUobig1KSksYT1uKDMpLG89ZnVuY3Rpb24odCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKG51bGwhPXQpZm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfShuKDgpKSxzPShuKDEwKSxuKDEyKSksbD11KG4oNDApKSxjPXUobig0MSkpLHA9dShuKDExKSk7ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19dmFyIGQ9IkNhbm9uIixoPXt9LGY9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKTt2YXIgbj1mdW5jdGlvbih0LGUpe2lmKCF0KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIWV8fCJvYmplY3QiIT10eXBlb2YgZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGU/dDplfSh0aGlzLChlLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpKS5jYWxsKHRoaXMpKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihuLnBhcmFtcyx0KSxuLnNhdmVQYXJhbXMoKSxjLmRlZmF1bHQmJnQuZGF0YSYmT2JqZWN0LmFzc2lnbihjLmRlZmF1bHQsdC5kYXRhKSxuLmluaXQoKSxufXJldHVybiBmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIGUpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLGUmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsZSk6dC5fX3Byb3RvX189ZSl9KGUsaS5kZWZhdWx0KSxyKGUsW3trZXk6ImNyZWF0ZUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbigpe2gua2Vybj0oMCxhLm1ha2VFbGVtZW50KSgiZGl2IixkKyJfX2tlcm4iKSxoLmxvZ289KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsZCsiX19sb2dvIix7aW5uZXJIVE1MOnAuZGVmYXVsdC5nYW1lfSksaC5kZXNjPSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLFtkKyJfX2Rlc2MiLGQrIl9fZGVzYy0ta2VybiJdLHt0ZXh0Q29udGVudDpjLmRlZmF1bHQuZGVzY3JpcHRpb259KSxoLnBhZ2VzPSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLGQrIl9fcGFnZXMiKSxoLnN0cmluZz0oMCxhLm1ha2VFbGVtZW50KSgiZGl2IixbZCsiX19zdHJpbmciLGQrIi1zdHIiXSksaC5zU2FtcGxlPSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLGQrIi1zdHJfX3NhbXBsZSIpLGgubGV0dGVyc0Fycj1bXSxjLmRlZmF1bHQucXVlc3Rpb25zLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj0oMCxhLm1ha2VFbGVtZW50KSgiZGl2IixbZCsiLXN0cl9fbGV0dGVycyIsZCsiLXN0cl9fbGV0dGVycy0tIisoZSsxKV0se2lubmVySFRNTDp0LnN2ZysiPHNwYW4+PC9zcGFuPiJ9KTsoMCxsLmRlZmF1bHQpKG4pLGgubGV0dGVyc0Fyci5wdXNoKG4pfSksaC5ub3RpY2U9KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsZCsiX19ub3RpY2UiKSxoLmNvbXBhcmU9KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsZCsiX19jb21wYXJlIiksaC5uZXh0QnRuPSgwLGEubWFrZUVsZW1lbnQpKCJidXR0b24iLGQrIl9fbmV4dC1idG4iLHt0ZXh0Q29udGVudDoi0JTQsNC70LXQtSIsZGF0YTp7Y2xpY2s6ImNvbnRpbnVlIn19KSxoLnJlc3VsdD0oMCxhLm1ha2VFbGVtZW50KSgiZGl2IixkKyJfX3Jlc3VsdCIpLGguclNjb3JlPSgwLGEubWFrZUVsZW1lbnQpKCJkaXYiLGQrIl9fc2NvcmUiKSxoLnJTY29yZVRleHQ9KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsZCsiX19zY29yZS10ZXh0IiksaC5yU2hhcmU9KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsZCsiX19zaGFyZSIpLGguclJlc3RhcnRCdG49KDAsYS5tYWtlRWxlbWVudCkoImRpdiIsZCsiX19yZXN0YXJ0LWJ0biIse2lubmVySFRNTDoiPHNwYW4+0J/RgNC+0LnRgtC4INC10YnQtSDRgNCw0Lc8L3NwYW4+IitwLmRlZmF1bHQucmVmcmVzaCxkYXRhOntjbGljazoicmVzdGFydCJ9fSksaC5yZXN1bHQuYXBwZW5kQ2hpbGQoaC5yU2NvcmUpLGgucmVzdWx0LmFwcGVuZENoaWxkKGguclNjb3JlVGV4dCksaC5yZXN1bHQuYXBwZW5kQ2hpbGQoaC5yU2hhcmUpLGgucmVzdWx0LmFwcGVuZENoaWxkKGguclJlc3RhcnRCdG4pLGgua2Vybi5hcHBlbmRDaGlsZChoLmxvZ28pLGgua2Vybi5hcHBlbmRDaGlsZChoLmRlc2MpLGgua2Vybi5hcHBlbmRDaGlsZChoLnBhZ2VzKSxoLmtlcm4uYXBwZW5kQ2hpbGQoaC5zdHJpbmcpLGgua2Vybi5hcHBlbmRDaGlsZChoLm5vdGljZSksaC5rZXJuLmFwcGVuZENoaWxkKGgubmV4dEJ0bil9fSx7a2V5OiJtYWtlUGFnZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczsoMCxhLnJlbW92ZUNoaWxkcmVuKShoLnBhZ2VzKSxjLmRlZmF1bHQucXVlc3Rpb25zLmZvckVhY2goZnVuY3Rpb24oZSxuKXt2YXIgcj0oMCxhLm1ha2VFbGVtZW50KSgiZGl2Iik7bjw9dC5hY3RpdmVJbmRleCYmci5jbGFzc0xpc3QuYWRkKCJpcy1maWxsZWQiKSxoLnBhZ2VzLmFwcGVuZENoaWxkKHIpfSl9fSx7a2V5OiJsZXR0ZXJzU2hpZnQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQucXVlcnlTZWxlY3RvckFsbCgicGF0aDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIik7W10uc2xpY2UuY2FsbChlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPTIwKk1hdGgucmFuZG9tKCktMTA7dC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2UrIiwgMCkiKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS14IixlKX0pfX0se2tleToibGV0dGVyc0NvbXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQucXVlcnlTZWxlY3RvckFsbCgicGF0aDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIiksbj12b2lkIDA7cmV0dXJuIG49W10uc2xpY2UuY2FsbChlKS5tYXAoZnVuY3Rpb24odCxlKXt2YXIgbj10LmdldEF0dHJpYnV0ZSgiZGF0YS14Iikscj1NYXRoLnJvdW5kKDEwMCpNYXRoLmFicyhuLzIwKSk7cmV0dXJuIHI+MTAwPzEwMDpyfSksMTAwLU1hdGgucm91bmQobi5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSwwKS9uLmxlbmd0aCl9fSx7a2V5OiJtYWtlTmV4dFF1ZXN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWMuZGVmYXVsdC5xdWVzdGlvbnNbdGhpcy5hY3RpdmVJbmRleF07dGhpcy5tYWtlUGFnZXMoKSwoMCxhLnJlbW92ZUNoaWxkcmVuKShoLnN0cmluZyksaC5zdHJpbmcuY2xhc3NMaXN0PSIiLGguc3RyaW5nLmNsYXNzTGlzdC5hZGQoZCsiX19zdHJpbmciKSxoLnN0cmluZy5jbGFzc0xpc3QuYWRkKGQrIi1zdHIiKSxoLnN0cmluZy5jbGFzc0xpc3QuYWRkKGQrIi1zdHItLSIrKHRoaXMuYWN0aXZlSW5kZXgrMSkpLGgubGV0dGVyc0Fyclt0aGlzLmFjdGl2ZUluZGV4XS5kYXRhc2V0LmRyYWdnYWJsZT0hMCx0aGlzLmxldHRlcnNTaGlmdChoLmxldHRlcnNBcnJbdGhpcy5hY3RpdmVJbmRleF0pLGguc3RyaW5nLmFwcGVuZENoaWxkKGgubGV0dGVyc0Fyclt0aGlzLmFjdGl2ZUluZGV4XSksaC5ub3RpY2UudGV4dENvbnRlbnQ9dC5ub3RpY2UsaC5uZXh0QnRuLmRhdGFzZXQuY2xpY2s9ImNvbXBhcmUifX0se2tleToiY29tcGFyZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPWMuZGVmYXVsdC5xdWVzdGlvbnNbdGhpcy5hY3RpdmVJbmRleF07dD10aGlzLmxldHRlcnNDb21wYXJlKGgubGV0dGVyc0Fyclt0aGlzLmFjdGl2ZUluZGV4XSksdGhpcy5yZXN1bHRzW3RoaXMuYWN0aXZlSW5kZXhdPXQsaC5sZXR0ZXJzQXJyW3RoaXMuYWN0aXZlSW5kZXhdLmRhdGFzZXQuZHJhZ2dhYmxlPSIiLGguc1NhbXBsZS5pbm5lckhUTUw9ZS5zdmcsaC5zU2FtcGxlLmNsYXNzTGlzdD0iIixoLnNTYW1wbGUuY2xhc3NMaXN0LmFkZChkKyItc3RyX19zYW1wbGUiKSxoLnNTYW1wbGUuY2xhc3NMaXN0LmFkZChkKyItc3RyX19zYW1wbGUtLSIrKHRoaXMuYWN0aXZlSW5kZXgrMSkpLGguc3RyaW5nLmFwcGVuZENoaWxkKGguc1NhbXBsZSksKDAscy5hbmltYXRlKShoLnNTYW1wbGUsImZhZGVJbiIsIjgwMG1zIiksaC5rZXJuLnJlbW92ZUNoaWxkKGgubm90aWNlKSwoMCxzLnJlcXVlc3RBbmltYXRlKSh7ZHVyYXRpb246MTAqdCx0aW1pbmc6ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGRyYXc6ZnVuY3Rpb24oZSl7dmFyIG49TWF0aC5jZWlsKHQqZSk7aC5jb21wYXJlLnRleHRDb250ZW50PW4rIiUifX0pLGgua2Vybi5hcHBlbmRDaGlsZChoLmNvbXBhcmUpLGgubmV4dEJ0bi5kYXRhc2V0LmNsaWNrPSJjb250aW51ZSJ9fSx7a2V5OiJjb250aW51ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZUluZGV4PGMuZGVmYXVsdC5xdWVzdGlvbnMubGVuZ3RoLTE/KHRoaXMuYWN0aXZlSW5kZXgrKyxoLnN0cmluZy5yZW1vdmVDaGlsZChoLnNTYW1wbGUpLGgua2Vybi5yZW1vdmVDaGlsZChoLmNvbXBhcmUpLGgua2Vybi5hcHBlbmRDaGlsZChoLm5vdGljZSksdGhpcy5tYWtlTmV4dFF1ZXN0aW9uKCkpOnRoaXMubWFrZVJlc3VsdCgpfX0se2tleToicmVzdGFydCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZUluZGV4PTAsdGhpcy5yZXN1bHRzPVtdLGgua2Vybi5yZW1vdmVDaGlsZChoLnJlc3VsdCksaC5rZXJuLmFwcGVuZENoaWxkKGguZGVzYyksaC5rZXJuLmFwcGVuZENoaWxkKGgucGFnZXMpLGgua2Vybi5hcHBlbmRDaGlsZChoLnN0cmluZyksaC5rZXJuLmFwcGVuZENoaWxkKGgubm90aWNlKSxoLmtlcm4uYXBwZW5kQ2hpbGQoaC5uZXh0QnRuKSx0aGlzLm1ha2VOZXh0UXVlc3Rpb24oKX19LHtrZXk6ImdldFJlc3VsdFRleHQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPSIiO3JldHVybiBjLmRlZmF1bHQucmVzdWx0cy5zb21lKGZ1bmN0aW9uKG4pe2lmKG4ucmFuZ2VbMF08PXQmJm4ucmFuZ2VbMV0+PXQpcmV0dXJuIGU9bi50ZXh0LCEwfSksZX19LHtrZXk6Im1ha2VSZXN1bHQiLHZhbHVlOmZ1bmN0aW9uKCl7aC5rZXJuLnJlbW92ZUNoaWxkKGguZGVzYyksaC5rZXJuLnJlbW92ZUNoaWxkKGgucGFnZXMpLGgua2Vybi5yZW1vdmVDaGlsZChoLnN0cmluZyksaC5rZXJuLnJlbW92ZUNoaWxkKGguY29tcGFyZSksaC5rZXJuLnJlbW92ZUNoaWxkKGgubmV4dEJ0bik7dmFyIHQ9TWF0aC5yb3VuZCh0aGlzLnJlc3VsdHMucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sMCkvdGhpcy5yZXN1bHRzLmxlbmd0aCk7KDAscy5yZXF1ZXN0QW5pbWF0ZSkoe2R1cmF0aW9uOjEwKnQsdGltaW5nOmZ1bmN0aW9uKHQpe3JldHVybiB0fSxkcmF3OmZ1bmN0aW9uKGUpe3ZhciBuPU1hdGguY2VpbCh0KmUpO2guclNjb3JlLnRleHRDb250ZW50PW4rIiUiLDE9PT1lJiYoaC5yU2NvcmUudGV4dENvbnRlbnQ9bisiJSDRgtC+0YfQvdC+0YHRgtC4Iil9fSksaC5yU2NvcmVUZXh0LnRleHRDb250ZW50PXRoaXMuZ2V0UmVzdWx0VGV4dCh0KSxoLmtlcm4uYXBwZW5kQ2hpbGQoaC5yZXN1bHQpLCgwLGEucmVtb3ZlQ2hpbGRyZW4pKGguclNoYXJlKSxvLm1ha2UoaC5yU2hhcmUse3VybDp0aGlzLnBhcmFtcy5zaGFyZS51cmwrdCx0aXRsZTp0aGlzLnBhcmFtcy5zaGFyZS50aXRsZSx0d2l0dGVyOnRoaXMucGFyYW1zLnNoYXJlLnRpdGxlfSl9fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYWN0aXZlSW5kZXg9MCx0aGlzLnJlc3VsdHM9W10sdGhpcy5jcmVhdGVFbGVtZW50cygpLCgwLGEucmVtb3ZlQ2hpbGRyZW4pKHRoaXMuY29udGFpbmVyKSx0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChoLmtlcm4pLHRoaXMubWFrZU5leHRRdWVzdGlvbigpLHRoaXMucGFyYW1zLnNoYXJlPXRoaXMucGFyYW1zLnNoYXJlfHx7fX19XSksZX0oKTtlLmRlZmF1bHQ9Zn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQpe3ZhciBlLG4saT10LmNoaWxkcmVuWzBdO2Z1bmN0aW9uIGEoaSl7aWYoInBhdGgiPT09aS50YXJnZXQudGFnTmFtZSYmdC5kYXRhc2V0LmRyYWdnYWJsZSl7aWYoIWkudGFyZ2V0LnByZXZpb3VzU2libGluZ3x8IWkudGFyZ2V0Lm5leHRTaWJsaW5nKXJldHVybiB2b2lkKDAsci5hbmltYXRlKShpLnRhcmdldCwic2hha2VFZmZlY3QiLCI4MDBtcyIpO2U9aS50YXJnZXQsbj1sKGkpLGUuY2xhc3NMaXN0LmFkZCgiaXMtZHJhZ2dlZCIpLGUuZ2V0QXR0cmlidXRlKCJkYXRhLXgiKSYmKG4ueC09cGFyc2VGbG9hdChlLmdldEF0dHJpYnV0ZSgiZGF0YS14IikpKX19ZnVuY3Rpb24gbyhyKXtpZihlKXtyLnByZXZlbnREZWZhdWx0KCksci50b3VjaGVzJiYocj1yLnRvdWNoZXNbMF0pO3ZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1sKHIpLG89YS54LW4ueDtyLmNsaWVudFg+PWkueCYmci5jbGllbnRYPD1pLngraS53aWR0aCYmKGUuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitvKyIsIDApIiksZS5zZXRBdHRyaWJ1dGUoImRhdGEteCIsbykpfX1mdW5jdGlvbiBzKHQpe2UmJihlLmNsYXNzTGlzdC5yZW1vdmUoImlzLWRyYWdnZWQiKSxlPW51bGwpfWZ1bmN0aW9uIGwodCl7dmFyIGU9aS5nZXRTY3JlZW5DVE0oKTtyZXR1cm4gdC50b3VjaGVzJiYodD10LnRvdWNoZXNbMF0pLHt4Oih0LmNsaWVudFgtZS5lKS9lLmEseToodC5jbGllbnRZLWUuZikvZS5kfX10LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsYSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLG8pLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIscyksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixzKSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGEpLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixvKSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixzKSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobGVhdmUiLHMpLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLHMpfTt2YXIgcj1uKDEyKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXtkZXNjcmlwdGlvbjoi0JLRi9Cy0LXRgNC10L3QvdGL0LUg0YDQsNGB0YHRgtC+0Y/QvdC40Y8g0LzQtdC20LTRgyDQsdGD0LrQstCw0LzQuCDigJQg0YHQstC+0LnRgdGC0LLQviDRhdC+0YDQvtGI0LXQs9C+INGI0YDQuNGE0YLQsC4g0J/QvtC/0YDQvtCx0YPQudGC0LUg0LLRi9GB0YLQsNCy0LjRgtGMINC/0YDQsNCy0LjQu9GM0L3Ri9C1INGA0LDRgdGB0YLQvtGP0L3QuNGPINCy0YDRg9GH0L3Rg9GOLCDQtNCy0LjQs9Cw0Y8g0LHRg9C60LLRiyDQstC90YPRgtGA0Lgg0YHQu9C+0LIuIixxdWVzdGlvbnM6W3tub3RpY2U6IiIsc3ZnOic8c3ZnIHZpZXdCb3g9IjAgMCAzNjguNzkgODUuMzEiPjxwYXRoIGQ9Ik01MC4xNSAzLjUxQTM4LjMxIDM4LjMxIDAgMCAwIDMzLjI2IDBIMHY4NS4zMWgxNy41OFY1NS4yNWgxNS40MXExNS4xOCAwIDIzLjczLTcuMjF0OC42MS0xOS44YTI3LjcgMjcuNyAwIDAgMC0zLjkzLTE0LjcxQTI1LjgyIDI1LjgyIDAgMCAwIDUwLjE1IDMuNTF6bS02LjI2IDM0LjIycS0zLjYzIDMuMjgtMTAuNjMgMy4yOEgxNy41OFYxNC4yNGgxNi4xMXE2LjUuMTIgMTAuMiA0YTE0LjA3IDE0LjA3IDAgMCAxIDMuNjkgMTAuMDdxMCA2LjE0LTMuNjkgOS40MnoiLz48cGF0aCBkPSJNNzguNTcgMGgxNy41OHY4NS4zMUg3OC41N3oiLz48cGF0aCBkPSJNMTgwLjI5IDBoLTIwLjIxbC0xNiAyOS40MUwxMjguMDkgMGgtMjAuMjJsMjQuODUgNDIuMy0yNS40OSA0My4wMWgyMC40NWwxNi40LTI5Ljg4IDE2LjQxIDI5Ljg4aDIwLjQ1TDE1NS40NSA0Mi4zIDE4MC4yOSAweiIvPjxwYXRoIGQ9Ik0yMzQuNzMgNjEuODhMMjEyLjgxIDBoLTIyLjk3djg1LjMxaDE3LjU4VjYxLjk5bC0xLjc2LTQwLjE5IDIyLjk3IDYzLjUxaDEyLjA3bDIzLjAzLTYzLjU3LTEuNzYgNDAuMjV2MjMuMzJoMTcuNjRWMGgtMjMuMDlsLTIxLjc5IDYxLjg4eiIvPjxwYXRoIGQ9Ik0zMzYuODUgMGgtMTYuMjlsLTMxLjc1IDg1LjMxaDE4LjY5bDUuODYtMTcuNThoMzAuODJsNS45MiAxNy41OGgxOC42OXpNMzE4LjEgNTMuNWwxMC42MS0zMS45MyAxMC43MiAzMS45M0gzMTguMXoiLz48L3N2Zz4nfSx7bm90aWNlOiLQmNGB0L/QvtC70YzQt9GD0Y8g0YLRgNC10LrQuNC90LMsINC80L7QttC90L4g0YDQsNC30LTQstC40L3Rg9GC0Ywg0YLQtdC60YHRgiDigJQg0YDQsNCy0L3QvtC80LXRgNC90L4g0YPQstC10LvQuNGH0LjRgtGMINCy0YHQtSDQuNC90YLQtdGA0LLQsNC70Ysg0LzQtdC20LTRgyDQsdGD0LrQstCw0LzQuC4iLHN2ZzonPHN2ZyB2aWV3Qm94PSIwIDAgNTQ5LjIgMTE2LjcyIj48cGF0aCBkPSJNODAuNTcgMzEuMzRoLTQuNTFhNTAuNDUgNTAuNDUgMCAwIDAtNS44Ni0xMS40M3EtNC02LjA5LTcuMzgtNi41Ni0xLjg3LS4yMy00LjYzLS40MXQtNC43NS0uMThoLTIuNzV2NjUuMjNhOC44MSA4LjgxIDAgMCAwIC43NiAzLjcxIDUuNDYgNS40NiAwIDAgMCAzIDIuNTIgMjguMDYgMjguMDYgMCAwIDAgNC4xNiAxLjExcTIuODcuNTMgNC44Ni43NnY0LjYxSDE3LjExdi00LjU3bDQuNzMtLjQzYTE3Ljc3IDE3Ljc3IDAgMCAwIDQuMjItLjgyIDUuNDYgNS40NiAwIDAgMCAzLTIuNTIgOC41NyA4LjU3IDAgMCAwIC43OC0zLjc5di02NS44aC0yLjcxcS0yIDAtNC43NS4xOHQtNC42My40MXEtMy40LjQ3LTcuNDQgNi41NmE1MS42NyA1MS42NyAwIDAgMC01LjggMTEuNDNIMFY3LjU2aDgwLjU3djIzLjc4eiIvPjxwYXRoIGQ9Ik0xNDMuMTUgNDMuM2ExMi4xMSAxMi4xMSAwIDAgMS0yLjc1IDcuODUgOSA5IDAgMCAxLTcuMjcgMy4zNCAxMiAxMiAwIDAgMS03LjI5LTIuMTcgNy40NCA3LjQ0IDAgMCAxLTIuOTMtNi4zOSAxMy4wOSAxMy4wOSAwIDAgMSAuMjktMy4xNnEuMjktMS4xNy41My0yLjE3YTEyLjM1IDEyLjM1IDAgMCAwLTUuNjggMS44OCAxOC42OSAxOC42OSAwIDAgMC01LjIxIDQuNjh2MzIuMTdhNy44NyA3Ljg3IDAgMCAwIC42NCAzLjQgNC41NSA0LjU1IDAgMCAwIDIuMTcgMi4xMSAxNS42MiAxNS42MiAwIDAgMCA0LjE2IDEuMTFxMi45My40MSA0LjIyLjQ3djQuMjhIODQuNzl2LTQuMjhxMS40Ni0uMTIgMi45My0uMjlhMTYgMTYgMCAwIDAgMi41OC0uNTkgNC4zMSA0LjMxIDAgMCAwIDIuNTgtMiA3LjYgNy42IDAgMCAwIC43LTMuNTJWNDUuOTNhNy4wOCA3LjA4IDAgMCAwLTEtMy43NSA4LjUxIDguNTEgMCAwIDAtMi40LTIuNyA5LjYzIDkuNjMgMCAwIDAtMi43LTEuMTcgMTguMTggMTguMTggMCAwIDAtMy41MS0uNjF2LTQuM2wyNy45NS0xLjUyLjkyLjg3djguNWguMjNhMzQuMjIgMzQuMjIgMCAwIDEgOC41Ni03LjMyIDE4LjQzIDE4LjQzIDAgMCAxIDkuNDktMi43IDExLjU4IDExLjU4IDAgMCAxIDguNzMgMy40IDExLjczIDExLjczIDAgMCAxIDMuMyA4LjY3eiIvPjxwYXRoIGQ9Ik0yMTQuMjIgODkuNDdhNDQuMjcgNDQuMjcgMCAwIDEtNi4wOSAyLjA1IDI4Ljc3IDI4Ljc3IDAgMCAxLTcuNDQuOTRxLTcuMjEgMC0xMC42MS0yLjExYTEwLjg1IDEwLjg1IDAgMCAxLTQuNjMtNi4xNWgtLjM1YTM2LjQ5IDM2LjQ5IDAgMCAxLTMuODcgMy40IDIxLjE0IDIxLjE0IDAgMCAxLTMuOTMgMi40IDI2LjQ3IDI2LjQ3IDAgMCAxLTUuMzMgMS44OCAzMC4xNCAzMC4xNCAwIDAgMS03LjA5LjY0IDE3LjU4IDE3LjU4IDAgMCAxLTExLjYtNCAxMy4yNSAxMy4yNSAwIDAgMS00LjgtMTAuNjYgMTcuNCAxNy40IDAgMCAxIDEuMDUtNi40NSAxNC42IDE0LjYgMCAwIDEgMy00Ljc1IDE1LjY5IDE1LjY5IDAgMCAxIDQtMy4xMSA0Ny41MSA0Ny41MSAwIDAgMSA1LjEtMi4yOXE1LjI3LTEuOTMgMTIuNjYtNGE3My4xNSA3My4xNSAwIDAgMCAxMC43OC0zLjc1di01LjU4cTAtMS40Ni0uMjQtMy44N2ExMi41IDEyLjUgMCAwIDAtMS00IDcuNzMgNy43MyAwIDAgMC0yLjU4LTMuMTYgNy42NSA3LjY1IDAgMCAwLTQuNjMtMS4yOSAxMC45MSAxMC45MSAwIDAgMC00LjM0Ljc2IDEzLjY5IDEzLjY5IDAgMCAwLTIuNzUgMS40NiAyMy4xMyAyMy4xMyAwIDAgMCAxIDMuNTcgMTQuMyAxNC4zIDAgMCAxIC44MiA0LjYzIDggOCAwIDAgMS0uNTMgMi41MiA1LjU2IDUuNTYgMCAwIDEtMS41MiAyLjM0IDEwIDEwIDAgMCAxLTMgMS44MiAxNC45MSAxNC45MSAwIDAgMS01LjEuNjRxLTQuOTIgMC03LjQ0LTIuMzRhOC4yIDguMiAwIDAgMS0yLjUyLTYuMjEgOC4wOCA4LjA4IDAgMCAxIDIuNi01LjkgMjEuNDIgMjEuNDIgMCAwIDEgNi4zOS00LjM0IDM1LjU4IDM1LjU4IDAgMCAxIDguNS0yLjcgNDQuMDcgNDQuMDcgMCAwIDEgOC45MS0xIDcxLjQyIDcxLjQyIDAgMCAxIDEwLjQzLjcgMjQuMjEgMjQuMjEgMCAwIDEgOC41NiAyLjc1IDE0LjYyIDE0LjYyIDAgMCAxIDUuNzQgNiAyMC42NCAyMC42NCAwIDAgMSAyLjE3IDEwLjE0cTAgNi42Mi0uMjkgMTUuN3QtLjIzIDEyYTkuNDEgOS40MSAwIDAgMCAuNzYgNC4xNiA1LjE5IDUuMTkgMCAwIDAgMi40NiAyLjI5IDguODggOC44OCAwIDAgMCAzLjEuNTlxMi4xNy4wNiAzLjkzLjA2djQuMjh6TTE4NS4xIDU4Ljk0cS0zLjI4IDEuMTEtNi41IDIuNThhMjUuMSAyNS4xIDAgMCAwLTUuMjcgMyAxMS4yOSAxMS4yOSAwIDAgMC0zLjQgNC4yMiAxMy40OSAxMy40OSAwIDAgMC0xLjIzIDZxMCA0LjU3IDIuMDUgNi42MmE3LjEyIDcuMTIgMCAwIDAgNS4xNiAyLjA1IDkuNzcgOS43NyAwIDAgMCA1LjI3LTEuMjkgMTUuNTYgMTUuNTYgMCAwIDAgMy42Ni0zLjMxeiIvPjxwYXRoIGQ9Ik0yNTIuMTkgOTIuNTdhNDEgNDEgMCAwIDEtMTQuNDEtMi4zNCAyOC42NyAyOC42NyAwIDAgMS0xMC4yNi02LjUzIDI2LjUyIDI2LjUyIDAgMCAxLTYtOS44NCAzNy4xNCAzNy4xNCAwIDAgMS0yLTEyLjM2IDI4LjcgMjguNyAwIDAgMSAyLjQtMTEuNiAzMiAzMiAwIDAgMSA2LjYyLTkuNjcgMzEgMzEgMCAwIDEgMTAuNjEtNi44IDM3LjI0IDM3LjI0IDAgMCAxIDE0LjA2LTIuNThxMTAuNzggMCAxNy4wNSA0LjF0Ni4yNyAxMWExMCAxMCAwIDAgMS0yLjIzIDYuOHEtMi4yMyAyLjU4LTcuNjggMi41OGExMi40OCAxMi40OCAwIDAgMS03LjM4LTIuMTEgNi40OSA2LjQ5IDAgMCAxLTIuOTUtNS41MiAxNy44NyAxNy44NyAwIDAgMSAuOTQtNS42OCAyMy44OSAyMy44OSAwIDAgMCAxLjExLTQuMzIgNC4yNCA0LjI0IDAgMCAwLTEuNjQtMS41OCA2LjMzIDYuMzMgMCAwIDAtMy4xMS0uNTkgOS41NiA5LjU2IDAgMCAwLTQuOCAxLjIzIDExLjg1IDExLjg1IDAgMCAwLTQgNC4zNCAyNS44NiAyNS44NiAwIDAgMC0yLjk1IDcuODggNTcuMzMgNTcuMzMgMCAwIDAtMS4wNSAxMS44NHEwIDEwLjQzIDQuODYgMTYuODJ0MTEuNzIgNi4zOXE2LjUgMCAxMC4zMS0yLjg3YTI2LjI1IDI2LjI1IDAgMCAwIDYuODYtOC4yNmw0LjM5IDNhMzQuMTEgMzQuMTEgMCAwIDEtNC4zNCA2LjU2IDI4IDI4IDAgMCAxLTYgNS4yMSAzMS41MiAzMS41MiAwIDAgMS03LjUgMy42MyAyOC44MSAyOC44MSAwIDAgMS04LjkgMS4yN3oiLz48cGF0aCBkPSJNMzU3LjY2IDkwLjdoLTI3LjZxLTUuMS05LTkuMzItMTUuMTh0LTgtMTEuNmwtMy41MiAzVjc5LjdhOC43MyA4LjczIDAgMCAwIC41OSAzLjQ2IDQgNCAwIDAgMCAyLjQgMiAxNS4xMyAxNS4xMyAwIDAgMCAyLjQ2LjgyIDE3LjYyIDE3LjYyIDAgMCAwIDIuODEuNDd2NC4yNWgtMzYuMjN2LTQuMjhxMS40Ny0uMTIgMi45My0uMjlhMTguMTcgMTguMTcgMCAwIDAgMi41OC0uNTkgNC4wNiA0LjA2IDAgMCAwIDIuNTItMiA3LjYgNy42IDAgMCAwIC43LTMuNTJWMTQuN2ExMC4wOCAxMC4wOCAwIDAgMC0uODgtNCA2LjM2IDYuMzYgMCAwIDAtMi40Ni0zLjE2IDEwLjUxIDEwLjUxIDAgMCAwLTMuMzQtMS4xNyAyOC44MiAyOC44MiAwIDAgMC00LS41OVYxLjUyTDMwOC4zOCAwbC44OC45NFY2MS40cTQuMzQtMy44NyA5LjczLTl0OC43My04LjQ0YTcuNCA3LjQgMCAwIDAgMi4xMS0zIDkuMSA5LjEgMCAwIDAgLjIzLTEuMjlxMC0xLjA1LTEuODctMS43NmEyNi44MyAyNi44MyAwIDAgMC01LjUxLTEuMjF2LTQuMTNoMjkuNzd2NGE2MC4wOCA2MC4wOCAwIDAgMC05IDMuMTEgNTEuMjMgNTEuMjMgMCAwIDAtNi42MSAzLjg1cS0yLjQgMS41OC00LjY5IDMuMzR0LTUuMTYgNC4yOHE1Ljc0IDguMzIgMTAuNjEgMTUuNDF0MTAuMiAxNWE4Ljg5IDguODkgMCAwIDAgNC41MSAzLjY5IDIyLjIzIDIyLjIzIDAgMCAwIDUuMzkgMS4xN3Y0LjI4eiIvPjxwYXRoIGQ9Ik0zNzUuMjQgMjEuNWExMS41OCAxMS41OCAwIDAgMCA4LjA5LTMuMTEgMTAgMTAgMCAwIDAgMy40Ni03LjYyIDEwIDEwIDAgMCAwLTMuNC03LjYyQTExLjU0IDExLjU0IDAgMCAwIDM3NS4yNCAwYTExLjc0IDExLjc0IDAgMCAwLTguMiAzLjE2IDEwIDEwIDAgMCAwLTMuNCA3LjYyIDEwIDEwIDAgMCAwIDMuNCA3LjYyIDExLjg3IDExLjg3IDAgMCAwIDguMiAzLjF6TTM5Mi40MSA4NS44NGExOS44MyAxOS44MyAwIDAgMS0yLjU3LS45NCA1LjM4IDUuMzggMCAwIDEtMi41Mi0yLjExIDYuNzEgNi43MSAwIDAgMS0uODgtMy41MlYzMi43NWwtLjg4LS44OC0yOC43MiAxLjUzdjQuM2EyMC4yNCAyMC4yNCAwIDAgMSAzLjg3LjgyIDEyLjQzIDEyLjQzIDAgMCAxIDMuMjIgMS4zNSA3LjY3IDcuNjcgMCAwIDEgMi4zNCAyLjUyIDYuNjggNi42OCAwIDAgMSAuOTQgMy41N3YzNC4xYTcuMTEgNy4xMSAwIDAgMS0uNzYgMy41MiA0LjkgNC45IDAgMCAxLTIuNjQgMiAxMC40MSAxMC40MSAwIDAgMS0yLjUyLjU5cS0xLjQ2LjE4LTMgLjI5djQuMjRoMzd2LTQuMjhhMTcuNjggMTcuNjggMCAwIDEtMi44OC0uNTh6Ii8+PHBhdGggZD0iTTQ3OC4wNyA5MC43aC0zNS4yM3YtNC4yOGwyLjctLjI5YTcuNCA3LjQgMCAwIDAgMi40LS41OSAzLjczIDMuNzMgMCAwIDAgMS43MS0xLjg0IDkuNjMgOS42MyAwIDAgMCAuNTMtMy42M1Y1Mi42MXEwLTYtMi4yMy05YTcuNCA3LjQgMCAwIDAtNi40NS0zIDEzLjQ2IDEzLjQ2IDAgMCAwLTQuMzkuNyAxNi40NSAxNi40NSAwIDAgMC0zLjkzIDIuMDUgMTQuMjcgMTQuMjcgMCAwIDAtMi43NSAyLjRxLTEgMS4yMy0xLjcgMi4xN3YzMS40NmE5IDkgMCAwIDAgLjU5IDMuNDYgNC4xMSA0LjExIDAgMCAwIDEuOTMgMi4wNSAxMS4yMiAxMS4yMiAwIDAgMCAyLjM0Ljk0IDE4LjI1IDE4LjI1IDAgMCAwIDIuNzUuNTl2NC4yN2gtMzUuNjF2LTQuMjhxMS40Ni0uMTIgMi45My0uMjlhMTYgMTYgMCAwIDAgMi41OC0uNTkgNC4zMSA0LjMxIDAgMCAwIDIuNTgtMiA3LjYxIDcuNjEgMCAwIDAgLjctMy41MlY0NS45M2E3LjUyIDcuNTIgMCAwIDAtLjk0LTMuNTcgOC4zNyA4LjM3IDAgMCAwLTIuNDYtMi44NyA5LjYyIDkuNjIgMCAwIDAtMi43LTEuMTcgMTguMTkgMTguMTkgMCAwIDAtMy41Mi0uNjRWMzMuNGwyNy45NC0xLjUzLjg4Ljg4djguNWguMjNxMS42NC0xLjQ2IDQtMy41MmEzOC40NSAzOC40NSAwIDAgMSA0LjM0LTMuMzQgMjEuMDUgMjEuMDUgMCAwIDEgNS42OC0yLjQgMjcuNCAyNy40IDAgMCAxIDcuNS0xcTkuNTUgMCAxNC4zIDUuNDV0NC44IDE0LjM2djI4LjcxYTcuNzkgNy43OSAwIDAgMCAuNjQgMy40NiA0LjU1IDQuNTUgMCAwIDAgMi40IDIuMDUgMjEuMTggMjEuMTggMCAwIDAgMi4yOS44MiAxNy42IDE3LjYgMCAwIDAgMy4xNi41OXY0LjI3eiIvPjxwYXRoIGQ9Ik01NDkuMiAzOS4xNGgtMTIuODlhMTguMDcgMTguMDcgMCAwIDEgMy40IDUuNDUgMTUuNjcgMTUuNjcgMCAwIDEgMS4xNyA2IDE0LjQ1IDE0LjQ1IDAgMCAxLTIuMTcgNy42MiAxNy43MyAxNy43MyAwIDAgMS01LjY4IDUuNzQgMjkuNzYgMjkuNzYgMCAwIDEtOC4zOCAzLjU3IDQwLjE1IDQwLjE1IDAgMCAxLTEwLjQzIDEuMjloLTkuNTVhOC41NyA4LjU3IDAgMCAwLTEuNTggMS43IDMuNjcgMy42NyAwIDAgMC0uODIgMi4xNyAzLjYyIDMuNjIgMCAwIDAgMi4wNSAzLjU3cTIuMDUgMSA3LjQ0IDEuMTF0MTAuNzguNDdxNS40NS4yOSA3Ljc5LjM1YTIyLjggMjIuOCAwIDAgMSA2Ljc0IDEuNDEgMjAgMjAgMCAwIDEgNS43NyAzLjExIDE2LjM1IDE2LjM1IDAgMCAxIDQuNDUgNS4yNyAxNC44MyAxNC44MyAwIDAgMSAxLjc2IDcuMzIgMTcuMDcgMTcuMDcgMCAwIDEtMi4xNyA4LjM4IDE4Ljg1IDE4Ljg1IDAgMCAxLTYuNSA2LjggMzcuMTcgMzcuMTcgMCAwIDEtMTEuMTMgNC42MyA2NiA2NiAwIDAgMS0xNiAxLjY0cS0xNS40MS0uMDQtMjMuNDEtMy43N3QtOC0xMS4yN3EwLTQuNjMgNC4zNC03LjYydDEzLjQ4LTMuMjh2LS43YTIxLjggMjEuOCAwIDAgMS04LjQ0LTQuOCA5Ljc1IDkuNzUgMCAwIDEtMy03IDcuMTUgNy4xNSAwIDAgMSAxLjE3LTQuMTYgMTIuNTkgMTIuNTkgMCAwIDEgMy4xMS0zIDE1LjcxIDE1LjcxIDAgMCAxIDQtMS44N3EyLjM0LS44MiAzLjkzLTEuMjl2LS42NnEtNy45MS0yLjkzLTExLjY2LTcuMTVhMTUuMTEgMTUuMTEgMCAwIDEtMy42OS0xMC4zMXEwLTguNjEgNy45MS0xMy43N3QyMC4xNi01LjE2YTQxIDQxIDAgMCAxIDcuNjcuN3EzLjc1LjY0IDUuNjggMS4xN2gyMi43M3Y2LjMzem0tMjcuNDggMTEuMTlxMC02Ljg2LTIuMTctMTAuODRhNy42MiA3LjYyIDAgMCAwLTEwLjY2LTIuODcgNy42NyA3LjY3IDAgMCAwLTIuNzUgMy4wOCAxNC43IDE0LjcgMCAwIDAtMS4zNSA0LjY5IDQxLjI3IDQxLjI3IDAgMCAwLS4zNSA1LjQ1IDIxLjg2IDIxLjg2IDAgMCAwIDIuMjMgMTAuNDlxMi4yMyA0LjEgNi4zMyA0LjFhNy4xIDcuMSAwIDAgMCA2LjQ1LTMuNjlxMi4yNy0zLjY3IDIuMjctMTAuNDF6bTkuODQgNDkuMjJhOC4xMSA4LjExIDAgMCAwLTEuMTEtNHEtMS4xMS0xLjkzLTUtMy4xNmE1Ni4xNiA1Ni4xNiAwIDAgMC03LS40N3EtNC44LS4xMi0xMy4yNC0uMTJhMTYuMjIgMTYuMjIgMCAwIDAtMy4zNyA0LjE3IDExLjY4IDExLjY4IDAgMCAwLTEuMzUgNS44IDcuNyA3LjcgMCAwIDAgLjgyIDMuMjIgMTAgMTAgMCAwIDAgMi41OCAzLjI4IDE1LjY3IDE1LjY3IDAgMCAwIDQuNTcgMi42NCAyMS45NCAyMS45NCAwIDAgMCA3LjYyIDFxNy41NiAwIDExLjU0LTIuOTN0My45NS05LjQzeiIvPjwvc3ZnPid9LHtub3RpY2U6ItCa0LXRgNC90LjQvdCzINC90YPQttC10L0sINGH0YLQvtCx0Ysg0YHQtNCy0LjQvdGD0YLRjCDQvtC/0YDQtdC00LXQu9GR0L3QvdGL0LUg0L/QsNGA0Ysg0LHRg9C60LIuINCaINC/0YDQuNC80LXRgNGDLCBBINC4IFYsINGB0YLQvtGA0L7QvdGLINC60L7RgtC+0YDRi9GFINGB0L7Qt9C00LDQvdGLINC00YDRg9CzINC00LvRjyDQtNGA0YPQs9CwLiIsc3ZnOic8c3ZnIHZpZXdCb3g9IjAgMCA1MDIuMTUgMTAxLjA3Ij48cGF0aCBkPSJNMjEuOTEgNTAuNjlWNjRoNC4zNHE0LjM0IDAgNi4xNSAxLjdhNS40OCA1LjQ4IDAgMCAxIDEuODcgNC4zIDUuNTkgNS41OSAwIDAgMS0xLjg3IDQuMzRRMzAuNTggNzYgMjYuMjUgNzZIOC4wMnEtNC4zNCAwLTYuMjEtMS42NEE1Ljc1IDUuNzUgMCAwIDEgMCA3MGE1LjQxIDUuNDEgMCAwIDEgMS44OC00LjI4UTMuNzUgNjQgOC4wMiA2NEg5LjlWMTdIOC4wMnEtNC4zNCAwLTYuMjEtMS42NEE1Ljc1IDUuNzUgMCAwIDEgMCAxMWE1LjU2IDUuNTYgMCAwIDEgMS44MS00LjM4cTEuODgtMS43IDYuMjEtMS43TDI2LjI1IDVxNC4zNCAwIDYuMTUgMS42NEE1LjQ4IDUuNDggMCAwIDEgMzQuMjcgMTFhNS42NiA1LjY2IDAgMCAxLTEuODcgNC4zOVEzMC41OCAxNyAyNi4yNSAxN2gtNC4zNHYxNy44MWwyMS4zMy0xOC4zNGE5LjMgOS4zIDAgMCAxLTIuNTgtMi41MiA1LjQ5IDUuNDkgMCAwIDEtLjctMi44NyA1LjgxIDUuODEgMCAwIDEgMS44Mi00LjQ1cTEuODgtMS43IDYuMjEtMS43TDYwLjIzIDVxNC4zNCAwIDYuMTUgMS42NEE1LjQ4IDUuNDggMCAwIDEgNjguMjYgMTFhNS41OSA1LjU5IDAgMCAxLTEuODcgNC4zNFE2NC41NyAxNyA2MC42NCAxN0wzOS4wOCAzNS44NmEzNy45IDM3LjkgMCAwIDEgMTEuMzEgMTAuNTVBNzQgNzQgMCAwIDEgNTkuODIgNjRoMy4yMnE0LjI4IDAgNi4wOSAxLjdhNS40OCA1LjQ4IDAgMCAxIDEuODggNC4zIDUuNjggNS42OCAwIDAgMS0xLjg1IDQuMzZRNjcuMzggNzYgNjMuMDQgNzZINTIuMTZhMTgyLjE2IDE4Mi4xNiAwIDAgMC04LjItMTcuMTFxLTMuNjMtNi42Mi02LjkxLTkuNjFhMjQuMzYgMjQuMzYgMCAwIDAtNy43My00Ljg2eiIvPjxwYXRoIGQ9Ik0xMzYuNjQgNTUuNDlIODcuMzZhMTUuNDUgMTUuNDUgMCAwIDAgNi42MiA3LjU2cTQuOCAyLjg3IDEyLjk1IDIuODcgNi42OCAwIDE3Ljc1LTIuODdhMzAuNzEgMzAuNzEgMCAwIDEgNi4zMy0xLjE3IDUuNCA1LjQgMCAwIDEgNCAxLjcgNS45MSA1LjkxIDAgMCAxIDEuNjQgNC4yOCA1LjI1IDUuMjUgMCAwIDEtMS43NiA0UTEzMi41OSA3NCAxMjMuNTEgNzZhODMuODQgODMuODQgMCAwIDEtMTcuNDYgMS45M3EtMTQuNDEgMC0yMy4wOS04LjE0YTI2LjUgMjYuNSAwIDAgMS04LjYxLTIwcTAtMTIuNjYgOS4zMi0yMC41N2EzMi4zMyAzMi4zMyAwIDAgMSAyMS41Ni04IDM0LjA5IDM0LjA5IDAgMCAxIDEzLjQyIDIuNTggMjguNTUgMjguNTUgMCAwIDEgOS4xNCA1LjU3IDM1LjEzIDM1LjEzIDAgMCAxIDcgMTAuNzIgMjYuNCAyNi40IDAgMCAxIDEuODggMTAuMzF2NS4xem0tMTMuMy0xMmExOC41NyAxOC41NyAwIDAgMC03LjE4LTcuNjkgMjAuODEgMjAuODEgMCAwIDAtMTAuNjEtMi41OCAyMC42OSAyMC42OSAwIDAgMC0xMC41NyAyLjU4IDE4Ljk0IDE4Ljk0IDAgMCAwLTcuMjcgNy42OGgzNS42M3oiLz48cGF0aCBkPSJNMTc2LjA3IDIyLjh2Ny41YTY2LjY3IDY2LjY3IDAgMCAxIDExLjg5LTcuMyAyMS41NyAyMS41NyAwIDAgMSA4LjItMS44MiAxOC4yIDE4LjIgMCAwIDEgMTEuMzcgNC4zNHEzLjc1IDIuOTMgMy43NSA2YTYgNiAwIDAgMS0xLjgyIDQuMzkgNS44MiA1LjgyIDAgMCAxLTQuMyAxLjc3IDcuMiA3LjIgMCAwIDEtNC42OS0yLjIzcS0yLjQ2LTIuMjMtNC4zOS0yLjIzLTIuNTIgMC03LjU2IDMuMTZhMTIxLjkgMTIxLjkgMCAwIDAtMTIuNDggOS40OVY2NGgxNy4xMnE0LjMzIDAgNi4xNSAxLjdhNS40OCA1LjQ4IDAgMCAxIDEuODUgNC4zIDUuNTkgNS41OSAwIDAgMS0xLjg3IDQuMzRRMTk3LjUyIDc2IDE5My4xNiA3NmgtMzYuMjVxLTQuMzQgMC02LjIxLTEuNjRhNS43NCA1Ljc0IDAgMCAxLTEuODItNC4zNiA1LjQ5IDUuNDkgMCAwIDEgMS44Mi00LjI4cTEuODgtMS43IDYuMjEtMS43aDcuMTVWMzQuODFoLTQuMzRxLTQuMzMgMC02LjIxLTEuNjRhNS43NSA1Ljc1IDAgMCAxLTEuODItNC4zOSA1LjQ5IDUuNDkgMCAwIDEgMS44Mi00LjI4cTEuODgtMS43IDYuMjEtMS43aDE2LjM1eiIvPjxwYXRoIGQ9Ik0yMzguNDcgMjIuOHY0YTIyLjg1IDIyLjg1IDAgMCAxIDcuMjEtNC4yMiAyNS43IDI1LjcgMCAwIDEgOC42MS0xLjQxcTEwLjY2IDAgMTYuODggNi42MiA0LjkyIDUuMjcgNC45MiAxMy44M1Y2NHEzLjgxIDAgNS42MyAxLjdhNiA2IDAgMCAxLS4wNiA4LjY3UTI3OS44NCA3NiAyNzUuNSA3NmgtMTAuODRxLTQuMzQgMC02LjIxLTEuNjRhNS43NCA1Ljc0IDAgMCAxLTEuODEtNC4zNiA1LjQ5IDUuNDkgMCAwIDEgMS44Mi00LjI4cTEuODItMS43IDUuNjMtMS43VjQxLjMxcTAtMy45My0yLjExLTUuNzQtMi43NS0yLjM0LTguMjYtMi4zNGExNS42OSAxNS42OSAwIDAgMC03LjMyIDEuNjRxLTMuMTEgMS41OC03LjkxIDYuOFY2NHE0LjYzIDAgNiAuODhhNS42OCA1LjY4IDAgMCAxIDIuODMgNS4xMiA1LjU5IDUuNTkgMCAwIDEtMS44NyA0LjM0UTI0My42MyA3NiAyMzkuMjkgNzZoLTEzLjY1cS00LjMzIDAtNi4yMS0xLjY0YTYuMTEgNi4xMSAwIDAgMSAxLTkuNDlxMS40MS0uODggNi0uODhWMzQuODFxLTMuODEgMC01LjYyLTEuN2E1LjY4IDUuNjggMCAwIDEtMS44Mi00LjM0IDUuNDkgNS40OSAwIDAgMSAxLjgyLTQuMjhxMS44OC0xLjcgNi4yMS0xLjdoMTEuNDN6Ii8+PHBhdGggZD0iTTM0OS4yMSA2NS42OVEzNDcuNCA2NCAzNDMuMDYgNjRoLTE0LjQxVjIyLjhoLTIxLjY4cS00LjM0IDAtNi4yMSAxLjdhNS40OSA1LjQ5IDAgMCAwLTEuODIgNC4yOCA1LjY2IDUuNjYgMCAwIDAgMS44OCA0LjM5cTEuODggMS42NCA2LjE1IDEuNjRoOS42N1Y2NGgtMTQuNDJxLTQuMzQgMC02LjIxIDEuN2E1LjQ5IDUuNDkgMCAwIDAtMS44NSA0LjMgNS43NSA1Ljc1IDAgMCAwIDEuODIgNC4zOXExLjkxIDEuNjEgNi4yNCAxLjYxaDQwLjg0cTQuMzQgMCA2LjE1LTEuNjRhNS41OSA1LjU5IDAgMCAwIDEuODgtNC4zNiA1LjQ4IDUuNDggMCAwIDAtMS44OC00LjMxek0zMTIuNzIgMGgxNC4zdjEyLjcxaC0xNC4zeiIvPjxwYXRoIGQ9Ik0zODIuNjEgMjIuOHY0YTIyLjg1IDIyLjg1IDAgMCAxIDcuMjEtNC4yMiAyNS43IDI1LjcgMCAwIDEgOC42MS0xLjQxcTEwLjY2IDAgMTYuODggNi42MiA0LjkyIDUuMjcgNC45MiAxMy44M1Y2NHEzLjgxIDAgNS42MyAxLjdhNiA2IDAgMCAxLS4wNiA4LjY3UTQyMy45OCA3NiA0MTkuNjQgNzZINDA4LjhxLTQuMzQgMC02LjIxLTEuNjRhNS43NSA1Ljc1IDAgMCAxLTEuODEtNC4zNiA1LjQ5IDUuNDkgMCAwIDEgMS44Mi00LjI4cTEuODItMS43IDUuNjMtMS43VjQxLjMxcTAtMy45My0yLjExLTUuNzQtMi43NS0yLjM0LTguMjYtMi4zNGExNS42OSAxNS42OSAwIDAgMC03LjMyIDEuNjRxLTMuMTEgMS41OC03LjkxIDYuOFY2NHE0LjYzIDAgNiAuODhhNS42OCA1LjY4IDAgMCAxIDIuODMgNS4xMiA1LjU5IDUuNTkgMCAwIDEtMS44NyA0LjM0UTM4Ny43NyA3NiAzODMuNDMgNzZoLTEzLjY1cS00LjM0IDAtNi4yMS0xLjY0YTYuMTEgNi4xMSAwIDAgMSAxLTkuNDlxMS40MS0uODggNi0uODhWMzQuODFxLTMuODEgMC01LjYyLTEuN2E1LjY4IDUuNjggMCAwIDEtMS43OS00LjM0IDUuNDkgNS40OSAwIDAgMSAxLjgyLTQuMjhxMS44OC0xLjcgNi4yMS0xLjdoMTEuNDN6Ii8+PHBhdGggZD0iTTQ4MC4wNSAyNi4zN1YyMi44aDE0LjExcTQuMzQgMCA2LjE1IDEuN2E1LjQ4IDUuNDggMCAwIDEgMS44NSA0LjMzIDUuNTkgNS41OSAwIDAgMS0xLjg3IDQuMzRxLTEuODIgMS42NC02LjE1IDEuNjRoLTIuMDV2NDMuNzFhMjEuNzIgMjEuNzIgMCAwIDEtMi43IDExIDIyLjU2IDIyLjU2IDAgMCAxLTguMTQgOC4xNCAyMy4xNyAyMy4xNyAwIDAgMS0xMi40MiAzLjRoLTEzLjYycS00LjM0IDAtNi4yMS0xLjdhNS40OSA1LjQ5IDAgMCAxLTEuODQtNC4yNiA1Ljc1IDUuNzUgMCAwIDEgMS44Mi00LjM5cTEuODgtMS42NCA2LjIxLTEuNjRoMTMuMjRxNS41MSAwIDguNTUtM2ExMC4xNCAxMC4xNCAwIDAgMCAzLTcuNTZ2LTUuODVhMzIuOTQgMzIuOTQgMCAwIDEtOC4xNCAzLjg3IDI5LjQ0IDI5LjQ0IDAgMCAxLTI4Ljk1LTYuODYgMjcuMzcgMjcuMzcgMCAwIDEtOC4yNi0yMC4yMSAyNy4yNSAyNy4yNSAwIDAgMSA4LjI2LTIwLjIxQTI4IDI4IDAgMCAxIDQ2My40NyAyMWEyOC4zNCAyOC4zNCAwIDAgMSAxNi41OCA1LjM3em0tLjA2IDIzYTE1LjYxIDE1LjYxIDAgMCAwLTQuOTItMTEuNDggMTYgMTYgMCAwIDAtMTEuNzItNC44NiAxNi4xNyAxNi4xNyAwIDAgMC0xMS43OCA0Ljg2IDE2LjA2IDE2LjA2IDAgMCAwIDAgMjMgMTYuMjcgMTYuMjcgMCAwIDAgMTEuNzggNC44IDE2LjA3IDE2LjA3IDAgMCAwIDExLjcyLTQuOEExNS42OCAxNS42OCAwIDAgMCA0ODAgNDkuNHoiLz48L3N2Zz4nfV0scmVzdWx0czpbe3JhbmdlOlswLDUwXSx0ZXh0OiLQryDRgNCw0LfQsdC40YDQsNGO0YHRjCDQsiDQutGR0YDQu9C40L3Qs9C1In0se3JhbmdlOls1MCw3NV0sdGV4dDoi0KMg0LzQtdC90Y8g0L3QtdC/0LvQvtGF0L7QuSDQs9C70LDQt9C+0LzQtdGAIn0se3JhbmdlOls3NSw5MF0sdGV4dDoi0JrQsNC20LXRgtGB0Y8sINGPINC00L7QuNCz0YDQsNC70YHRjyDRgdC+INGI0YDQuNGE0YLQsNC80LgifSx7cmFuZ2U6WzkwLDEwMF0sdGV4dDoi0K8g4oCUINGI0YDQuNGE0YLQvNC10LnRgdGC0LXRgCJ9XX19XSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWFsbC5qcy5tYXA='; s.async = true; s.onload = function () { var container1 = document.getElementById('canon-qa'); var container2 = document.getElementById('canon-kern'); if (container1) { var test = new Special.QA({ container: container1, share: { url: 'https://vc.ru/special/canon/qa/result/', title: 'Разбираетесь ли вы в шрифтах', } }); } if (container2) { var kern = new Special.Kern({ container: container2, share: { url: 'https://vc.ru/special/canon/kern/result/', title: 'Игра: расставьте интервалы между буквами', } }); } }; d.body.appendChild(s); })(document, 1);

Arial

В начале восьмидесятых Adobe выпускает PostScript — язык описания страниц. Это язык разметки, благодаря которому текстовые документы отображаются на экране и корректно печатаются. Adobe включили Helvetica в список четырёх базовых шрифтов и оставили код закрытым — за лицензию нужно было заплатить.

Несколько компаний «клонируют» PostScript и для экономии на лицензиях используют шрифты, похожие на оригинальные.

Шрифт Arial полностью повторяет пропорции Helvetica — размер букв идентичен, а плотность шрифта очень похожа. В дизайнерской среде эти шрифты часто сравнивают, но стилистически Arial имеет сходство с ещё одним шрифтом — Monotype Grotesque.

Сравнение Arial с Monotype Grotesque и Helvetica

Arial появился в одном из аналогов PostScript и, благодаря повтору пропорций Helvetica, текст не менялся — сохранялась длина строк и его внешний вид.

Microsoft отказывается лицензировать популярные шрифты и в 1992 году включает именно Arial в список стандартных шрифтов Windows. В этот момент шрифт уходит от своего старого названия — Sonoran Sans Serif. Популярность Arial сопутствовала распространению операционной системы.

Roboto

В операционной системе Android долгое время использовался шрифт Droid, разработанный в молодой американской студии. В 2010 году её поглощает шрифтовой гигант Monotype и, по всей видимости, меняет условия лицензии. Уже на следующий год Google презентует собственный шрифт, позволяющий больше её не оплачивать.

За основу была взята стилистика Akzidenz-Grotesk и его последователей, но дизайнеры шрифта активно с ней экспериментируют. Их идея — сделать шрифт «дружелюбнее». Элементы некоторых букв вдохновлены другим шрифтовым направлением и получаются более «рукописными» и открытыми.

Меня всегда бесило, что Helvetica и её подобия заканчивают концевой элемент на букве «g». Это просто неуклюже. Ручкой так не пишут, концевые элементы не задираются вверх (разве что на буквах «s» и «a»).

Кристиан Робертсон
автор шрифта Roboto
Концевой элемент на «g» в Roboto срезается раньше, чем у его вдохновителей, это делает букву более открытой

Дизайнерская публицистика не оценила такое сочетание и назвала Roboto четырёхголовым «франкеншрифтом». Эксперты обратили внимание на плохую гармонию нескольких стилей.

В дальнейшем шрифт претерпел ещё несколько редакций, стал ещё «дружелюбнее». Это выражается, например, в округлении некоторых букв и знаках препинания.

Шрифт становится «добрее». Фрагмент из ролика о реновации шрифта

Эти шрифты хорошо смотрятся на экране, но не менее важно и то, как они выглядят на бумаге. Их могут использовать не только дизайнеры, но и люди других профессий — в документах, презентациях, графиках. Печать подобных материалов может показаться неэкономичным занятием, но у инженеров Canon есть решение.

В принтерах серии PIXMA G нет привычных картриджей, вместо них — система непрерывной подачи чернил. Краска для печати поступает из специальных ёмкостей, и перезаправлять их придётся гораздо реже, чем в случае с моделями, где надо менять картриджи. По расходам на печать это один из самых экономичных вариантов.

Более того, у чернил различается состав — черные, пигментные, подойдут для печати текстов, а цветные, водорастворимые — для фотографий и любых других цветных изображений. На стартовом комплекте чернил принтер напечатает 7 тысяч цветных документов и до 12 тысяч чёрно-белых.

Подробности

#партнерский

{ "author_name": "Михаил Тепловодский", "author_type": "editor", "tags": ["\u043f\u0430\u0440\u0442\u043d\u0435\u0440\u0441\u043a\u0438\u0439","advertising"], "comments": 0, "likes": 12, "favorites": 78, "is_advertisement": true, "subsite_label": "ad", "id": 43616, "is_wide": true }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления