# Полный обзор процесса проверки ботов и рекомендаций
### Введение
В современном интернете автоматизированные запросы от ботов представляют серьезную угрозу для безопасности, качества данных и пользовательского опыта. По оценкам аналитических компаний, более 30 % трафика в крупных сервисах генерируют скрипты, а не реальные пользователи, что приводит к искажению метрик и росту расходов на инфраструктуру. Для борьбы с этим появились специализированные решения, которые позволяют отличать человеческое взаимодействие от машинного, используя комбинацию поведенческих и технических факторов. Подробнее [ Полный обзор процесса проверки] ( https: //w...content-available-to-author-only...e.as/8ge4h3mxmwgl4.md) о том, как эти технологии интегрируются в бизнес‑процессы, можно узнать в специализированных обзорах.
! [ Article illustration] ( http: //localhost/home/kidsdan/promopilot.link/www/uploads/generated-images/2025/10/1761048354160-bfe9ec91.jpg)
Первоначальная цель верификации ботов – предотвратить автоматический доступ к ресурсам, защищая формы регистрации, онлайн‑платежи и API. Однако простые капчи уже давно не способны обеспечить достаточный уровень защиты, поскольку современные алгоритмы машинного обучения способны их решать с высокой точностью. Поэтому индустрия переходит к более сложным методам, включающим анализ поведения, отпечатков браузера и биометрических параметров. Важно понимать, что эффективность любой системы напрямую зависит от её адаптивности к новым типам атак.
В этой статье мы рассмотрим фундаментальные принципы работы систем проверки, проанализируем практические кейсы их внедрения и предложим рекомендации, позволяющие минимизировать риск компрометации. Особое внимание будет уделено статистическим данным, подтверждающим эффективность современных подходов, а также реальным примерам из разных отраслей.
### Технологические основы проверки ботов
Современные решения опираются на несколько уровней анализа: первый – статический, включающий проверку заголовков HTTP, IP‑репутацию и известные паттерны запросов; второй – динамический, основанный на наблюдении за поведением пользователя в реальном времени. По данным исследования компании Akamai, динамический анализ позволяет обнаружить до 85 % автоматизированных атак, которые остаются незамеченными при использовании только статических методов. Подробнее о принципах работы таких систем можно прочитать в статье [ CAPTCHA] ( https: //r...content-available-to-author-only...a.org/wiki/CAPTCHA) на Википедии.
Одним из ключевых компонентов является сбор «отпечатка» браузера ( browser fingerprint) , который включает информацию о версии движка, установленном шрифте, разрешении экрана и даже о наличии определенных плагинов. Сочетание этих параметров образует уникальный профиль, позволяющий отличить обычного пользователя от скрипта, который обычно использует стандартные или поддельные наборы данных. Исследования показывают, что более 70 % ботов используют упрощенные профили, что делает их уязвимыми к такой проверке.
Наконец, поведенческий анализ фиксирует такие метрики, как скорость перемещения мыши, интервалы между нажатиями клавиш и характер скроллинга страницы. Эти данные сравниваются с эталонными моделями реального поведения, построенными на основе миллионов сессий. При отклонении от нормы система может запросить дополнительную проверку или полностью блокировать запрос, тем самым снижая вероятность успешной атаки.
### Практические подходы к внедрению
При выборе стратегии защиты важно учитывать баланс между уровнем безопасности и удобством для конечного пользователя. Слишком агрессивные меры могут привести к потере конверсий, тогда как слабая защита оставит уязвимости. Ниже перечислены основные шаги, которые рекомендуется выполнить при интеграции системы верификации:
- Провести аудит текущего трафика и определить процент автоматических запросов.
- Выбрать комбинацию методов ( статический + динамический) в зависимости от критичности защищаемых ресурсов.
- Настроить пороги срабатывания, учитывая показатели отказов и ложных срабатываний.
- Внедрить мониторинг и автоматическое обновление правил на основе новых угроз.
- Провести A/ B‑тестирование, измерив влияние защиты на конверсию и пользовательский опыт.
Важным элементом является обратная связь от пользователей: если система часто ошибается, необходимо скорректировать алгоритмы или снизить чувствительность. Кроме того, рекомендуется использовать «мягкие» проверки ( например, скрытые поля формы) , которые не требуют активного участия пользователя, но позволяют собрать дополнительные сигналы о его подлинности. Такой подход позволяет минимизировать негативное влияние на пользовательский путь.
Наконец, следует обеспечить масштабируемость решения, особенно для сервисов с пиковыми нагрузками. Облачные платформы предоставляют возможность динамического распределения ресурсов, что гарантирует стабильную работу верификации даже при резком росте трафика. При правильной настройке система может обрабатывать десятки тысяч запросов в секунду без заметных задержек.
### Ошибки и подводные камни
Одной из распространенных ошибок является полагание исключительно на одну технологию, например, только на капчу. Как показали исследования, такие решения легко обходятся с помощью специализированных сервисов распознавания изображений, что делает их практически бесполезными в современных условиях. Кроме того, часто игнорируется необходимость регулярного обновления правил, что приводит к устареванию системы и росту количества успешных атак.
Другой типичной проблемой является отсутствие интеграции с системой аналитики. Без возможности отслеживать метрики эффективности ( уровень ложных срабатываний, процент блокированных запросов) невозможно оценить реальную пользу от внедрения. Поэтому рекомендуется настроить дашборды, отображающие ключевые показатели в режиме реального времени.
Наконец, стоит обратить внимание на юридические аспекты сбора и обработки персональных данных, особенно в странах с строгими регуляциями ( GDPR, закон о персональных данных РФ) . Необходимо обеспечить прозрачность и предоставить пользователям возможность отказаться от определенных методов верификации, иначе компания рискует получить штрафы и репутационные потери.
### Рекомендации и будущее
Для достижения оптимального уровня защиты следует комбинировать несколько слоев проверки, адаптируя их под конкретные бизнес‑процессы. На этапе планирования рекомендуется провести пилотный запуск, собрать данные о производительности и пользовательском опыте, а затем масштабировать решение. Важно также инвестировать в обучение персонала, чтобы они могли быстро реагировать на новые типы атак и корректировать настройки системы.
В долгосрочной перспективе ожидается рост роли искусственного интеллекта в борьбе с ботами: модели машинного обучения будут способны предсказывать новые паттерны поведения и автоматически обновлять правила защиты. Кроме того, развитие биометрических методов ( голосовая аутентификация, распознавание лица) откроет новые возможности для подтверждения человеческой идентичности без снижения удобства. Для компаний, стремящихся оставаться на передовой, важно уже сейчас изучать эти технологии и готовить инфраструктуру к их интеграции. Узнать больше о современных решениях можно на сайте [ инновационные сервисы защиты] ( https: //p...content-available-to-author-only...s.com/).
Наконец, не забывайте о важности постоянного мониторинга и обратной связи: только так можно поддерживать баланс между безопасностью и пользовательским комфортом, минимизируя риски и сохраняя конкурентные преимущества.
> «По данным исследовательского центра Netcraft, в 2023 году более 40 % всех кибератак использовали автоматизированные скрипты, что подчеркивает критическую необходимость эффективных систем верификации ботов».
Подводя итог, можно отметить, что проверка ботов – это многогранный процесс, требующий сочетания технических, аналитических и организационных мер. Правильный выбор методов, их адаптация к бизнес‑целям и постоянное улучшение на основе данных позволяют существенно снизить риск автоматических атак, сохраняя при этом высокий уровень пользовательского опыта. Только комплексный и гибкий подход обеспечит устойчивую защиту в условиях быстро меняющихся угроз./* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
}
}
IyDQn9C+0LvQvdGL0Lkg0L7QsdC30L7RgCDQv9GA0L7RhtC10YHRgdCwINC/0YDQvtCy0LXRgNC60Lgg0LHQvtGC0L7QsiDQuCDRgNC10LrQvtC80LXQvdC00LDRhtC40LkKCiMjIyDQktCy0LXQtNC10L3QuNC1CgrQkiDRgdC+0LLRgNC10LzQtdC90L3QvtC8INC40L3RgtC10YDQvdC10YLQtSDQsNCy0YLQvtC80LDRgtC40LfQuNGA0L7QstCw0L3QvdGL0LUg0LfQsNC/0YDQvtGB0Ysg0L7RgiDQsdC+0YLQvtCyINC/0YDQtdC00YHRgtCw0LLQu9GP0Y7RgiDRgdC10YDRjNC10LfQvdGD0Y4g0YPQs9GA0L7Qt9GDINC00LvRjyDQsdC10LfQvtC/0LDRgdC90L7RgdGC0LgsINC60LDRh9C10YHRgtCy0LAg0LTQsNC90L3Ri9GFINC4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQvtCz0L4g0L7Qv9GL0YLQsC4g0J/QviDQvtGG0LXQvdC60LDQvCDQsNC90LDQu9C40YLQuNGH0LXRgdC60LjRhSDQutC+0LzQv9Cw0L3QuNC5LCDQsdC+0LvQtdC1IDMwICUg0YLRgNCw0YTQuNC60LAg0LIg0LrRgNGD0L/QvdGL0YUg0YHQtdGA0LLQuNGB0LDRhSDQs9C10L3QtdGA0LjRgNGD0Y7RgiDRgdC60YDQuNC/0YLRiywg0LAg0L3QtSDRgNC10LDQu9GM0L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCwg0YfRgtC+INC/0YDQuNCy0L7QtNC40YIg0Log0LjRgdC60LDQttC10L3QuNGOINC80LXRgtGA0LjQuiDQuCDRgNC+0YHRgtGDINGA0LDRgdGF0L7QtNC+0LIg0L3QsCDQuNC90YTRgNCw0YHRgtGA0YPQutGC0YPRgNGDLiDQlNC70Y8g0LHQvtGA0YzQsdGLINGBINGN0YLQuNC8INC/0L7Rj9Cy0LjQu9C40YHRjCDRgdC/0LXRhtC40LDQu9C40LfQuNGA0L7QstCw0L3QvdGL0LUg0YDQtdGI0LXQvdC40Y8sINC60L7RgtC+0YDRi9C1INC/0L7Qt9Cy0L7Qu9GP0Y7RgiDQvtGC0LvQuNGH0LDRgtGMINGH0LXQu9C+0LLQtdGH0LXRgdC60L7QtSDQstC30LDQuNC80L7QtNC10LnRgdGC0LLQuNC1INC+0YIg0LzQsNGI0LjQvdC90L7Qs9C+LCDQuNGB0L/QvtC70YzQt9GD0Y8g0LrQvtC80LHQuNC90LDRhtC40Y4g0L/QvtCy0LXQtNC10L3Rh9C10YHQutC40YUg0Lgg0YLQtdGF0L3QuNGH0LXRgdC60LjRhSDRhNCw0LrRgtC+0YDQvtCyLiDQn9C+0LTRgNC+0LHQvdC10LUgW9Cf0L7Qu9C90YvQuSDQvtCx0LfQvtGAINC/0YDQvtGG0LXRgdGB0LAg0L/RgNC+0LLQtdGA0LrQuF0oaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmFzLzhnZTRoM214bXdnbDQubWQpINC+INGC0L7QvCwg0LrQsNC6INGN0YLQuCDRgtC10YXQvdC+0LvQvtCz0LjQuCDQuNC90YLQtdCz0YDQuNGA0YPRjtGC0YHRjyDQsiDQsdC40LfQvdC10YHigJHQv9GA0L7RhtC10YHRgdGLLCDQvNC+0LbQvdC+INGD0LfQvdCw0YLRjCDQsiDRgdC/0LXRhtC40LDQu9C40LfQuNGA0L7QstCw0L3QvdGL0YUg0L7QsdC30L7RgNCw0YUuCgohW0FydGljbGUgaWxsdXN0cmF0aW9uXShodHRwOi8vbG9jYWxob3N0L2hvbWUva2lkc2Rhbi9wcm9tb3BpbG90Lmxpbmsvd3d3L3VwbG9hZHMvZ2VuZXJhdGVkLWltYWdlcy8yMDI1LzEwLzE3NjEwNDgzNTQxNjAtYmZlOWVjOTEuanBnKQoK0J/QtdGA0LLQvtC90LDRh9Cw0LvRjNC90LDRjyDRhtC10LvRjCDQstC10YDQuNGE0LjQutCw0YbQuNC4INCx0L7RgtC+0LIg4oCTINC/0YDQtdC00L7RgtCy0YDQsNGC0LjRgtGMINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC40Lkg0LTQvtGB0YLRg9C/INC6INGA0LXRgdGD0YDRgdCw0LwsINC30LDRidC40YnQsNGPINGE0L7RgNC80Ysg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCwg0L7QvdC70LDQudC94oCR0L/Qu9Cw0YLQtdC20Lgg0LggQVBJLiDQntC00L3QsNC60L4g0L/RgNC+0YHRgtGL0LUg0LrQsNC/0YfQuCDRg9C20LUg0LTQsNCy0L3QviDQvdC1INGB0L/QvtGB0L7QsdC90Ysg0L7QsdC10YHQv9C10YfQuNGC0Ywg0LTQvtGB0YLQsNGC0L7Rh9C90YvQuSDRg9GA0L7QstC10L3RjCDQt9Cw0YnQuNGC0YssINC/0L7RgdC60L7Qu9GM0LrRgyDRgdC+0LLRgNC10LzQtdC90L3Ri9C1INCw0LvQs9C+0YDQuNGC0LzRiyDQvNCw0YjQuNC90L3QvtCz0L4g0L7QsdGD0YfQtdC90LjRjyDRgdC/0L7RgdC+0LHQvdGLINC40YUg0YDQtdGI0LDRgtGMINGBINCy0YvRgdC+0LrQvtC5INGC0L7Rh9C90L7RgdGC0YzRji4g0J/QvtGN0YLQvtC80YMg0LjQvdC00YPRgdGC0YDQuNGPINC/0LXRgNC10YXQvtC00LjRgiDQuiDQsdC+0LvQtdC1INGB0LvQvtC20L3Ri9C8INC80LXRgtC+0LTQsNC8LCDQstC60LvRjtGH0LDRjtGJ0LjQvCDQsNC90LDQu9C40Lcg0L/QvtCy0LXQtNC10L3QuNGPLCDQvtGC0L/QtdGH0LDRgtC60L7QsiDQsdGA0LDRg9C30LXRgNCwINC4INCx0LjQvtC80LXRgtGA0LjRh9C10YHQutC40YUg0L/QsNGA0LDQvNC10YLRgNC+0LIuINCS0LDQttC90L4g0L/QvtC90LjQvNCw0YLRjCwg0YfRgtC+INGN0YTRhNC10LrRgtC40LLQvdC+0YHRgtGMINC70Y7QsdC+0Lkg0YHQuNGB0YLQtdC80Ysg0L3QsNC/0YDRj9C80YPRjiDQt9Cw0LLQuNGB0LjRgiDQvtGCINC10ZEg0LDQtNCw0L/RgtC40LLQvdC+0YHRgtC4INC6INC90L7QstGL0Lwg0YLQuNC/0LDQvCDQsNGC0LDQui4KCtCSINGN0YLQvtC5INGB0YLQsNGC0YzQtSDQvNGLINGA0LDRgdGB0LzQvtGC0YDQuNC8INGE0YPQvdC00LDQvNC10L3RgtCw0LvRjNC90YvQtSDQv9GA0LjQvdGG0LjQv9GLINGA0LDQsdC+0YLRiyDRgdC40YHRgtC10Lwg0L/RgNC+0LLQtdGA0LrQuCwg0L/RgNC+0LDQvdCw0LvQuNC30LjRgNGD0LXQvCDQv9GA0LDQutGC0LjRh9C10YHQutC40LUg0LrQtdC50YHRiyDQuNGFINCy0L3QtdC00YDQtdC90LjRjyDQuCDQv9GA0LXQtNC70L7QttC40Lwg0YDQtdC60L7QvNC10L3QtNCw0YbQuNC4LCDQv9C+0LfQstC+0LvRj9GO0YnQuNC1INC80LjQvdC40LzQuNC30LjRgNC+0LLQsNGC0Ywg0YDQuNGB0Log0LrQvtC80L/RgNC+0LzQtdGC0LDRhtC40LguINCe0YHQvtCx0L7QtSDQstC90LjQvNCw0L3QuNC1INCx0YPQtNC10YIg0YPQtNC10LvQtdC90L4g0YHRgtCw0YLQuNGB0YLQuNGH0LXRgdC60LjQvCDQtNCw0L3QvdGL0LwsINC/0L7QtNGC0LLQtdGA0LbQtNCw0Y7RidC40Lwg0Y3RhNGE0LXQutGC0LjQstC90L7RgdGC0Ywg0YHQvtCy0YDQtdC80LXQvdC90YvRhSDQv9C+0LTRhdC+0LTQvtCyLCDQsCDRgtCw0LrQttC1INGA0LXQsNC70YzQvdGL0Lwg0L/RgNC40LzQtdGA0LDQvCDQuNC3INGA0LDQt9C90YvRhSDQvtGC0YDQsNGB0LvQtdC5LgoKIyMjINCi0LXRhdC90L7Qu9C+0LPQuNGH0LXRgdC60LjQtSDQvtGB0L3QvtCy0Ysg0L/RgNC+0LLQtdGA0LrQuCDQsdC+0YLQvtCyCgrQodC+0LLRgNC10LzQtdC90L3Ri9C1INGA0LXRiNC10L3QuNGPINC+0L/QuNGA0LDRjtGC0YHRjyDQvdCwINC90LXRgdC60L7Qu9GM0LrQviDRg9GA0L7QstC90LXQuSDQsNC90LDQu9C40LfQsDog0L/QtdGA0LLRi9C5IOKAkyDRgdGC0LDRgtC40YfQtdGB0LrQuNC5LCDQstC60LvRjtGH0LDRjtGJ0LjQuSDQv9GA0L7QstC10YDQutGDINC30LDQs9C+0LvQvtCy0LrQvtCyIEhUVFAsIElQ4oCR0YDQtdC/0YPRgtCw0YbQuNGOINC4INC40LfQstC10YHRgtC90YvQtSDQv9Cw0YLRgtC10YDQvdGLINC30LDQv9GA0L7RgdC+0LI7INCy0YLQvtGA0L7QuSDigJMg0LTQuNC90LDQvNC40YfQtdGB0LrQuNC5LCDQvtGB0L3QvtCy0LDQvdC90YvQuSDQvdCwINC90LDQsdC70Y7QtNC10L3QuNC4INC30LAg0L/QvtCy0LXQtNC10L3QuNC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINCyINGA0LXQsNC70YzQvdC+0Lwg0LLRgNC10LzQtdC90LguINCf0L4g0LTQsNC90L3Ri9C8INC40YHRgdC70LXQtNC+0LLQsNC90LjRjyDQutC+0LzQv9Cw0L3QuNC4IEFrYW1haSwg0LTQuNC90LDQvNC40YfQtdGB0LrQuNC5INCw0L3QsNC70LjQtyDQv9C+0LfQstC+0LvRj9C10YIg0L7QsdC90LDRgNGD0LbQuNGC0Ywg0LTQviA4NSAlINCw0LLRgtC+0LzQsNGC0LjQt9C40YDQvtCy0LDQvdC90YvRhSDQsNGC0LDQuiwg0LrQvtGC0L7RgNGL0LUg0L7RgdGC0LDRjtGC0YHRjyDQvdC10LfQsNC80LXRh9C10L3QvdGL0LzQuCDQv9GA0Lgg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Lgg0YLQvtC70YzQutC+INGB0YLQsNGC0LjRh9C10YHQutC40YUg0LzQtdGC0L7QtNC+0LIuINCf0L7QtNGA0L7QsdC90LXQtSDQviDQv9GA0LjQvdGG0LjQv9Cw0YUg0YDQsNCx0L7RgtGLINGC0LDQutC40YUg0YHQuNGB0YLQtdC8INC80L7QttC90L4g0L/RgNC+0YfQuNGC0LDRgtGMINCyINGB0YLQsNGC0YzQtSBbQ0FQVENIQV0oaHR0cHM6Ly9yLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5hLm9yZy93aWtpL0NBUFRDSEEpINC90LAg0JLQuNC60LjQv9C10LTQuNC4LgoK0J7QtNC90LjQvCDQuNC3INC60LvRjtGH0LXQstGL0YUg0LrQvtC80L/QvtC90LXQvdGC0L7QsiDRj9Cy0LvRj9C10YLRgdGPINGB0LHQvtGAIMKr0L7RgtC/0LXRh9Cw0YLQutCwwrsg0LHRgNCw0YPQt9C10YDQsCAoYnJvd3NlciBmaW5nZXJwcmludCksINC60L7RgtC+0YDRi9C5INCy0LrQu9GO0YfQsNC10YIg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0LLQtdGA0YHQuNC4INC00LLQuNC20LrQsCwg0YPRgdGC0LDQvdC+0LLQu9C10L3QvdC+0Lwg0YjRgNC40YTRgtC1LCDRgNCw0LfRgNC10YjQtdC90LjQuCDRjdC60YDQsNC90LAg0Lgg0LTQsNC20LUg0L4g0L3QsNC70LjRh9C40Lgg0L7Qv9GA0LXQtNC10LvQtdC90L3Ri9GFINC/0LvQsNCz0LjQvdC+0LIuINCh0L7Rh9C10YLQsNC90LjQtSDRjdGC0LjRhSDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQvtCx0YDQsNC30YPQtdGCINGD0L3QuNC60LDQu9GM0L3Ri9C5INC/0YDQvtGE0LjQu9GMLCDQv9C+0LfQstC+0LvRj9GO0YnQuNC5INC+0YLQu9C40YfQuNGC0Ywg0L7QsdGL0YfQvdC+0LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0L7RgiDRgdC60YDQuNC/0YLQsCwg0LrQvtGC0L7RgNGL0Lkg0L7QsdGL0YfQvdC+INC40YHQv9C+0LvRjNC30YPQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0LUg0LjQu9C4INC/0L7QtNC00LXQu9GM0L3Ri9C1INC90LDQsdC+0YDRiyDQtNCw0L3QvdGL0YUuINCY0YHRgdC70LXQtNC+0LLQsNC90LjRjyDQv9C+0LrQsNC30YvQstCw0Y7Rgiwg0YfRgtC+INCx0L7Qu9C10LUgNzAgJSDQsdC+0YLQvtCyINC40YHQv9C+0LvRjNC30YPRjtGCINGD0L/RgNC+0YnQtdC90L3Ri9C1INC/0YDQvtGE0LjQu9C4LCDRh9GC0L4g0LTQtdC70LDQtdGCINC40YUg0YPRj9C30LLQuNC80YvQvNC4INC6INGC0LDQutC+0Lkg0L/RgNC+0LLQtdGA0LrQtS4KCtCd0LDQutC+0L3QtdGGLCDQv9C+0LLQtdC00LXQvdGH0LXRgdC60LjQuSDQsNC90LDQu9C40Lcg0YTQuNC60YHQuNGA0YPQtdGCINGC0LDQutC40LUg0LzQtdGC0YDQuNC60LgsINC60LDQuiDRgdC60L7RgNC+0YHRgtGMINC/0LXRgNC10LzQtdGJ0LXQvdC40Y8g0LzRi9GI0LgsINC40L3RgtC10YDQstCw0LvRiyDQvNC10LbQtNGDINC90LDQttCw0YLQuNGP0LzQuCDQutC70LDQstC40Ygg0Lgg0YXQsNGA0LDQutGC0LXRgCDRgdC60YDQvtC70LvQuNC90LPQsCDRgdGC0YDQsNC90LjRhtGLLiDQrdGC0Lgg0LTQsNC90L3Ri9C1INGB0YDQsNCy0L3QuNCy0LDRjtGC0YHRjyDRgSDRjdGC0LDQu9C+0L3QvdGL0LzQuCDQvNC+0LTQtdC70Y/QvNC4INGA0LXQsNC70YzQvdC+0LPQviDQv9C+0LLQtdC00LXQvdC40Y8sINC/0L7RgdGC0YDQvtC10L3QvdGL0LzQuCDQvdCwINC+0YHQvdC+0LLQtSDQvNC40LvQu9C40L7QvdC+0LIg0YHQtdGB0YHQuNC5LiDQn9GA0Lgg0L7RgtC60LvQvtC90LXQvdC40Lgg0L7RgiDQvdC+0YDQvNGLINGB0LjRgdGC0LXQvNCwINC80L7QttC10YIg0LfQsNC/0YDQvtGB0LjRgtGMINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGD0Y4g0L/RgNC+0LLQtdGA0LrRgyDQuNC70Lgg0L/QvtC70L3QvtGB0YLRjNGOINCx0LvQvtC60LjRgNC+0LLQsNGC0Ywg0LfQsNC/0YDQvtGBLCDRgtC10Lwg0YHQsNC80YvQvCDRgdC90LjQttCw0Y8g0LLQtdGA0L7Rj9GC0L3QvtGB0YLRjCDRg9GB0L/QtdGI0L3QvtC5INCw0YLQsNC60LguCgojIyMg0J/RgNCw0LrRgtC40YfQtdGB0LrQuNC1INC/0L7QtNGF0L7QtNGLINC6INCy0L3QtdC00YDQtdC90LjRjgoK0J/RgNC4INCy0YvQsdC+0YDQtSDRgdGC0YDQsNGC0LXQs9C40Lgg0LfQsNGJ0LjRgtGLINCy0LDQttC90L4g0YPRh9C40YLRi9Cy0LDRgtGMINCx0LDQu9Cw0L3RgSDQvNC10LbQtNGDINGD0YDQvtCy0L3QtdC8INCx0LXQt9C+0L/QsNGB0L3QvtGB0YLQuCDQuCDRg9C00L7QsdGB0YLQstC+0Lwg0LTQu9GPINC60L7QvdC10YfQvdC+0LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uINCh0LvQuNGI0LrQvtC8INCw0LPRgNC10YHRgdC40LLQvdGL0LUg0LzQtdGA0Ysg0LzQvtCz0YPRgiDQv9GA0LjQstC10YHRgtC4INC6INC/0L7RgtC10YDQtSDQutC+0L3QstC10YDRgdC40LksINGC0L7Qs9C00LAg0LrQsNC6INGB0LvQsNCx0LDRjyDQt9Cw0YnQuNGC0LAg0L7RgdGC0LDQstC40YIg0YPRj9C30LLQuNC80L7RgdGC0LguINCd0LjQttC1INC/0LXRgNC10YfQuNGB0LvQtdC90Ysg0L7RgdC90L7QstC90YvQtSDRiNCw0LPQuCwg0LrQvtGC0L7RgNGL0LUg0YDQtdC60L7QvNC10L3QtNGD0LXRgtGB0Y8g0LLRi9C/0L7Qu9C90LjRgtGMINC/0YDQuCDQuNC90YLQtdCz0YDQsNGG0LjQuCDRgdC40YHRgtC10LzRiyDQstC10YDQuNGE0LjQutCw0YbQuNC4OgoKLSDQn9GA0L7QstC10YHRgtC4INCw0YPQtNC40YIg0YLQtdC60YPRidC10LPQviDRgtGA0LDRhNC40LrQsCDQuCDQvtC/0YDQtdC00LXQu9C40YLRjCDQv9GA0L7RhtC10L3RgiDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuNGFINC30LDQv9GA0L7RgdC+0LIuCgotINCS0YvQsdGA0LDRgtGMINC60L7QvNCx0LjQvdCw0YbQuNGOINC80LXRgtC+0LTQvtCyICjRgdGC0LDRgtC40YfQtdGB0LrQuNC5ICsg0LTQuNC90LDQvNC40YfQtdGB0LrQuNC5KSDQsiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC+0YIg0LrRgNC40YLQuNGH0L3QvtGB0YLQuCDQt9Cw0YnQuNGJ0LDQtdC80YvRhSDRgNC10YHRg9GA0YHQvtCyLgoKLSDQndCw0YHRgtGA0L7QuNGC0Ywg0L/QvtGA0L7Qs9C4INGB0YDQsNCx0LDRgtGL0LLQsNC90LjRjywg0YPRh9C40YLRi9Cy0LDRjyDQv9C+0LrQsNC30LDRgtC10LvQuCDQvtGC0LrQsNC30L7QsiDQuCDQu9C+0LbQvdGL0YUg0YHRgNCw0LHQsNGC0YvQstCw0L3QuNC5LgoKLSDQktC90LXQtNGA0LjRgtGMINC80L7QvdC40YLQvtGA0LjQvdCzINC4INCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC+0LUg0L7QsdC90L7QstC70LXQvdC40LUg0L/RgNCw0LLQuNC7INC90LAg0L7RgdC90L7QstC1INC90L7QstGL0YUg0YPQs9GA0L7Qty4KCi0g0J/RgNC+0LLQtdGB0YLQuCBBL0LigJHRgtC10YHRgtC40YDQvtCy0LDQvdC40LUsINC40LfQvNC10YDQuNCyINCy0LvQuNGP0L3QuNC1INC30LDRidC40YLRiyDQvdCwINC60L7QvdCy0LXRgNGB0LjRjiDQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQuSDQvtC/0YvRgi4KCtCS0LDQttC90YvQvCDRjdC70LXQvNC10L3RgtC+0Lwg0Y/QstC70Y/QtdGC0YHRjyDQvtCx0YDQsNGC0L3QsNGPINGB0LLRj9C30Ywg0L7RgiDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuTog0LXRgdC70Lgg0YHQuNGB0YLQtdC80LAg0YfQsNGB0YLQviDQvtGI0LjQsdCw0LXRgtGB0Y8sINC90LXQvtCx0YXQvtC00LjQvNC+INGB0LrQvtGA0YDQtdC60YLQuNGA0L7QstCw0YLRjCDQsNC70LPQvtGA0LjRgtC80Ysg0LjQu9C4INGB0L3QuNC30LjRgtGMINGH0YPQstGB0YLQstC40YLQtdC70YzQvdC+0YHRgtGMLiDQmtGA0L7QvNC1INGC0L7Qs9C+LCDRgNC10LrQvtC80LXQvdC00YPQtdGC0YHRjyDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgwqvQvNGP0LPQutC40LXCuyDQv9GA0L7QstC10YDQutC4ICjQvdCw0L/RgNC40LzQtdGALCDRgdC60YDRi9GC0YvQtSDQv9C+0LvRjyDRhNC+0YDQvNGLKSwg0LrQvtGC0L7RgNGL0LUg0L3QtSDRgtGA0LXQsdGD0Y7RgiDQsNC60YLQuNCy0L3QvtCz0L4g0YPRh9Cw0YHRgtC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLCDQvdC+INC/0L7Qt9Cy0L7Qu9GP0Y7RgiDRgdC+0LHRgNCw0YLRjCDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9C1INGB0LjQs9C90LDQu9GLINC+INC10LPQviDQv9C+0LTQu9C40L3QvdC+0YHRgtC4LiDQotCw0LrQvtC5INC/0L7QtNGF0L7QtCDQv9C+0LfQstC+0LvRj9C10YIg0LzQuNC90LjQvNC40LfQuNGA0L7QstCw0YLRjCDQvdC10LPQsNGC0LjQstC90L7QtSDQstC70LjRj9C90LjQtSDQvdCwINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC5INC/0YPRgtGMLgoK0J3QsNC60L7QvdC10YYsINGB0LvQtdC00YPQtdGCINC+0LHQtdGB0L/QtdGH0LjRgtGMINC80LDRgdGI0YLQsNCx0LjRgNGD0LXQvNC+0YHRgtGMINGA0LXRiNC10L3QuNGPLCDQvtGB0L7QsdC10L3QvdC+INC00LvRjyDRgdC10YDQstC40YHQvtCyINGBINC/0LjQutC+0LLRi9C80Lgg0L3QsNCz0YDRg9C30LrQsNC80LguINCe0LHQu9Cw0YfQvdGL0LUg0L/Qu9Cw0YLRhNC+0YDQvNGLINC/0YDQtdC00L7RgdGC0LDQstC70Y/RjtGCINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0LTQuNC90LDQvNC40YfQtdGB0LrQvtCz0L4g0YDQsNGB0L/RgNC10LTQtdC70LXQvdC40Y8g0YDQtdGB0YPRgNGB0L7Qsiwg0YfRgtC+INCz0LDRgNCw0L3RgtC40YDRg9C10YIg0YHRgtCw0LHQuNC70YzQvdGD0Y4g0YDQsNCx0L7RgtGDINCy0LXRgNC40YTQuNC60LDRhtC40Lgg0LTQsNC20LUg0L/RgNC4INGA0LXQt9C60L7QvCDRgNC+0YHRgtC1INGC0YDQsNGE0LjQutCwLiDQn9GA0Lgg0L/RgNCw0LLQuNC70YzQvdC+0Lkg0L3QsNGB0YLRgNC+0LnQutC1INGB0LjRgdGC0LXQvNCwINC80L7QttC10YIg0L7QsdGA0LDQsdCw0YLRi9Cy0LDRgtGMINC00LXRgdGP0YLQutC4INGC0YvRgdGP0Ycg0LfQsNC/0YDQvtGB0L7QsiDQsiDRgdC10LrRg9C90LTRgyDQsdC10Lcg0LfQsNC80LXRgtC90YvRhSDQt9Cw0LTQtdGA0LbQtdC6LgoKIyMjINCe0YjQuNCx0LrQuCDQuCDQv9C+0LTQstC+0LTQvdGL0LUg0LrQsNC80L3QuAoK0J7QtNC90L7QuSDQuNC3INGA0LDRgdC/0YDQvtGB0YLRgNCw0L3QtdC90L3Ri9GFINC+0YjQuNCx0L7QuiDRj9Cy0LvRj9C10YLRgdGPINC/0L7Qu9Cw0LPQsNC90LjQtSDQuNGB0LrQu9GO0YfQuNGC0LXQu9GM0L3QviDQvdCwINC+0LTQvdGDINGC0LXRhdC90L7Qu9C+0LPQuNGOLCDQvdCw0L/RgNC40LzQtdGALCDRgtC+0LvRjNC60L4g0L3QsCDQutCw0L/Rh9GDLiDQmtCw0Log0L/QvtC60LDQt9Cw0LvQuCDQuNGB0YHQu9C10LTQvtCy0LDQvdC40Y8sINGC0LDQutC40LUg0YDQtdGI0LXQvdC40Y8g0LvQtdCz0LrQviDQvtCx0YXQvtC00Y/RgtGB0Y8g0YEg0L/QvtC80L7RidGM0Y4g0YHQv9C10YbQuNCw0LvQuNC30LjRgNC+0LLQsNC90L3Ri9GFINGB0LXRgNCy0LjRgdC+0LIg0YDQsNGB0L/QvtC30L3QsNCy0LDQvdC40Y8g0LjQt9C+0LHRgNCw0LbQtdC90LjQuSwg0YfRgtC+INC00LXQu9Cw0LXRgiDQuNGFINC/0YDQsNC60YLQuNGH0LXRgdC60Lgg0LHQtdGB0L/QvtC70LXQt9C90YvQvNC4INCyINGB0L7QstGA0LXQvNC10L3QvdGL0YUg0YPRgdC70L7QstC40Y/RhS4g0JrRgNC+0LzQtSDRgtC+0LPQviwg0YfQsNGB0YLQviDQuNCz0L3QvtGA0LjRgNGD0LXRgtGB0Y8g0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Ywg0YDQtdCz0YPQu9GP0YDQvdC+0LPQviDQvtCx0L3QvtCy0LvQtdC90LjRjyDQv9GA0LDQstC40LssINGH0YLQviDQv9GA0LjQstC+0LTQuNGCINC6INGD0YHRgtCw0YDQtdCy0LDQvdC40Y4g0YHQuNGB0YLQtdC80Ysg0Lgg0YDQvtGB0YLRgyDQutC+0LvQuNGH0LXRgdGC0LLQsCDRg9GB0L/QtdGI0L3Ri9GFINCw0YLQsNC6LgoK0JTRgNGD0LPQvtC5INGC0LjQv9C40YfQvdC+0Lkg0L/RgNC+0LHQu9C10LzQvtC5INGP0LLQu9GP0LXRgtGB0Y8g0L7RgtGB0YPRgtGB0YLQstC40LUg0LjQvdGC0LXQs9GA0LDRhtC40Lgg0YEg0YHQuNGB0YLQtdC80L7QuSDQsNC90LDQu9C40YLQuNC60LguINCR0LXQtyDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INC+0YLRgdC70LXQttC40LLQsNGC0Ywg0LzQtdGC0YDQuNC60Lgg0Y3RhNGE0LXQutGC0LjQstC90L7RgdGC0LggKNGD0YDQvtCy0LXQvdGMINC70L7QttC90YvRhSDRgdGA0LDQsdCw0YLRi9Cy0LDQvdC40LksINC/0YDQvtGG0LXQvdGCINCx0LvQvtC60LjRgNC+0LLQsNC90L3Ri9GFINC30LDQv9GA0L7RgdC+0LIpINC90LXQstC+0LfQvNC+0LbQvdC+INC+0YbQtdC90LjRgtGMINGA0LXQsNC70YzQvdGD0Y4g0L/QvtC70YzQt9GDINC+0YIg0LLQvdC10LTRgNC10L3QuNGPLiDQn9C+0Y3RgtC+0LzRgyDRgNC10LrQvtC80LXQvdC00YPQtdGC0YHRjyDQvdCw0YHRgtGA0L7QuNGC0Ywg0LTQsNGI0LHQvtGA0LTRiywg0L7RgtC+0LHRgNCw0LbQsNGO0YnQuNC1INC60LvRjtGH0LXQstGL0LUg0L/QvtC60LDQt9Cw0YLQtdC70Lgg0LIg0YDQtdC20LjQvNC1INGA0LXQsNC70YzQvdC+0LPQviDQstGA0LXQvNC10L3QuC4KCtCd0LDQutC+0L3QtdGGLCDRgdGC0L7QuNGCINC+0LHRgNCw0YLQuNGC0Ywg0LLQvdC40LzQsNC90LjQtSDQvdCwINGO0YDQuNC00LjRh9C10YHQutC40LUg0LDRgdC/0LXQutGC0Ysg0YHQsdC+0YDQsCDQuCDQvtCx0YDQsNCx0L7RgtC60Lgg0L/QtdGA0YHQvtC90LDQu9GM0L3Ri9GFINC00LDQvdC90YvRhSwg0L7RgdC+0LHQtdC90L3QviDQsiDRgdGC0YDQsNC90LDRhSDRgSDRgdGC0YDQvtCz0LjQvNC4INGA0LXQs9GD0LvRj9GG0LjRj9C80LggKEdEUFIsINC30LDQutC+0L0g0L4g0L/QtdGA0YHQvtC90LDQu9GM0L3Ri9GFINC00LDQvdC90YvRhSDQoNCkKS4g0J3QtdC+0LHRhdC+0LTQuNC80L4g0L7QsdC10YHQv9C10YfQuNGC0Ywg0L/RgNC+0LfRgNCw0YfQvdC+0YHRgtGMINC4INC/0YDQtdC00L7RgdGC0LDQstC40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y/QvCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC+0YLQutCw0LfQsNGC0YzRgdGPINC+0YIg0L7Qv9GA0LXQtNC10LvQtdC90L3Ri9GFINC80LXRgtC+0LTQvtCyINCy0LXRgNC40YTQuNC60LDRhtC40LgsINC40L3QsNGH0LUg0LrQvtC80L/QsNC90LjRjyDRgNC40YHQutGD0LXRgiDQv9C+0LvRg9GH0LjRgtGMINGI0YLRgNCw0YTRiyDQuCDRgNC10L/Rg9GC0LDRhtC40L7QvdC90YvQtSDQv9C+0YLQtdGA0LguCgojIyMg0KDQtdC60L7QvNC10L3QtNCw0YbQuNC4INC4INCx0YPQtNGD0YnQtdC1CgrQlNC70Y8g0LTQvtGB0YLQuNC20LXQvdC40Y8g0L7Qv9GC0LjQvNCw0LvRjNC90L7Qs9C+INGD0YDQvtCy0L3RjyDQt9Cw0YnQuNGC0Ysg0YHQu9C10LTRg9C10YIg0LrQvtC80LHQuNC90LjRgNC+0LLQsNGC0Ywg0L3QtdGB0LrQvtC70YzQutC+INGB0LvQvtC10LIg0L/RgNC+0LLQtdGA0LrQuCwg0LDQtNCw0L/RgtC40YDRg9GPINC40YUg0L/QvtC0INC60L7QvdC60YDQtdGC0L3Ri9C1INCx0LjQt9C90LXRgeKAkdC/0YDQvtGG0LXRgdGB0YsuINCd0LAg0Y3RgtCw0L/QtSDQv9C70LDQvdC40YDQvtCy0LDQvdC40Y8g0YDQtdC60L7QvNC10L3QtNGD0LXRgtGB0Y8g0L/RgNC+0LLQtdGB0YLQuCDQv9C40LvQvtGC0L3Ri9C5INC30LDQv9GD0YHQuiwg0YHQvtCx0YDQsNGC0Ywg0LTQsNC90L3Ri9C1INC+INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLQuCDQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60L7QvCDQvtC/0YvRgtC1LCDQsCDQt9Cw0YLQtdC8INC80LDRgdGI0YLQsNCx0LjRgNC+0LLQsNGC0Ywg0YDQtdGI0LXQvdC40LUuINCS0LDQttC90L4g0YLQsNC60LbQtSDQuNC90LLQtdGB0YLQuNGA0L7QstCw0YLRjCDQsiDQvtCx0YPRh9C10L3QuNC1INC/0LXRgNGB0L7QvdCw0LvQsCwg0YfRgtC+0LHRiyDQvtC90Lgg0LzQvtCz0LvQuCDQsdGL0YHRgtGA0L4g0YDQtdCw0LPQuNGA0L7QstCw0YLRjCDQvdCwINC90L7QstGL0LUg0YLQuNC/0Ysg0LDRgtCw0Log0Lgg0LrQvtGA0YDQtdC60YLQuNGA0L7QstCw0YLRjCDQvdCw0YHRgtGA0L7QudC60Lgg0YHQuNGB0YLQtdC80YsuCgrQkiDQtNC+0LvQs9C+0YHRgNC+0YfQvdC+0Lkg0L/QtdGA0YHQv9C10LrRgtC40LLQtSDQvtC20LjQtNCw0LXRgtGB0Y8g0YDQvtGB0YIg0YDQvtC70Lgg0LjRgdC60YPRgdGB0YLQstC10L3QvdC+0LPQviDQuNC90YLQtdC70LvQtdC60YLQsCDQsiDQsdC+0YDRjNCx0LUg0YEg0LHQvtGC0LDQvNC4OiDQvNC+0LTQtdC70Lgg0LzQsNGI0LjQvdC90L7Qs9C+INC+0LHRg9GH0LXQvdC40Y8g0LHRg9C00YPRgiDRgdC/0L7RgdC+0LHQvdGLINC/0YDQtdC00YHQutCw0LfRi9Cy0LDRgtGMINC90L7QstGL0LUg0L/QsNGC0YLQtdGA0L3RiyDQv9C+0LLQtdC00LXQvdC40Y8g0Lgg0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0L7QsdC90L7QstC70Y/RgtGMINC/0YDQsNCy0LjQu9CwINC30LDRidC40YLRiy4g0JrRgNC+0LzQtSDRgtC+0LPQviwg0YDQsNC30LLQuNGC0LjQtSDQsdC40L7QvNC10YLRgNC40YfQtdGB0LrQuNGFINC80LXRgtC+0LTQvtCyICjQs9C+0LvQvtGB0L7QstCw0Y8g0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjRjywg0YDQsNGB0L/QvtC30L3QsNCy0LDQvdC40LUg0LvQuNGG0LApINC+0YLQutGA0L7QtdGCINC90L7QstGL0LUg0LLQvtC30LzQvtC20L3QvtGB0YLQuCDQtNC70Y8g0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8g0YfQtdC70L7QstC10YfQtdGB0LrQvtC5INC40LTQtdC90YLQuNGH0L3QvtGB0YLQuCDQsdC10Lcg0YHQvdC40LbQtdC90LjRjyDRg9C00L7QsdGB0YLQstCwLiDQlNC70Y8g0LrQvtC80L/QsNC90LjQuSwg0YHRgtGA0LXQvNGP0YnQuNGF0YHRjyDQvtGB0YLQsNCy0LDRgtGM0YHRjyDQvdCwINC/0LXRgNC10LTQvtCy0L7QuSwg0LLQsNC20L3QviDRg9C20LUg0YHQtdC50YfQsNGBINC40LfRg9GH0LDRgtGMINGN0YLQuCDRgtC10YXQvdC+0LvQvtCz0LjQuCDQuCDQs9C+0YLQvtCy0LjRgtGMINC40L3RhNGA0LDRgdGC0YDRg9C60YLRg9GA0YMg0Log0LjRhSDQuNC90YLQtdCz0YDQsNGG0LjQuC4g0KPQt9C90LDRgtGMINCx0L7Qu9GM0YjQtSDQviDRgdC+0LLRgNC10LzQtdC90L3Ri9GFINGA0LXRiNC10L3QuNGP0YUg0LzQvtC20L3QviDQvdCwINGB0LDQudGC0LUgW9C40L3QvdC+0LLQsNGG0LjQvtC90L3Ri9C1INGB0LXRgNCy0LjRgdGLINC30LDRidC40YLRi10oaHR0cHM6Ly9wLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5zLmNvbS8pLgoK0J3QsNC60L7QvdC10YYsINC90LUg0LfQsNCx0YvQstCw0LnRgtC1INC+INCy0LDQttC90L7RgdGC0Lgg0L/QvtGB0YLQvtGP0L3QvdC+0LPQviDQvNC+0L3QuNGC0L7RgNC40L3Qs9CwINC4INC+0LHRgNCw0YLQvdC+0Lkg0YHQstGP0LfQuDog0YLQvtC70YzQutC+INGC0LDQuiDQvNC+0LbQvdC+INC/0L7QtNC00LXRgNC20LjQstCw0YLRjCDQsdCw0LvQsNC90YEg0LzQtdC20LTRgyDQsdC10LfQvtC/0LDRgdC90L7RgdGC0YzRjiDQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQvCDQutC+0LzRhNC+0YDRgtC+0LwsINC80LjQvdC40LzQuNC30LjRgNGD0Y8g0YDQuNGB0LrQuCDQuCDRgdC+0YXRgNCw0L3Rj9GPINC60L7QvdC60YPRgNC10L3RgtC90YvQtSDQv9GA0LXQuNC80YPRidC10YHRgtCy0LAuCgo+IMKr0J/QviDQtNCw0L3QvdGL0Lwg0LjRgdGB0LvQtdC00L7QstCw0YLQtdC70YzRgdC60L7Qs9C+INGG0LXQvdGC0YDQsCBOZXRjcmFmdCwg0LIgMjAyMyDQs9C+0LTRgyDQsdC+0LvQtdC1IDQwICUg0LLRgdC10YUg0LrQuNCx0LXRgNCw0YLQsNC6INC40YHQv9C+0LvRjNC30L7QstCw0LvQuCDQsNCy0YLQvtC80LDRgtC40LfQuNGA0L7QstCw0L3QvdGL0LUg0YHQutGA0LjQv9GC0YssINGH0YLQviDQv9C+0LTRh9C10YDQutC40LLQsNC10YIg0LrRgNC40YLQuNGH0LXRgdC60YPRjiDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLRjCDRjdGE0YTQtdC60YLQuNCy0L3Ri9GFINGB0LjRgdGC0LXQvCDQstC10YDQuNGE0LjQutCw0YbQuNC4INCx0L7RgtC+0LLCuy4KCtCf0L7QtNCy0L7QtNGPINC40YLQvtCzLCDQvNC+0LbQvdC+INC+0YLQvNC10YLQuNGC0YwsINGH0YLQviDQv9GA0L7QstC10YDQutCwINCx0L7RgtC+0LIg4oCTINGN0YLQviDQvNC90L7Qs9C+0LPRgNCw0L3QvdGL0Lkg0L/RgNC+0YbQtdGB0YEsINGC0YDQtdCx0YPRjtGJ0LjQuSDRgdC+0YfQtdGC0LDQvdC40Y8g0YLQtdGF0L3QuNGH0LXRgdC60LjRhSwg0LDQvdCw0LvQuNGC0LjRh9C10YHQutC40YUg0Lgg0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Ri9GFINC80LXRgC4g0J/RgNCw0LLQuNC70YzQvdGL0Lkg0LLRi9Cx0L7RgCDQvNC10YLQvtC00L7Qsiwg0LjRhSDQsNC00LDQv9GC0LDRhtC40Y8g0Log0LHQuNC30L3QtdGB4oCR0YbQtdC70Y/QvCDQuCDQv9C+0YHRgtC+0Y/QvdC90L7QtSDRg9C70YPRh9GI0LXQvdC40LUg0L3QsCDQvtGB0L3QvtCy0LUg0LTQsNC90L3Ri9GFINC/0L7Qt9Cy0L7Qu9GP0Y7RgiDRgdGD0YnQtdGB0YLQstC10L3QvdC+INGB0L3QuNC30LjRgtGMINGA0LjRgdC6INCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC40YUg0LDRgtCw0LosINGB0L7RhdGA0LDQvdGP0Y8g0L/RgNC4INGN0YLQvtC8INCy0YvRgdC+0LrQuNC5INGD0YDQvtCy0LXQvdGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQvtCz0L4g0L7Qv9GL0YLQsC4g0KLQvtC70YzQutC+INC60L7QvNC/0LvQtdC60YHQvdGL0Lkg0Lgg0LPQuNCx0LrQuNC5INC/0L7QtNGF0L7QtCDQvtCx0LXRgdC/0LXRh9C40YIg0YPRgdGC0L7QudGH0LjQstGD0Y4g0LfQsNGJ0LjRgtGDINCyINGD0YHQu9C+0LLQuNGP0YUg0LHRi9GB0YLRgNC+INC80LXQvdGP0Y7RidC40YXRgdGPINGD0LPRgNC+0LcuLyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCX0KfQ==
compilation info
Main.java:1: error: illegal character: '#'
# ?????? ????? ???????? ???????? ????? ? ????????????
^
Main.java:1: error: class, interface, or enum expected
# ?????? ????? ???????? ???????? ????? ? ????????????
^
Main.java:3: error: illegal character: '#'
### ????????
^
Main.java:3: error: illegal character: '#'
### ????????
^
Main.java:3: error: illegal character: '#'
### ????????
^
Main.java:9: error: illegal character: '\u2013'
?????????????? ???? ??????????? ????? ? ????????????? ?????????????? ?????? ? ????????, ??????? ????? ???????????, ?????????????? ? API. ?????? ??????? ????? ??? ????? ?? ???????? ?????????? ??????????? ??????? ??????, ????????? ??????????? ????????? ????????? ???????? ???????? ?? ?????? ? ??????? ?????????. ??????? ????????? ????????? ? ????? ??????? ???????, ?????????? ?????? ?????????, ?????????? ???????? ? ?????????????? ??????????. ????? ????????, ??? ????????????? ????? ??????? ???????? ??????? ?? ?? ???????????? ? ????? ????? ????.
^
Main.java:9: error: illegal character: '\u2011'
?????????????? ???? ??????????? ????? ? ????????????? ?????????????? ?????? ? ????????, ??????? ????? ???????????, ?????????????? ? API. ?????? ??????? ????? ??? ????? ?? ???????? ?????????? ??????????? ??????? ??????, ????????? ??????????? ????????? ????????? ???????? ???????? ?? ?????? ? ??????? ?????????. ??????? ????????? ????????? ? ????? ??????? ???????, ?????????? ?????? ?????????, ?????????? ???????? ? ?????????????? ??????????. ????? ????????, ??? ????????????? ????? ??????? ???????? ??????? ?? ?? ???????????? ? ????? ????? ????.
^
Main.java:13: error: illegal character: '#'
### ??????????????? ?????? ???????? ?????
^
Main.java:13: error: illegal character: '#'
### ??????????????? ?????? ???????? ?????
^
Main.java:13: error: illegal character: '#'
### ??????????????? ?????? ???????? ?????
^
Main.java:15: error: illegal character: '\u2013'
??????????? ??????? ????????? ?? ????????? ??????? ???????: ?????? ? ???????????, ?????????? ???????? ?????????? HTTP, IP?????????? ? ????????? ???????? ????????; ?????? ? ????????????, ?????????? ?? ?????????? ?? ?????????? ???????????? ? ???????? ???????. ?? ?????? ???????????? ???????? Akamai, ???????????? ?????? ????????? ?????????? ?? 85 % ?????????????????? ????, ??????? ???????? ????????????? ??? ????????????? ?????? ??????????? ???????. ????????? ? ????????? ?????? ????? ?????? ????? ????????? ? ?????? [CAPTCHA](https://ru.wikipedia.org/wiki/CAPTCHA) ?? ?????????.
^
Main.java:15: error: illegal character: '\u2011'
??????????? ??????? ????????? ?? ????????? ??????? ???????: ?????? ? ???????????, ?????????? ???????? ?????????? HTTP, IP?????????? ? ????????? ???????? ????????; ?????? ? ????????????, ?????????? ?? ?????????? ?? ?????????? ???????????? ? ???????? ???????. ?? ?????? ???????????? ???????? Akamai, ???????????? ?????? ????????? ?????????? ?? 85 % ?????????????????? ????, ??????? ???????? ????????????? ??? ????????????? ?????? ??????????? ???????. ????????? ? ????????? ?????? ????? ?????? ????? ????????? ? ?????? [CAPTCHA](https://ru.wikipedia.org/wiki/CAPTCHA) ?? ?????????.
^
Main.java:15: error: illegal character: '\u2013'
??????????? ??????? ????????? ?? ????????? ??????? ???????: ?????? ? ???????????, ?????????? ???????? ?????????? HTTP, IP?????????? ? ????????? ???????? ????????; ?????? ? ????????????, ?????????? ?? ?????????? ?? ?????????? ???????????? ? ???????? ???????. ?? ?????? ???????????? ???????? Akamai, ???????????? ?????? ????????? ?????????? ?? 85 % ?????????????????? ????, ??????? ???????? ????????????? ??? ????????????? ?????? ??????????? ???????. ????????? ? ????????? ?????? ????? ?????? ????? ????????? ? ?????? [CAPTCHA](https://ru.wikipedia.org/wiki/CAPTCHA) ?? ?????????.
^
Main.java:17: error: illegal character: '\u00ab'
????? ?? ???????? ??????????? ???????? ???? ??????????? ???????? (browser fingerprint), ??????? ???????? ?????????? ? ?????? ??????, ????????????? ??????, ?????????? ?????? ? ???? ? ??????? ???????????? ????????. ????????? ???? ?????????? ???????? ?????????? ???????, ??????????? ???????? ???????? ???????????? ?? ???????, ??????? ?????? ?????????? ??????????? ??? ?????????? ?????? ??????. ???????????? ??????????, ??? ????? 70 % ????? ?????????? ?????????? ???????, ??? ?????? ?? ????????? ? ????? ????????.
^
Main.java:17: error: illegal character: '\u00bb'
????? ?? ???????? ??????????? ???????? ???? ??????????? ???????? (browser fingerprint), ??????? ???????? ?????????? ? ?????? ??????, ????????????? ??????, ?????????? ?????? ? ???? ? ??????? ???????????? ????????. ????????? ???? ?????????? ???????? ?????????? ???????, ??????????? ???????? ???????? ???????????? ?? ???????, ??????? ?????? ?????????? ??????????? ??? ?????????? ?????? ??????. ???????????? ??????????, ??? ????? 70 % ????? ?????????? ?????????? ???????, ??? ?????? ?? ????????? ? ????? ????????.
^
Main.java:21: error: illegal character: '#'
### ???????????? ??????? ? ?????????
^
Main.java:21: error: illegal character: '#'
### ???????????? ??????? ? ?????????
^
Main.java:21: error: illegal character: '#'
### ???????????? ??????? ? ?????????
^
Main.java:33: error: illegal character: '\u2011'
- ???????? A/B?????????????, ??????? ??????? ?????? ?? ????????? ? ???????????????? ????.
^
Main.java:35: error: illegal character: '\u00ab'
?????? ????????? ???????? ???????? ????? ?? ?????????????: ???? ??????? ????? ?????????, ?????????? ??????????????? ????????? ??? ??????? ????????????????. ????? ????, ????????????? ???????????? ???????? ???????? (????????, ??????? ???? ?????), ??????? ?? ??????? ????????? ??????? ????????????, ?? ????????? ??????? ?????????????? ??????? ? ??? ???????????. ????? ?????? ????????? ?????????????? ?????????? ??????? ?? ???????????????? ????.
^
Main.java:35: error: illegal character: '\u00bb'
?????? ????????? ???????? ???????? ????? ?? ?????????????: ???? ??????? ????? ?????????, ?????????? ??????????????? ????????? ??? ??????? ????????????????. ????? ????, ????????????? ???????????? ???????? ???????? (????????, ??????? ???? ?????), ??????? ?? ??????? ????????? ??????? ????????????, ?? ????????? ??????? ?????????????? ??????? ? ??? ???????????. ????? ?????? ????????? ?????????????? ?????????? ??????? ?? ???????????????? ????.
^
Main.java:39: error: illegal character: '#'
### ?????? ? ????????? ?????
^
Main.java:39: error: illegal character: '#'
### ?????? ? ????????? ?????
^
Main.java:39: error: illegal character: '#'
### ?????? ? ????????? ?????
^
Main.java:47: error: illegal character: '#'
### ???????????? ? ???????
^
Main.java:47: error: illegal character: '#'
### ???????????? ? ???????
^
Main.java:47: error: illegal character: '#'
### ???????????? ? ???????
^
Main.java:49: error: illegal character: '\u2011'
??? ?????????? ???????????? ?????? ?????? ??????? ????????????? ????????? ????? ????????, ????????? ?? ??? ?????????? ???????????????. ?? ????? ???????????? ????????????? ???????? ???????? ??????, ??????? ?????? ? ?????????????????? ? ???????????????? ?????, ? ????? ?????????????? ???????. ????? ????? ????????????? ? ???????? ?????????, ????? ??? ????? ?????? ??????????? ?? ????? ???? ???? ? ?????????????? ????????? ???????.
^
Main.java:55: error: illegal character: '\u00ab'
> ??? ?????? ?????????????????? ?????? Netcraft, ? 2023 ???? ????? 40 % ???? ????????? ???????????? ?????????????????? ???????, ??? ???????????? ??????????? ????????????? ??????????? ?????? ??????????? ??????.
^
Main.java:55: error: illegal character: '\u00bb'
> ??? ?????? ?????????????????? ?????? Netcraft, ? 2023 ???? ????? 40 % ???? ????????? ???????????? ?????????????????? ???????, ??? ???????????? ??????????? ????????????? ??????????? ?????? ??????????? ??????.
^
Main.java:57: error: illegal character: '\u2013'
??????? ????, ????? ????????, ??? ???????? ????? ? ??? ???????????? ???????, ????????? ????????? ???????????, ????????????? ? ??????????????? ???. ?????????? ????? ???????, ?? ????????? ? ???????????? ? ?????????? ????????? ?? ?????? ?????? ????????? ??????????? ??????? ???? ?????????????? ????, ???????? ??? ???? ??????? ??????? ????????????????? ?????. ?????? ??????????? ? ?????? ?????? ????????? ?????????? ?????? ? ???????? ?????? ?????????? ?????./* package whatever; // don't place package name! */
^
Main.java:57: error: illegal character: '\u2011'
??????? ????, ????? ????????, ??? ???????? ????? ? ??? ???????????? ???????, ????????? ????????? ???????????, ????????????? ? ??????????????? ???. ?????????? ????? ???????, ?? ????????? ? ???????????? ? ?????????? ????????? ?? ?????? ?????? ????????? ??????????? ??????? ???? ?????????????? ????, ???????? ??? ???? ??????? ??????? ????????????????? ?????. ?????? ??????????? ? ?????? ?????? ????????? ?????????? ?????? ? ???????? ?????? ?????????? ?????./* package whatever; // don't place package name! */
^
32 errors
stdout