Análise de Conjuntura Macroeconômica - Caminhos e Desafios da Política Fiscal no Brasil com dados atualizados no 3° Trimestre de 2025

Este relatório analisa a política fiscal brasileira em 2025, destacando desafios, medidas recentes e perspectivas para o médio prazo. A política fiscal, entendida como o conjunto de decisões relacionadas a arrecadação, gastos e endividamento público, desempenha papel central na condução da economia, influenciando o crescimento, a inflação e a credibilidade do país perante investidores domésticos e internacionais.

Inflação e Política Monetária no Cenário Fiscal

O comportamento recente da inflação brasileira mostra trajetória de desaceleração em 2025, após o ciclo de choques de custos e demanda que marcaram os anos anteriores. O último dado disponível indica que a inflação acumulada em 12 meses está em 5,13%, ainda acima do centro da meta de 3%, embora já em patamar inferior ao observado em 2022–2023. Essa redução decorre, em parte, da política monetária contracionista implementada pelo Banco Central, que manteve a taxa Selic elevada por um período prolongado para ancorar expectativas e reduzir a inércia inflacionária.

Entretanto, a política fiscal tem desempenhado papel ambíguo nesse processo. De um lado, medidas de contenção de despesas obrigatórias e a tentativa de cumprimento do arcabouço fiscal contribuem para moderar pressões de demanda. De outro, programas de expansão de transferências sociais e incentivos tributários elevam o gasto primário, sustentando parte do consumo das famílias e reduzindo a efetividade da política monetária. Esse descompasso obriga a autoridade monetária a manter juros elevados por mais tempo, aumentando o custo da desinflação.

O último dado da taxa Selic, em 14,90% ao ano, confirma esse diagnóstico: mesmo diante da desaceleração da inflação, o patamar de juros segue elevado em termos reais. Considerando a Selic nominal e utilizando a inflação acumulada em 12 meses (5,13%) como proxy da expectativa inflacionária, o juro real ex-ante situa-se em torno de 9,2% — um dos mais altos do mundo. Esse nível evidencia o caráter fortemente contracionista da política monetária, refletindo tanto a persistência das pressões fiscais quanto a necessidade de preservação da credibilidade do regime de metas. A percepção de risco fiscal eleva os prêmios exigidos nos títulos públicos e pressiona o câmbio, limitando a possibilidade de flexibilização monetária mais agressiva.

Portanto, a conjuntura atual mostra que o ritmo de convergência da inflação depende menos da intensidade da política monetária e mais da consistência da política fiscal. Sem avanços estruturais na consolidação das contas públicas, o espaço para cortes sustentáveis na Selic permanece restrito, mantendo a economia em ambiente de juros elevados e inflação em processo lento de convergência.

Apêndice – Cálculo do Juro Real Ex-Ante

O juro real ex-ante é calculado a partir da taxa nominal de juros (Selic) e da expectativa de inflação acumulada em 12 meses.
A fórmula utilizada foi:

\[ r = \frac{1+i}{1+\pi^e} - 1 \]

Onde:

  • \(i\) é a taxa nominal de juros (Selic, ao ano);
  • \(\pi^e\) é a expectativa de inflação (proxy: IPCA acumulado em 12 meses);
  • \(r\) é a taxa real ex-ante de juros.

Substituindo os valores:

\[ r = \frac{1 + 0.149}{1 + 0.0513} - 1 \approx 0.092 \; (\text{ou 9,2\% ao ano}) \]

PIB e Política Fiscal

O desempenho recente da economia brasileira em 2025 evidencia crescimento positivo, mas com sinais claros de desaceleração. A série mensal do Banco Central, utilizada como proxy do PIB oficial, indica crescimento anualizado de 7,58% no último dado disponível, refletindo variações de curto prazo na atividade econômica. Ressalta-se que, por se tratar de uma proxy mensal, esse indicador tende a amplificar flutuações pontuais e não substitui os dados consolidados do IBGE.

Segundo o IBGE, o PIB do Brasil acumula alta de 3,2% nos últimos 12 meses, com crescimento de 2,2% em relação ao mesmo período do ano anterior. Na passagem do primeiro para o segundo trimestre de 2025, a economia expandiu 0,4%, sinalizando desaceleração frente ao avanço de 1,3% registrado no primeiro trimestre. A SPE atribui esse arrefecimento à política monetária restritiva, que, como já mencionado, atua através de juros elevados para conter pressões inflacionárias, impactando consumo e investimento.

O cenário fiscal continua desempenhando papel central na dinâmica do PIB. Medidas de contenção de despesas obrigatórias e esforços de consolidação contribuem para moderar pressões sobre a demanda agregada, enquanto programas de expansão de transferências sociais e incentivos fiscais sustentam parte do consumo das famílias e investimentos governamentais. Essa interação, combinada com a política monetária contracionista, explica o ritmo moderado de crescimento observado nos últimos trimestres e reforça a necessidade de coordenação entre políticas fiscal e monetária para promover expansão sustentável.

Para os próximos meses, a SPE projeta ritmo de crescimento do PIB ligeiramente inferior ao observado no segundo trimestre, considerando os efeitos defasados da política monetária, a desaceleração das concessões de crédito e o aumento das taxas de juros bancárias. Entretanto, fatores como a resiliência do mercado de trabalho, o pagamento de precatórios e a expansão do crédito consignado podem mitigar parcialmente o impacto da política monetária sobre a atividade econômica.

Em síntese, o acompanhamento do PIB evidencia que, embora a proxy mensal do BCB sugira crescimento robusto, os dados oficiais do IBGE confirmam desaceleração, reforçando que a política fiscal — junto com os efeitos da política monetária já discutidos no tópico anterior — continua sendo determinante para a sustentação da atividade econômica e a convergência gradual da inflação.

Panorama da Política Fiscal e o novo arcabouço

O novo arcabouço fiscal, em vigor desde 2024, substituiu o antigo teto de gastos e estabeleceu limites para o crescimento das despesas primárias acima da inflação, vinculados à trajetória de arrecadação. Além disso, prevê metas de resultado primário e gatilhos de contenção em caso de descumprimento, buscando conciliar maior flexibilidade orçamentária com disciplina fiscal.

Para 2025, a meta definida é de déficit primário zero, com margem de tolerância de ±0,25% do PIB. Para alcançá-la, o governo combina instrumentos de contenção de despesas e de ampliação de receitas, incluindo o contingenciamento de gastos discricionários, aumentos pontuais de tributos (como IOF e reoneração de combustíveis) e receitas extraordinárias provenientes de leilões de petróleo e dividendos de estatais como a Petrobras, para complementar a arrecadação e apoiar o cumprimento da meta fiscal. Esses recursos adicionais, chamados de instrumentos pontuais de receita, têm caráter temporário e não alteram estruturalmente o orçamento, mas são fundamentais para atingir as metas de curto prazo.

A evolução recente do Resultado Primário do Setor Público Consolidado (NFSP), acumulado em 12 meses, indica que em julho de 2025 o saldo primário foi de 0,22% do PIB. A NFSP consolida receitas e despesas de todos os níveis do setor público, eliminando operações internas entre órgãos e desconsiderando efeitos de desvalorização cambial sobre a dívida, oferecendo uma visão clara da capacidade fiscal do governo. Esse resultado mostra que, embora positivo, o superávit primário ainda seja limitado, sinalizando que o cumprimento do arcabouço depende da manutenção das medidas de contenção e do desempenho das receitas extraordinárias, especialmente em um contexto de crescimento econômico mais lento.

Complementarmente, segundo o IBGE, a Receita Líquida do Governo Federal, que reflete as receitas efetivamente arrecadadas já descontadas as transferências a estados e municípios, atingiu 169,3 bilhões de reais em agosto de 2025, registrando crescimento real de 8% em relação ao mesmo mês de 2024. Apesar desse avanço na arrecadação, o governo apresentou déficit primário de 19,7 bilhões de reais em agosto e 88 bilhões de reaus no acumulado do ano, evidenciando que, embora a arrecadação esteja em expansão, as despesas ainda pressionam o resultado fiscal. Esse cenário reforça que, mesmo com instrumentos de receita e medidas de contenção em funcionamento, a disciplina na execução das despesas e a manutenção do crescimento da arrecadação são essenciais para assegurar a sustentabilidade do arcabouço fiscal e a estabilidade econômica.

Projeções da Dívida e Cenários de Risco

As projeções da dívida do governo geral brasileiro evidenciam não apenas a trajetória elevada do endividamento, mas também como diferenças metodológicas alteram de forma significativa a percepção de risco. Para 2025, o Tesouro Nacional projeta a DBGG em 83,3% do PIB e a DLGG em 70,2%, valores que refletem a exclusão de ativos financeiros e operações compromissadas na métrica líquida. Já o FMI projeta 92% do PIB, patamar sensivelmente mais alto, pois inclui em sua contabilidade os títulos públicos em carteira do Banco Central. Essa discrepância metodológica reforça que, enquanto as métricas domésticas sugerem um endividamento elevado porém manejável, a leitura externa tende a transmitir maior vulnerabilidade fiscal, influenciando prêmio de risco, ratings e custos de financiamento.

Nos anos seguintes até 2030, o Tesouro projeta crescimento moderado da dívida, com relativa estabilização tanto da DBGG quanto da DLGG, enquanto o FMI antecipa uma trajetória mais agressiva, com a dívida alcançando 100% do PIB em 2030. Após esse horizonte, apenas as estimativas do Tesouro estão disponíveis, o que amplia a incerteza sobre a dinâmica de longo prazo. De todo modo, todas as séries convergem para um diagnóstico comum: o Brasil seguirá operando em níveis elevados de endividamento, exigindo disciplina fiscal para evitar pressões adicionais sobre juros e inflação.

O cenário projetado pelo Tesouro Nacional sugere uma estabilização gradual da dívida, sustentada por maior controle de despesas e pelo efeito amortecedor da exclusão de ativos financeiros na métrica líquida. Caso esse cenário se concretize, o país poderia operar sem aceleração abrupta do custo de financiamento, preservando algum espaço de manobra para políticas públicas. Já a projeção do FMI indica um endividamento mais elevado e sensível a choques, transmitindo a ideia de que a sustentabilidade fiscal brasileira depende de condições externas favoráveis e de disciplina fiscal contínua. Essa diferença metodológica se reflete diretamente na percepção de risco internacional, tornando a avaliação de solvência mais restritiva do ponto de vista dos investidores estrangeiros.

Vale destacar que a proximidade do próximo calendário eleitoral no Brasil, que ocorrerá no final de 2026, aumenta o cenário de incerteza e projeção de aumento da dívida pública do país considerando que, pela teoria política e econômica do Political Bussiness Cycle, o governo em exercício costuma dispor de instrumentos institucionais (visibilidade, recursos orçamentários, influência sobre políticas públicas) para utilizar a política fiscal com vistas eleitorais. Essas dinâmicas podem comprometer a trajetória projetada de estabilização da dívida se forem implementadas medidas temporárias sem contrapartida estrutural, elevando o risco de deterioração fiscal no curto prazo.

A manutenção de dívida elevada, combinada à rigidez estrutural dos gastos correntes, mantém o país exposto a riscos fiscais e financeiros. A rolagem da dívida, em um ambiente de Selic alta e mercado de títulos volátil, tende a encarecer o custo do serviço da dívida, sobretudo nos papéis prefixados e indexados à inflação. Além disso, a percepção internacional captada pelo FMI reforça a vulnerabilidade a revisões negativas de rating e aumento dos spreads soberanos. Choques externos — como valorização cambial, alta de commodities ou inflação global persistente — também podem amplificar a pressão sobre juros e dívida, restringindo ainda mais a margem de manobra fiscal.

Em síntese, embora o Brasil disponha de espaço para estabilizar a trajetória da dívida no médio prazo, a credibilidade da política fiscal será decisiva. O monitoramento contínuo da composição da dívida, da evolução das receitas e da rigidez dos gastos é fundamental para reduzir riscos de solvência e garantir maior resiliência diante de choques externos e domésticos.

Apêndice - Métricas da Dívida Pública Brasileira

A comparação entre a Dívida Líquida do Governo Geral (DLGG), a Dívida Bruta do Governo Geral (DBGG) e a métrica de dívida calculada pelo FMI evidencia diferenças metodológicas relevantes, que impactam a interpretação da sustentabilidade fiscal.

A DLGG representa a diferença entre passivos e ativos financeiros do governo geral — englobando União, estados e municípios, mas excluindo empresas estatais não financeiras. Por descontar ativos financeiros, como operações compromissadas lastreadas em títulos públicos, oferece uma visão mais próxima do endividamento efetivo do setor público. Até julho de 2025, a DLGG estava em torno de 65,8% do PIB.

Já a DBGG contabiliza todos os passivos do governo, sem deduzir ativos financeiros. Isso significa que operações compromissadas, apesar de seu caráter temporário, entram no cálculo como dívida, elevando o valor total. Em julho de 2025, a DBGG atingiu 77,6% do PIB, permanecendo sistematicamente acima da DLGG.

Por fim, a dívida do governo geral medida pelo FMI inclui, adicionalmente, os títulos públicos em carteira do Banco Central. Esse critério leva a uma estimativa ainda mais elevada, próxima a 90% do PIB em 2025. Diferentemente das séries do Banco Central, os dados do FMI são divulgados anualmente, e os valores mais recentes refletem projeções, não observações mensais.

Em síntese, enquanto a DBGG tende a mostrar valores mais altos por não descontar ativos financeiros, a DLGG capta de forma mais precisa a posição líquida do setor público, e a métrica do FMI amplia o endividamento aparente ao incluir títulos em posse da autoridade monetária. Essas diferenças metodológicas ajudam a explicar por que a percepção de risco do Brasil pode variar entre investidores domésticos e internacionais, reforçando a importância de compreender o universo contábil e os ativos considerados em cada indicador.

Conclusão

O cenário fiscal e econômico brasileiro em 2025 evidencia desafios complexos de conciliação entre crescimento econômico, controle da inflação e sustentabilidade das contas públicas. A política monetária permanece contracionista para ancorar expectativas inflacionárias, enquanto o novo arcabouço fiscal e as medidas de contenção de gastos buscam garantir disciplina orçamentária.

A evolução do PIB indica crescimento moderado, e a análise da dívida pública mostra níveis elevados, que exigem atenção contínua à execução fiscal e à coordenação entre políticas econômica e fiscal. Embora haja sinais de estabilidade, fatores conjunturais e incertezas políticas reforçam a necessidade de monitoramento constante e de estratégias de longo prazo para preservar a solvência, a credibilidade fiscal e o equilíbrio macroeconômico.

Em suma, a sustentabilidade fiscal brasileira depende de decisões consistentes e coordenadas, capazes de equilibrar restrições orçamentárias, estímulos à atividade econômica e manutenção da confiança de investidores e da sociedade.

Referências

LS0tDQp0aXRsZTogIlJlbGF0w7NyaW8gZGUgUG9sw610aWNhIEZpc2NhbCINCmF1dGhvcjogIllhc21pbiBaYWdvIChQcmVzaWRlbnRlKSBlIExhcmEgTWFyaWEgKERpcmV0b3JhIGRlIFJlbGHDp8O1ZXMgRXh0ZXJuYXMpLiBMdWl6IEdhbWEgKFByb2Zlc3NvciBPcmllbnRhZG9yKSAtIERvdXRvciBlbSBFY29ub21pYSBlIHByb2Zlc3NvciBkbyBJYm1lYyBCSCAiDQpkYXRlOiAiMjQtMDktMjAyNSINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICB0aGVtZTogbHVtZW4NCiAgICBoaWdobGlnaHQ6IHRhbmdvDQogICAgY29kZV9mb2xkaW5nOiBzaG93DQogICAgY29kZV9kb3dubG9hZDogdHJ1ZSANCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFKQ0KDQojIENhcnJlZ2FyIHBhY290ZXMNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KGhpZ2hjaGFydGVyKQ0KbGlicmFyeShmcmVkcikNCmxpYnJhcnkocmJjYikNCmxpYnJhcnkocXVhbnRtb2QpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkodGliYmxlKQ0KbGlicmFyeShzY2FsZXMpDQpsaWJyYXJ5KGh0dHIpDQpsaWJyYXJ5KGpzb25saXRlKQ0KbGlicmFyeShzdHJpbmdyKQ0KbGlicmFyeSh0aWR5cikNCmxpYnJhcnkocGRmdG9vbHMpDQoNCg0KDQpgYGANCg0KIyBBbsOhbGlzZSBkZSBDb25qdW50dXJhIE1hY3JvZWNvbsO0bWljYSAtIENhbWluaG9zIGUgRGVzYWZpb3MgZGEgUG9sw610aWNhIEZpc2NhbCBubyBCcmFzaWwgY29tIGRhZG9zIGF0dWFsaXphZG9zIG5vIDPCsCBUcmltZXN0cmUgZGUgMjAyNQ0KDQpFc3RlIHJlbGF0w7NyaW8gYW5hbGlzYSBhIHBvbMOtdGljYSBmaXNjYWwgYnJhc2lsZWlyYSBlbSAyMDI1LCBkZXN0YWNhbmRvIGRlc2FmaW9zLCBtZWRpZGFzIHJlY2VudGVzIGUgcGVyc3BlY3RpdmFzIHBhcmEgbyBtw6lkaW8gcHJhem8uIEEgcG9sw610aWNhIGZpc2NhbCwgZW50ZW5kaWRhIGNvbW8gbyBjb25qdW50byBkZSBkZWNpc8O1ZXMgcmVsYWNpb25hZGFzIGEgYXJyZWNhZGHDp8OjbywgZ2FzdG9zIGUgZW5kaXZpZGFtZW50byBww7pibGljbywgZGVzZW1wZW5oYSBwYXBlbCBjZW50cmFsIG5hIGNvbmR1w6fDo28gZGEgZWNvbm9taWEsIGluZmx1ZW5jaWFuZG8gbyBjcmVzY2ltZW50bywgYSBpbmZsYcOnw6NvIGUgYSBjcmVkaWJpbGlkYWRlIGRvIHBhw61zIHBlcmFudGUgaW52ZXN0aWRvcmVzIGRvbcOpc3RpY29zIGUgaW50ZXJuYWNpb25haXMuDQoNCiMjICoqSW5mbGHDp8OjbyBlIFBvbMOtdGljYSBNb25ldMOhcmlhIG5vIENlbsOhcmlvIEZpc2NhbCoqDQoNCmBgYHtyfQ0KbGlicmFyeShyYmNiKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShoaWdoY2hhcnRlcikNCg0KIyAtLS0gSVBDQSAtLS0NCmlwY2EgPC0gZ2V0X3NlcmllcygxMzUyMiwgc3RhcnRfZGF0ZSA9ICIyMDE5LTAxLTAxIikgJT4lDQogIHJlbmFtZShkYXRhID0gZGF0ZSwgaXBjYSA9IGAxMzUyMmApDQoNCiMgLS0tIFNlbGljIC0tLQ0Kc2VsaWMgPC0gZ2V0X3NlcmllcygxMTc4LCBzdGFydF9kYXRlID0gIjIwMTktMDEtMDEiKSAlPiUNCiAgcmVuYW1lKGRhdGEgPSBkYXRlLCBzZWxpYyA9IGAxMTc4YCkgJT4lDQogIG11dGF0ZShtZXMgPSBmbG9vcl9kYXRlKGRhdGEsICJtb250aCIpKSAlPiUNCiAgZ3JvdXBfYnkobWVzKSAlPiUNCiAgc3VtbWFyaXNlKHNlbGljID0gbWVhbihzZWxpYywgbmEucm0gPSBUUlVFKSwgLmdyb3VwcyA9ICJkcm9wIikNCg0KIyAtLS0gR3LDoWZpY28gY29tYmluYWRvIC0tLQ0KaGlnaGNoYXJ0KHR5cGUgPSAic3RvY2siKSAlPiUNCiAgIyBJUENBIC0gY29sdW5hDQogIGhjX2FkZF9zZXJpZXMoaXBjYSwgdHlwZSA9ICJjb2x1bW4iLA0KICAgICAgICAgICAgICAgIGhjYWVzKHggPSBkYXRhLCB5ID0gaXBjYSksDQogICAgICAgICAgICAgICAgbmFtZSA9ICJJbmZsYcOnw6NvIGFudWFsaXphZGEgKElQQ0EpIiwNCiAgICAgICAgICAgICAgICBjb2xvciA9ICIjRkVCNzEyIiwNCiAgICAgICAgICAgICAgICB5QXhpcyA9IDApICU+JQ0KICAjIFNlbGljIC0gbGluaGENCiAgaGNfYWRkX3NlcmllcyhzZWxpYywgdHlwZSA9ICJsaW5lIiwNCiAgICAgICAgICAgICAgICBoY2Flcyh4ID0gbWVzLCB5ID0gc2VsaWMpLA0KICAgICAgICAgICAgICAgIG5hbWUgPSAiU2VsaWMgYW51YWxpemFkYSIsDQogICAgICAgICAgICAgICAgY29sb3IgPSAiIzAyMDIzQyIsDQogICAgICAgICAgICAgICAgeUF4aXMgPSAxKSAlPiUNCiAgIyBUw610dWxvcyBlIGxlZ2VuZGFzDQogIGhjX3RpdGxlKHRleHQgPSAiSW5mbGHDp8OjbyBlIFNlbGljIOKAkyDDmmx0aW1vcyA1IGFub3MiKSAlPiUNCiAgaGNfc3VidGl0bGUodGV4dCA9ICJGb250ZTogQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwgKFNHUyAxMzUyMiBlIDExNzgpIikgJT4lDQogICMgRWl4b3MgeSBzZXBhcmFkb3MNCiAgaGNfeUF4aXNfbXVsdGlwbGVzKA0KICAgIGxpc3QodGl0bGUgPSBsaXN0KHRleHQgPSAiSW5mbGHDp8OjbyAoJSkiKSwgb3Bwb3NpdGUgPSBGQUxTRSksDQogICAgbGlzdCh0aXRsZSA9IGxpc3QodGV4dCA9ICJTZWxpYyAoJSBhLmEuKSIpLCBvcHBvc2l0ZSA9IFRSVUUpDQogICkgJT4lDQogIGhjX3Rvb2x0aXAoc2hhcmVkID0gVFJVRSwNCiAgICAgICAgICAgICBwb2ludEZvcm1hdCA9ICI8Yj57c2VyaWVzLm5hbWV9PC9iPjoge3BvaW50Lnk6LjJmfSU8YnI+RGF0YToge3BvaW50Lng6JWIvJVl9IikgJT4lDQogIGhjX2NyZWRpdHMoZW5hYmxlZCA9IFRSVUUsIHRleHQgPSAiRm9udGU6IEJDQiB8IEdyw6FmaWNvOiBFbGFib3Jhw6fDo28gUHLDs3ByaWEiKSAlPiUNCiAgaGNfZXhwb3J0aW5nKGVuYWJsZWQgPSBUUlVFKSAlPiUNCiAgaGNfbGVnZW5kKGVuYWJsZWQgPSBUUlVFKQ0KDQpgYGANCg0KTyBjb21wb3J0YW1lbnRvIHJlY2VudGUgZGEgaW5mbGHDp8OjbyBicmFzaWxlaXJhIG1vc3RyYSB0cmFqZXTDs3JpYSBkZSBkZXNhY2VsZXJhw6fDo28gZW0gMjAyNSwgYXDDs3MgbyBjaWNsbyBkZSBjaG9xdWVzIGRlIGN1c3RvcyBlIGRlbWFuZGEgcXVlIG1hcmNhcmFtIG9zIGFub3MgYW50ZXJpb3Jlcy4gTyDDumx0aW1vIGRhZG8gZGlzcG9uw612ZWwgaW5kaWNhIHF1ZSBhIGluZmxhw6fDo28gYWN1bXVsYWRhIGVtIDEyIG1lc2VzIGVzdMOhIGVtIDUsMTMlLCBhaW5kYSBhY2ltYSBkbyBjZW50cm8gZGEgbWV0YSBkZSAzJSwgZW1ib3JhIGrDoSBlbSBwYXRhbWFyIGluZmVyaW9yIGFvIG9ic2VydmFkbyBlbSAyMDIy4oCTMjAyMy4gRXNzYSByZWR1w6fDo28gZGVjb3JyZSwgZW0gcGFydGUsIGRhIHBvbMOtdGljYSBtb25ldMOhcmlhIGNvbnRyYWNpb25pc3RhIGltcGxlbWVudGFkYSBwZWxvIEJhbmNvIENlbnRyYWwsIHF1ZSBtYW50ZXZlIGEgdGF4YSBTZWxpYyBlbGV2YWRhIHBvciB1bSBwZXLDrW9kbyBwcm9sb25nYWRvIHBhcmEgYW5jb3JhciBleHBlY3RhdGl2YXMgZSByZWR1emlyIGEgaW7DqXJjaWEgaW5mbGFjaW9uw6FyaWEuDQoNCkVudHJldGFudG8sIGEgcG9sw610aWNhIGZpc2NhbCB0ZW0gZGVzZW1wZW5oYWRvIHBhcGVsIGFtYsOtZ3VvIG5lc3NlIHByb2Nlc3NvLiBEZSB1bSBsYWRvLCBtZWRpZGFzIGRlIGNvbnRlbsOnw6NvIGRlIGRlc3Blc2FzIG9icmlnYXTDs3JpYXMgZSBhIHRlbnRhdGl2YSBkZSBjdW1wcmltZW50byBkbyBhcmNhYm91w6dvIGZpc2NhbCBjb250cmlidWVtIHBhcmEgbW9kZXJhciBwcmVzc8O1ZXMgZGUgZGVtYW5kYS4gRGUgb3V0cm8sIHByb2dyYW1hcyBkZSBleHBhbnPDo28gZGUgdHJhbnNmZXLDqm5jaWFzIHNvY2lhaXMgZSBpbmNlbnRpdm9zIHRyaWJ1dMOhcmlvcyBlbGV2YW0gbyBnYXN0byBwcmltw6FyaW8sIHN1c3RlbnRhbmRvIHBhcnRlIGRvIGNvbnN1bW8gZGFzIGZhbcOtbGlhcyBlIHJlZHV6aW5kbyBhIGVmZXRpdmlkYWRlIGRhIHBvbMOtdGljYSBtb25ldMOhcmlhLiBFc3NlIGRlc2NvbXBhc3NvIG9icmlnYSBhIGF1dG9yaWRhZGUgbW9uZXTDoXJpYSBhIG1hbnRlciBqdXJvcyBlbGV2YWRvcyBwb3IgbWFpcyB0ZW1wbywgYXVtZW50YW5kbyBvIGN1c3RvIGRhIGRlc2luZmxhw6fDo28uDQoNCk8gw7psdGltbyBkYWRvIGRhIHRheGEgU2VsaWMsIGVtIDE0LDkwJSBhbyBhbm8sIGNvbmZpcm1hIGVzc2UgZGlhZ27Ds3N0aWNvOiBtZXNtbyBkaWFudGUgZGEgZGVzYWNlbGVyYcOnw6NvIGRhIGluZmxhw6fDo28sIG8gcGF0YW1hciBkZSBqdXJvcyBzZWd1ZSBlbGV2YWRvIGVtIHRlcm1vcyByZWFpcy4gQ29uc2lkZXJhbmRvIGEgU2VsaWMgbm9taW5hbCBlIHV0aWxpemFuZG8gYSBpbmZsYcOnw6NvIGFjdW11bGFkYSBlbSAxMiBtZXNlcyAoNSwxMyUpIGNvbW8gcHJveHkgZGEgZXhwZWN0YXRpdmEgaW5mbGFjaW9uw6FyaWEsIG8ganVybyByZWFsIGV4LWFudGUgc2l0dWEtc2UgZW0gdG9ybm8gZGUgOSwyJSDigJQgdW0gZG9zIG1haXMgYWx0b3MgZG8gbXVuZG8uIEVzc2UgbsOtdmVsIGV2aWRlbmNpYSBvIGNhcsOhdGVyIGZvcnRlbWVudGUgY29udHJhY2lvbmlzdGEgZGEgcG9sw610aWNhIG1vbmV0w6FyaWEsIHJlZmxldGluZG8gdGFudG8gYSBwZXJzaXN0w6puY2lhIGRhcyBwcmVzc8O1ZXMgZmlzY2FpcyBxdWFudG8gYSBuZWNlc3NpZGFkZSBkZSBwcmVzZXJ2YcOnw6NvIGRhIGNyZWRpYmlsaWRhZGUgZG8gcmVnaW1lIGRlIG1ldGFzLiBBIHBlcmNlcMOnw6NvIGRlIHJpc2NvIGZpc2NhbCBlbGV2YSBvcyBwcsOqbWlvcyBleGlnaWRvcyBub3MgdMOtdHVsb3MgcMO6YmxpY29zIGUgcHJlc3Npb25hIG8gY8OibWJpbywgbGltaXRhbmRvIGEgcG9zc2liaWxpZGFkZSBkZSBmbGV4aWJpbGl6YcOnw6NvIG1vbmV0w6FyaWEgbWFpcyBhZ3Jlc3NpdmEuDQoNClBvcnRhbnRvLCBhIGNvbmp1bnR1cmEgYXR1YWwgbW9zdHJhIHF1ZSBvIHJpdG1vIGRlIGNvbnZlcmfDqm5jaWEgZGEgaW5mbGHDp8OjbyBkZXBlbmRlIG1lbm9zIGRhIGludGVuc2lkYWRlIGRhIHBvbMOtdGljYSBtb25ldMOhcmlhIGUgbWFpcyBkYSBjb25zaXN0w6puY2lhIGRhIHBvbMOtdGljYSBmaXNjYWwuIFNlbSBhdmFuw6dvcyBlc3RydXR1cmFpcyBuYSBjb25zb2xpZGHDp8OjbyBkYXMgY29udGFzIHDDumJsaWNhcywgbyBlc3Bhw6dvIHBhcmEgY29ydGVzIHN1c3RlbnTDoXZlaXMgbmEgU2VsaWMgcGVybWFuZWNlIHJlc3RyaXRvLCBtYW50ZW5kbyBhIGVjb25vbWlhIGVtIGFtYmllbnRlIGRlIGp1cm9zIGVsZXZhZG9zIGUgaW5mbGHDp8OjbyBlbSBwcm9jZXNzbyBsZW50byBkZSBjb252ZXJnw6puY2lhLg0KDQojIyMjIEFww6puZGljZSDigJMgQ8OhbGN1bG8gZG8gSnVybyBSZWFsIEV4LUFudGUNCg0KTyBqdXJvIHJlYWwgZXgtYW50ZSDDqSBjYWxjdWxhZG8gYSBwYXJ0aXIgZGEgdGF4YSBub21pbmFsIGRlIGp1cm9zIChTZWxpYykgZSBkYSBleHBlY3RhdGl2YSBkZSBpbmZsYcOnw6NvIGFjdW11bGFkYSBlbSAxMiBtZXNlcy5cDQpBIGbDs3JtdWxhIHV0aWxpemFkYSBmb2k6DQoNCiQkDQpyID0gXGZyYWN7MStpfXsxK1xwaV5lfSAtIDENCiQkDQoNCk9uZGU6DQoNCi0gICAkaSQgw6kgYSB0YXhhIG5vbWluYWwgZGUganVyb3MgKFNlbGljLCBhbyBhbm8pOw0KLSAgICRccGleZSQgw6kgYSBleHBlY3RhdGl2YSBkZSBpbmZsYcOnw6NvIChwcm94eTogSVBDQSBhY3VtdWxhZG8gZW0gMTIgbWVzZXMpOw0KLSAgICRyJCDDqSBhIHRheGEgcmVhbCBleC1hbnRlIGRlIGp1cm9zLg0KDQpTdWJzdGl0dWluZG8gb3MgdmFsb3JlczoNCg0KJCQNCnIgPSBcZnJhY3sxICsgMC4xNDl9ezEgKyAwLjA1MTN9IC0gMSBcYXBwcm94IDAuMDkyIFw7IChcdGV4dHtvdSA5LDJcJSBhbyBhbm99KQ0KJCQNCg0KIyMgKipQSUIgZSBQb2zDrXRpY2EgRmlzY2FsKioNCg0KYGBge3J9DQpsaWJyYXJ5KHJiY2IpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KGhpZ2hjaGFydGVyKQ0KDQojIDEuIFPDqXJpZSBQSUIgKDQzODAgLSDDrW5kaWNlIGVuY2FkZWFkbyBtZW5zYWwsIDE5OTU9MTAwKQ0KcGliX3JhdyA8LSByYmNiOjpnZXRfc2VyaWVzKDQzODAsIHN0YXJ0X2RhdGUgPSAiMjAxOC0wMS0wMSIpICU+JQ0KICByZW5hbWUoZGF0YSA9IGRhdGUsIHBpYl9pbmRpY2UgPSBgNDM4MGApDQoNCiMgMi4gQ2FsY3VsYXIgdmFyaWHDp8OjbyBhbnVhbGl6YWRhIChtw6pzIGF0dWFsIHZzIG1lc21vIG3DqnMgZG8gYW5vIGFudGVyaW9yKQ0KcGliX3ZhciA8LSBwaWJfcmF3ICU+JQ0KICBhcnJhbmdlKGRhdGEpICU+JQ0KICBtdXRhdGUoDQogICAgcGliX3ZhciA9IChwaWJfaW5kaWNlIC8gbGFnKHBpYl9pbmRpY2UsIDEyKSAtIDEpICogMTAwDQogICkgJT4lDQogIGZpbHRlcighaXMubmEocGliX3ZhcikpDQoNCiMgMy4gR3LDoWZpY28gaW50ZXJhdGl2byAobWVuc2FsLCB2YXJpYcOnw6NvIGFudWFsaXphZGEpDQpoaWdoY2hhcnQodHlwZSA9ICJzdG9jayIpICU+JQ0KICBoY19hZGRfc2VyaWVzKHBpYl92YXIsIHR5cGUgPSAiY29sdW1uIiwNCiAgICAgICAgICAgICAgICBoY2Flcyh4ID0gZGF0YSwgeSA9IHBpYl92YXIpLA0KICAgICAgICAgICAgICAgIG5hbWUgPSAiUElCICglIGEuYS4pIiwNCiAgICAgICAgICAgICAgICBjb2xvciA9ICIjMDIwMjNDIikgJT4lDQogIGhjX3RpdGxlKHRleHQgPSAiRmlndXJhIDM6IFBJQiBkbyBCcmFzaWwg4oCTIFZhcmlhw6fDo28gTWVuc2FsIEFudWFsaXphZGEiKSAlPiUNCiAgaGNfc3VidGl0bGUodGV4dCA9ICJGb250ZTogQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwgKFNHUyA0MzgwKSIpICU+JQ0KICBoY195QXhpcyh0aXRsZSA9IGxpc3QodGV4dCA9ICJDcmVzY2ltZW50byBkbyBQSUIgKCUgYS5hLikiKSkgJT4lDQogIGhjX3Rvb2x0aXAoDQogICAgdXNlSFRNTCA9IFRSVUUsDQogICAgaGVhZGVyRm9ybWF0ID0gIiIsDQogICAgcG9pbnRGb3JtYXQgPSAiRGF0YTogPGI+e3BvaW50Lng6JWIvJVl9PC9iPjxici8+UElCOiA8Yj57cG9pbnQueTouMmZ9JTwvYj4iDQogICkgJT4lDQogIGhjX2V4cG9ydGluZyhlbmFibGVkID0gVFJVRSkgJT4lDQogIGhjX2NyZWRpdHMoZW5hYmxlZCA9IFRSVUUsIHRleHQgPSAiRm9udGU6IEJDQiB8IEdyw6FmaWNvOiBFbGFib3Jhw6fDo28gUHLDs3ByaWEiKQ0KDQpgYGANCg0KTyBkZXNlbXBlbmhvIHJlY2VudGUgZGEgZWNvbm9taWEgYnJhc2lsZWlyYSBlbSAyMDI1IGV2aWRlbmNpYSBjcmVzY2ltZW50byBwb3NpdGl2bywgbWFzIGNvbSBzaW5haXMgY2xhcm9zIGRlIGRlc2FjZWxlcmHDp8Ojby4gQSBzw6lyaWUgbWVuc2FsIGRvIEJhbmNvIENlbnRyYWwsIHV0aWxpemFkYSBjb21vIHByb3h5IGRvIFBJQiBvZmljaWFsLCBpbmRpY2EgY3Jlc2NpbWVudG8gYW51YWxpemFkbyBkZSA3LDU4JSBubyDDumx0aW1vIGRhZG8gZGlzcG9uw612ZWwsIHJlZmxldGluZG8gdmFyaWHDp8O1ZXMgZGUgY3VydG8gcHJhem8gbmEgYXRpdmlkYWRlIGVjb27DtG1pY2EuIFJlc3NhbHRhLXNlIHF1ZSwgcG9yIHNlIHRyYXRhciBkZSB1bWEgcHJveHkgbWVuc2FsLCBlc3NlIGluZGljYWRvciB0ZW5kZSBhIGFtcGxpZmljYXIgZmx1dHVhw6fDtWVzIHBvbnR1YWlzIGUgbsOjbyBzdWJzdGl0dWkgb3MgZGFkb3MgY29uc29saWRhZG9zIGRvIElCR0UuDQoNClNlZ3VuZG8gbyBJQkdFLCBvIFBJQiBkbyBCcmFzaWwgYWN1bXVsYSBhbHRhIGRlIDMsMiUgbm9zIMO6bHRpbW9zIDEyIG1lc2VzLCBjb20gY3Jlc2NpbWVudG8gZGUgMiwyJSBlbSByZWxhw6fDo28gYW8gbWVzbW8gcGVyw61vZG8gZG8gYW5vIGFudGVyaW9yLiBOYSBwYXNzYWdlbSBkbyBwcmltZWlybyBwYXJhIG8gc2VndW5kbyB0cmltZXN0cmUgZGUgMjAyNSwgYSBlY29ub21pYSBleHBhbmRpdSAwLDQlLCBzaW5hbGl6YW5kbyBkZXNhY2VsZXJhw6fDo28gZnJlbnRlIGFvIGF2YW7Dp28gZGUgMSwzJSByZWdpc3RyYWRvIG5vIHByaW1laXJvIHRyaW1lc3RyZS4gQSBTUEUgYXRyaWJ1aSBlc3NlIGFycmVmZWNpbWVudG8gw6AgcG9sw610aWNhIG1vbmV0w6FyaWEgcmVzdHJpdGl2YSwgcXVlLCBjb21vIGrDoSBtZW5jaW9uYWRvLCBhdHVhIGF0cmF2w6lzIGRlIGp1cm9zIGVsZXZhZG9zIHBhcmEgY29udGVyIHByZXNzw7VlcyBpbmZsYWNpb27DoXJpYXMsIGltcGFjdGFuZG8gY29uc3VtbyBlIGludmVzdGltZW50by4NCg0KTyBjZW7DoXJpbyBmaXNjYWwgY29udGludWEgZGVzZW1wZW5oYW5kbyBwYXBlbCBjZW50cmFsIG5hIGRpbsOibWljYSBkbyBQSUIuIE1lZGlkYXMgZGUgY29udGVuw6fDo28gZGUgZGVzcGVzYXMgb2JyaWdhdMOzcmlhcyBlIGVzZm9yw6dvcyBkZSBjb25zb2xpZGHDp8OjbyBjb250cmlidWVtIHBhcmEgbW9kZXJhciBwcmVzc8O1ZXMgc29icmUgYSBkZW1hbmRhIGFncmVnYWRhLCBlbnF1YW50byBwcm9ncmFtYXMgZGUgZXhwYW5zw6NvIGRlIHRyYW5zZmVyw6puY2lhcyBzb2NpYWlzIGUgaW5jZW50aXZvcyBmaXNjYWlzIHN1c3RlbnRhbSBwYXJ0ZSBkbyBjb25zdW1vIGRhcyBmYW3DrWxpYXMgZSBpbnZlc3RpbWVudG9zIGdvdmVybmFtZW50YWlzLiBFc3NhIGludGVyYcOnw6NvLCBjb21iaW5hZGEgY29tIGEgcG9sw610aWNhIG1vbmV0w6FyaWEgY29udHJhY2lvbmlzdGEsIGV4cGxpY2EgbyByaXRtbyBtb2RlcmFkbyBkZSBjcmVzY2ltZW50byBvYnNlcnZhZG8gbm9zIMO6bHRpbW9zIHRyaW1lc3RyZXMgZSByZWZvcsOnYSBhIG5lY2Vzc2lkYWRlIGRlIGNvb3JkZW5hw6fDo28gZW50cmUgcG9sw610aWNhcyBmaXNjYWwgZSBtb25ldMOhcmlhIHBhcmEgcHJvbW92ZXIgZXhwYW5zw6NvIHN1c3RlbnTDoXZlbC4NCg0KUGFyYSBvcyBwcsOzeGltb3MgbWVzZXMsIGEgU1BFIHByb2pldGEgcml0bW8gZGUgY3Jlc2NpbWVudG8gZG8gUElCIGxpZ2VpcmFtZW50ZSBpbmZlcmlvciBhbyBvYnNlcnZhZG8gbm8gc2VndW5kbyB0cmltZXN0cmUsIGNvbnNpZGVyYW5kbyBvcyBlZmVpdG9zIGRlZmFzYWRvcyBkYSBwb2zDrXRpY2EgbW9uZXTDoXJpYSwgYSBkZXNhY2VsZXJhw6fDo28gZGFzIGNvbmNlc3PDtWVzIGRlIGNyw6lkaXRvIGUgbyBhdW1lbnRvIGRhcyB0YXhhcyBkZSBqdXJvcyBiYW5jw6FyaWFzLiBFbnRyZXRhbnRvLCBmYXRvcmVzIGNvbW8gYSByZXNpbGnDqm5jaWEgZG8gbWVyY2FkbyBkZSB0cmFiYWxobywgbyBwYWdhbWVudG8gZGUgcHJlY2F0w7NyaW9zIGUgYSBleHBhbnPDo28gZG8gY3LDqWRpdG8gY29uc2lnbmFkbyBwb2RlbSBtaXRpZ2FyIHBhcmNpYWxtZW50ZSBvIGltcGFjdG8gZGEgcG9sw610aWNhIG1vbmV0w6FyaWEgc29icmUgYSBhdGl2aWRhZGUgZWNvbsO0bWljYS4NCg0KRW0gc8OtbnRlc2UsIG8gYWNvbXBhbmhhbWVudG8gZG8gUElCIGV2aWRlbmNpYSBxdWUsIGVtYm9yYSBhIHByb3h5IG1lbnNhbCBkbyBCQ0Igc3VnaXJhIGNyZXNjaW1lbnRvIHJvYnVzdG8sIG9zIGRhZG9zIG9maWNpYWlzIGRvIElCR0UgY29uZmlybWFtIGRlc2FjZWxlcmHDp8OjbywgcmVmb3LDp2FuZG8gcXVlIGEgcG9sw610aWNhIGZpc2NhbCDigJQganVudG8gY29tIG9zIGVmZWl0b3MgZGEgcG9sw610aWNhIG1vbmV0w6FyaWEgasOhIGRpc2N1dGlkb3Mgbm8gdMOzcGljbyBhbnRlcmlvciDigJQgY29udGludWEgc2VuZG8gZGV0ZXJtaW5hbnRlIHBhcmEgYSBzdXN0ZW50YcOnw6NvIGRhIGF0aXZpZGFkZSBlY29uw7RtaWNhIGUgYSBjb252ZXJnw6puY2lhIGdyYWR1YWwgZGEgaW5mbGHDp8Ojby4NCg0KIyMgKipQYW5vcmFtYSBkYSBQb2zDrXRpY2EgRmlzY2FsIGUgbyBub3ZvIGFyY2Fib3XDp28qKg0KDQpgYGB7cn0NCiMgUGFjb3Rlcw0KbGlicmFyeShyYmNiKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShoaWdoY2hhcnRlcikNCg0KIyAxKSBCYWl4YXIgYSBzw6lyaWUgZG8gQkNCDQojIFPDqXJpZSBTR1MgNTc5MyA9IFJlc3VsdGFkbyBkbyBTZXRvciBQw7pibGljbyBDb25zb2xpZGFkbyAtIFByaW3DoXJpbyBhY3VtdWxhZG8gZW0gMTIgbWVzZXMgLyBQSUIgKCUgZG8gUElCKQ0KcmVzdWx0YWRvX3ByaW1hcmlvIDwtIHJiY2I6OmdldF9zZXJpZXMoYyhyZXNfcHJpbV9waWIgPSA1NzkzKSwgc3RhcnRfZGF0ZSA9ICIyMDE5LTAxLTAxIikgJT4lDQogIHJlbmFtZShkYXRhID0gZGF0ZSkgJT4lDQogIGZpbHRlcighaXMubmEocmVzX3ByaW1fcGliKSkNCg0KIyAyKSBDb25zdHJ1aXIgbyBncsOhZmljbyBpbnRlcmF0aXZvIG5vIG1vZGVsbyBzdG9jaw0KaGlnaGNoYXJ0KHR5cGUgPSAic3RvY2siKSAlPiUNCiAgaGNfYWRkX3NlcmllcyhyZXN1bHRhZG9fcHJpbWFyaW8sIHR5cGUgPSAibGluZSIsDQogICAgICAgICAgICAgICAgaGNhZXMoeCA9IGRhdGEsIHkgPSByZXNfcHJpbV9waWIpLA0KICAgICAgICAgICAgICAgIG5hbWUgPSAiUmVzdWx0YWRvIHByaW3DoXJpbyAoJSBkbyBQSUIsIDEybSBhY3VtdWxhZG8pIiwNCiAgICAgICAgICAgICAgICBjb2xvciA9ICIjMDIwMjNDIikgJT4lDQogIA0KICAjIFTDrXR1bG9zDQogIGhjX3RpdGxlKHRleHQgPSAiRmlndXJhIDQ6IFJlc3VsdGFkbyBQcmltw6FyaW8gKCUgZG8gUElCLCBhY3VtdWxhZG8gZW0gMTIgbWVzZXMpIikgJT4lDQogIGhjX3N1YnRpdGxlKHRleHQgPSAiRm9udGU6IEJhbmNvIENlbnRyYWwgZG8gQnJhc2lsIChTR1MgNTc5MykiKSAlPiUNCiAgDQogICMgRWl4byBZDQogIGhjX3lBeGlzKHRpdGxlID0gbGlzdCh0ZXh0ID0gIiUgZG8gUElCIikpICU+JQ0KICANCiAgIyBUb29sdGlwIGN1c3RvbWl6YWRvDQogIGhjX3Rvb2x0aXAoDQogICAgdXNlSFRNTCA9IFRSVUUsDQogICAgc2hhcmVkID0gRkFMU0UsDQogICAgdmFsdWVEZWNpbWFscyA9IDIsDQogICAgaGVhZGVyRm9ybWF0ID0gIiIsDQogICAgcG9pbnRGb3JtYXQgPSAiRGF0YTogPGI+e3BvaW50Lng6JWIvJVl9PC9iPjxici8+UmVzdWx0YWRvIHByaW3DoXJpbzogPGI+e3BvaW50Lnk6LjJmfSUgZG8gUElCPC9iPiINCiAgKSAlPiUNCiAgDQogICMgRXhwb3J0YcOnw6NvDQogIGhjX2V4cG9ydGluZyhlbmFibGVkID0gVFJVRSkgJT4lDQogIA0KICAjIENyw6lkaXRvcw0KICBoY19jcmVkaXRzKGVuYWJsZWQgPSBUUlVFLCB0ZXh0ID0gIkZvbnRlOiBCQ0IgfCBHcsOhZmljbzogRWxhYm9yYcOnw6NvIFByw7NwcmlhIikgJT4lDQogIA0KICAjIExlZ2VuZGEgZGVzbGlnYWRhIChhcGVuYXMgdW1hIHPDqXJpZSkNCiAgaGNfbGVnZW5kKGVuYWJsZWQgPSBGQUxTRSkNCg0KDQoNCmBgYA0KDQpPIG5vdm8gYXJjYWJvdcOnbyBmaXNjYWwsIGVtIHZpZ29yIGRlc2RlIDIwMjQsIHN1YnN0aXR1aXUgbyBhbnRpZ28gdGV0byBkZSBnYXN0b3MgZSBlc3RhYmVsZWNldSBsaW1pdGVzIHBhcmEgbyBjcmVzY2ltZW50byBkYXMgZGVzcGVzYXMgcHJpbcOhcmlhcyBhY2ltYSBkYSBpbmZsYcOnw6NvLCB2aW5jdWxhZG9zIMOgIHRyYWpldMOzcmlhIGRlIGFycmVjYWRhw6fDo28uIEFsw6ltIGRpc3NvLCBwcmV2w6ogbWV0YXMgZGUgcmVzdWx0YWRvIHByaW3DoXJpbyBlIGdhdGlsaG9zIGRlIGNvbnRlbsOnw6NvIGVtIGNhc28gZGUgZGVzY3VtcHJpbWVudG8sIGJ1c2NhbmRvIGNvbmNpbGlhciBtYWlvciBmbGV4aWJpbGlkYWRlIG9yw6dhbWVudMOhcmlhIGNvbSBkaXNjaXBsaW5hIGZpc2NhbC4NCg0KUGFyYSAyMDI1LCBhIG1ldGEgZGVmaW5pZGEgw6kgZGUgZMOpZmljaXQgcHJpbcOhcmlvIHplcm8sIGNvbSBtYXJnZW0gZGUgdG9sZXLDom5jaWEgZGUgwrEwLDI1JSBkbyBQSUIuIFBhcmEgYWxjYW7Dp8OhLWxhLCBvIGdvdmVybm8gY29tYmluYSBpbnN0cnVtZW50b3MgZGUgY29udGVuw6fDo28gZGUgZGVzcGVzYXMgZSBkZSBhbXBsaWHDp8OjbyBkZSByZWNlaXRhcywgaW5jbHVpbmRvIG8gY29udGluZ2VuY2lhbWVudG8gZGUgZ2FzdG9zIGRpc2NyaWNpb27DoXJpb3MsIGF1bWVudG9zIHBvbnR1YWlzIGRlIHRyaWJ1dG9zIChjb21vIElPRiBlIHJlb25lcmHDp8OjbyBkZSBjb21idXN0w612ZWlzKSBlIHJlY2VpdGFzIGV4dHJhb3JkaW7DoXJpYXMgcHJvdmVuaWVudGVzIGRlIGxlaWzDtWVzIGRlIHBldHLDs2xlbyBlIGRpdmlkZW5kb3MgZGUgZXN0YXRhaXMgY29tbyBhIFBldHJvYnJhcywgcGFyYSBjb21wbGVtZW50YXIgYSBhcnJlY2FkYcOnw6NvIGUgYXBvaWFyIG8gY3VtcHJpbWVudG8gZGEgbWV0YSBmaXNjYWwuIEVzc2VzIHJlY3Vyc29zIGFkaWNpb25haXMsIGNoYW1hZG9zIGRlIGluc3RydW1lbnRvcyBwb250dWFpcyBkZSByZWNlaXRhLCB0w6ptIGNhcsOhdGVyIHRlbXBvcsOhcmlvIGUgbsOjbyBhbHRlcmFtIGVzdHJ1dHVyYWxtZW50ZSBvIG9yw6dhbWVudG8sIG1hcyBzw6NvIGZ1bmRhbWVudGFpcyBwYXJhIGF0aW5naXIgYXMgbWV0YXMgZGUgY3VydG8gcHJhem8uDQoNCkEgZXZvbHXDp8OjbyByZWNlbnRlIGRvIFJlc3VsdGFkbyBQcmltw6FyaW8gZG8gU2V0b3IgUMO6YmxpY28gQ29uc29saWRhZG8gKE5GU1ApLCBhY3VtdWxhZG8gZW0gMTIgbWVzZXMsIGluZGljYSBxdWUgZW0ganVsaG8gZGUgMjAyNSBvIHNhbGRvIHByaW3DoXJpbyBmb2kgZGUgMCwyMiUgZG8gUElCLiBBIE5GU1AgY29uc29saWRhIHJlY2VpdGFzIGUgZGVzcGVzYXMgZGUgdG9kb3Mgb3MgbsOtdmVpcyBkbyBzZXRvciBww7pibGljbywgZWxpbWluYW5kbyBvcGVyYcOnw7VlcyBpbnRlcm5hcyBlbnRyZSDDs3Jnw6NvcyBlIGRlc2NvbnNpZGVyYW5kbyBlZmVpdG9zIGRlIGRlc3ZhbG9yaXphw6fDo28gY2FtYmlhbCBzb2JyZSBhIGTDrXZpZGEsIG9mZXJlY2VuZG8gdW1hIHZpc8OjbyBjbGFyYSBkYSBjYXBhY2lkYWRlIGZpc2NhbCBkbyBnb3Zlcm5vLiBFc3NlIHJlc3VsdGFkbyBtb3N0cmEgcXVlLCBlbWJvcmEgcG9zaXRpdm8sIG8gc3VwZXLDoXZpdCBwcmltw6FyaW8gYWluZGEgc2VqYSBsaW1pdGFkbywgc2luYWxpemFuZG8gcXVlIG8gY3VtcHJpbWVudG8gZG8gYXJjYWJvdcOnbyBkZXBlbmRlIGRhIG1hbnV0ZW7Dp8OjbyBkYXMgbWVkaWRhcyBkZSBjb250ZW7Dp8OjbyBlIGRvIGRlc2VtcGVuaG8gZGFzIHJlY2VpdGFzIGV4dHJhb3JkaW7DoXJpYXMsIGVzcGVjaWFsbWVudGUgZW0gdW0gY29udGV4dG8gZGUgY3Jlc2NpbWVudG8gZWNvbsO0bWljbyBtYWlzIGxlbnRvLg0KDQpDb21wbGVtZW50YXJtZW50ZSwgc2VndW5kbyBvIElCR0UsIGEgUmVjZWl0YSBMw61xdWlkYSBkbyBHb3Zlcm5vIEZlZGVyYWwsIHF1ZSByZWZsZXRlIGFzIHJlY2VpdGFzIGVmZXRpdmFtZW50ZSBhcnJlY2FkYWRhcyBqw6EgZGVzY29udGFkYXMgYXMgdHJhbnNmZXLDqm5jaWFzIGEgZXN0YWRvcyBlIG11bmljw61waW9zLCBhdGluZ2l1IDE2OSwzIGJpbGjDtWVzIGRlIHJlYWlzIGVtIGFnb3N0byBkZSAyMDI1LCByZWdpc3RyYW5kbyBjcmVzY2ltZW50byByZWFsIGRlIDglIGVtIHJlbGHDp8OjbyBhbyBtZXNtbyBtw6pzIGRlIDIwMjQuIEFwZXNhciBkZXNzZSBhdmFuw6dvIG5hIGFycmVjYWRhw6fDo28sIG8gZ292ZXJubyBhcHJlc2VudG91IGTDqWZpY2l0IHByaW3DoXJpbyBkZSAxOSw3IGJpbGjDtWVzIGRlIHJlYWlzIGVtIGFnb3N0byBlIDg4IGJpbGjDtWVzIGRlIHJlYXVzIG5vIGFjdW11bGFkbyBkbyBhbm8sIGV2aWRlbmNpYW5kbyBxdWUsIGVtYm9yYSBhIGFycmVjYWRhw6fDo28gZXN0ZWphIGVtIGV4cGFuc8OjbywgYXMgZGVzcGVzYXMgYWluZGEgcHJlc3Npb25hbSBvIHJlc3VsdGFkbyBmaXNjYWwuIEVzc2UgY2Vuw6FyaW8gcmVmb3LDp2EgcXVlLCBtZXNtbyBjb20gaW5zdHJ1bWVudG9zIGRlIHJlY2VpdGEgZSBtZWRpZGFzIGRlIGNvbnRlbsOnw6NvIGVtIGZ1bmNpb25hbWVudG8sIGEgZGlzY2lwbGluYSBuYSBleGVjdcOnw6NvIGRhcyBkZXNwZXNhcyBlIGEgbWFudXRlbsOnw6NvIGRvIGNyZXNjaW1lbnRvIGRhIGFycmVjYWRhw6fDo28gc8OjbyBlc3NlbmNpYWlzIHBhcmEgYXNzZWd1cmFyIGEgc3VzdGVudGFiaWxpZGFkZSBkbyBhcmNhYm91w6dvIGZpc2NhbCBlIGEgZXN0YWJpbGlkYWRlIGVjb27DtG1pY2EuDQoNCiMjICoqUHJvamXDp8O1ZXMgZGEgRMOtdmlkYSBlIENlbsOhcmlvcyBkZSBSaXNjbyoqDQoNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoaGlnaGNoYXJ0ZXIpDQpsaWJyYXJ5KHB1cnJyKQ0KbGlicmFyeShsdWJyaWRhdGUpDQoNCiMgVGFiZWxhIG9maWNpYWwgZGUgcHJvamXDp8O1ZXMgZG8gVGVzb3VybyAoMjAyNS0yMDM1KQ0KdGVzb3VybyA8LSB0aWJibGUoDQogIGFubyA9IDIwMjU6MjAzNSwNCiAgZGJnZ190ZXNvdXJvID0gYyg3OSwgODMuMywgODMuOSwgODQuMywgODQuMSwgODQuMCwgODMuOSwgODMuNywgODMuNSwgODMuMiwgODIuOSksDQogIGRsZ2dfdGVzb3VybyA9IGMoNjcuNSwgNzAuMiwgNzEuNCwgNzEuNywgNzEuNSwgNzEuMywgNzEuMSwgNzAuOSwgNzAuNywgNzAuNCwgNzAuMikNCikgJT4lDQogIG11dGF0ZShkYXRhID0gYXMuRGF0ZShwYXN0ZTAoYW5vLCAiLTEyLTMxIikpLA0KICAgICAgICAgdGltZXN0YW1wID0gYXMubnVtZXJpYyhhcy5QT1NJWGN0KGRhdGEpKSAqIDEwMDApDQoNCiMgRk1JIHPDsyBhdMOpIDIwMzANCmZtaSA8LSB0aWJibGUoDQogIGFubyA9IDIwMjU6MjAzMCwNCiAgZm1pID0gYyg5Mi4wLCA5Ni4wLCA5OC4xLCA5OS4xLCA5OS40LCA5OS40KQ0KKSAlPiUNCiAgbXV0YXRlKGRhdGEgPSBhcy5EYXRlKHBhc3RlMChhbm8sICItMTItMzEiKSksDQogICAgICAgICB0aW1lc3RhbXAgPSBhcy5udW1lcmljKGFzLlBPU0lYY3QoZGF0YSkpICogMTAwMCkNCg0KIyBDcmlhciBsaXN0YXMgcGFyYSBIaWdoY2hhcnRlcg0KZGJnZ19saXN0IDwtIG1hcDIodGVzb3VybyR0aW1lc3RhbXAsIHRlc291cm8kZGJnZ190ZXNvdXJvLCB+IGxpc3QoLngsIC55KSkNCmRsZ2dfbGlzdCA8LSBtYXAyKHRlc291cm8kdGltZXN0YW1wLCB0ZXNvdXJvJGRsZ2dfdGVzb3VybywgfiBsaXN0KC54LCAueSkpDQpmbWlfbGlzdCAgPC0gbWFwMihmbWkkdGltZXN0YW1wLCBmbWkkZm1pLCB+IGxpc3QoLngsIC55KSkNCg0KIyBHcsOhZmljbyBIaWdoY2hhcnRlciBpbnRlcmF0aXZvDQpoaWdoY2hhcnQodHlwZSA9ICJzdG9jayIpIHw+DQogIGhjX2FkZF9zZXJpZXMoZGF0YSA9IGRiZ2dfbGlzdCwgdHlwZSA9ICJsaW5lIiwgbmFtZSA9ICJEQkdHICglIGRvIFBJQikiLA0KICAgICAgICAgICAgICAgIGNvbG9yID0gIiNGRUI3MTIiKSB8Pg0KICBoY19hZGRfc2VyaWVzKGRhdGEgPSBkbGdnX2xpc3QsIHR5cGUgPSAibGluZSIsIG5hbWUgPSAiRExHRyAoJSBkbyBQSUIpIiwNCiAgICAgICAgICAgICAgICBjb2xvciA9ICIjNDZCMUUxIikgfD4NCiAgaGNfYWRkX3NlcmllcyhkYXRhID0gZm1pX2xpc3QsIHR5cGUgPSAibGluZSIsIG5hbWUgPSAiRk1JICglIGRvIFBJQikiLA0KICAgICAgICAgICAgICAgIGNvbG9yID0gIiMwMjAyM0MiLCBkYXNoU3R5bGUgPSAiU2hvcnREYXNoIikgfD4NCiAgaGNfdGl0bGUodGV4dCA9ICJQcm9qZcOnw6NvIGRhIETDrXZpZGEgZG8gR292ZXJubyBHZXJhbCBCcmFzaWxlaXJvICgyMDI1LTIwMzUpIikgfD4NCiAgaGNfc3VidGl0bGUodGV4dCA9ICJGb250ZTogVGVzb3VybyBOYWNpb25hbCBlIEZNSSB8IFZhbG9yZXMgZmluYWlzIGRlIGNhZGEgYW5vIikgfD4NCiAgaGNfeUF4aXModGl0bGUgPSBsaXN0KHRleHQgPSAiJSBkbyBQSUIiKSkgfD4NCiAgaGNfcmFuZ2VTZWxlY3RvcihlbmFibGVkID0gVFJVRSkgfD4NCiAgaGNfc2Nyb2xsYmFyKGVuYWJsZWQgPSBUUlVFKSB8Pg0KICBoY19uYXZpZ2F0b3IoZW5hYmxlZCA9IFRSVUUpIHw+DQogIGhjX3Rvb2x0aXAoc2hhcmVkID0gVFJVRSwgeERhdGVGb3JtYXQgPSAiJVkiLCB2YWx1ZURlY2ltYWxzID0gMSkgfD4NCiAgaGNfZXhwb3J0aW5nKGVuYWJsZWQgPSBUUlVFKSB8Pg0KICBoY19sZWdlbmQoZW5hYmxlZCA9IFRSVUUsIGFsaWduID0gImNlbnRlciIsIHZlcnRpY2FsQWxpZ24gPSAiYm90dG9tIikgfD4NCiAgaGNfY3JlZGl0cyhlbmFibGVkID0gVFJVRSwgdGV4dCA9ICJGb250ZTogQkNCIGUgRk1JIHwgR3LDoWZpY286IEVsYWJvcmHDp8OjbyBQcsOzcHJpYSIpDQoNCmBgYA0KDQpBcyBwcm9qZcOnw7VlcyBkYSBkw612aWRhIGRvIGdvdmVybm8gZ2VyYWwgYnJhc2lsZWlybyBldmlkZW5jaWFtIG7Do28gYXBlbmFzIGEgdHJhamV0w7NyaWEgZWxldmFkYSBkbyBlbmRpdmlkYW1lbnRvLCBtYXMgdGFtYsOpbSBjb21vIGRpZmVyZW7Dp2FzIG1ldG9kb2zDs2dpY2FzIGFsdGVyYW0gZGUgZm9ybWEgc2lnbmlmaWNhdGl2YSBhIHBlcmNlcMOnw6NvIGRlIHJpc2NvLiBQYXJhIDIwMjUsIG8gVGVzb3VybyBOYWNpb25hbCBwcm9qZXRhIGEgREJHRyBlbSA4MywzJSBkbyBQSUIgZSBhIERMR0cgZW0gNzAsMiUsIHZhbG9yZXMgcXVlIHJlZmxldGVtIGEgZXhjbHVzw6NvIGRlIGF0aXZvcyBmaW5hbmNlaXJvcyBlIG9wZXJhw6fDtWVzIGNvbXByb21pc3NhZGFzIG5hIG3DqXRyaWNhIGzDrXF1aWRhLiBKw6EgbyBGTUkgcHJvamV0YSA5MiUgZG8gUElCLCBwYXRhbWFyIHNlbnNpdmVsbWVudGUgbWFpcyBhbHRvLCBwb2lzIGluY2x1aSBlbSBzdWEgY29udGFiaWxpZGFkZSBvcyB0w610dWxvcyBww7pibGljb3MgZW0gY2FydGVpcmEgZG8gQmFuY28gQ2VudHJhbC4gRXNzYSBkaXNjcmVww6JuY2lhIG1ldG9kb2zDs2dpY2EgcmVmb3LDp2EgcXVlLCBlbnF1YW50byBhcyBtw6l0cmljYXMgZG9tw6lzdGljYXMgc3VnZXJlbSB1bSBlbmRpdmlkYW1lbnRvIGVsZXZhZG8gcG9yw6ltIG1hbmVqw6F2ZWwsIGEgbGVpdHVyYSBleHRlcm5hIHRlbmRlIGEgdHJhbnNtaXRpciBtYWlvciB2dWxuZXJhYmlsaWRhZGUgZmlzY2FsLCBpbmZsdWVuY2lhbmRvIHByw6ptaW8gZGUgcmlzY28sIHJhdGluZ3MgZSBjdXN0b3MgZGUgZmluYW5jaWFtZW50by4NCg0KTm9zIGFub3Mgc2VndWludGVzIGF0w6kgMjAzMCwgbyBUZXNvdXJvIHByb2pldGEgY3Jlc2NpbWVudG8gbW9kZXJhZG8gZGEgZMOtdmlkYSwgY29tIHJlbGF0aXZhIGVzdGFiaWxpemHDp8OjbyB0YW50byBkYSBEQkdHIHF1YW50byBkYSBETEdHLCBlbnF1YW50byBvIEZNSSBhbnRlY2lwYSB1bWEgdHJhamV0w7NyaWEgbWFpcyBhZ3Jlc3NpdmEsIGNvbSBhIGTDrXZpZGEgYWxjYW7Dp2FuZG8gMTAwJSBkbyBQSUIgZW0gMjAzMC4gQXDDs3MgZXNzZSBob3Jpem9udGUsIGFwZW5hcyBhcyBlc3RpbWF0aXZhcyBkbyBUZXNvdXJvIGVzdMOjbyBkaXNwb27DrXZlaXMsIG8gcXVlIGFtcGxpYSBhIGluY2VydGV6YSBzb2JyZSBhIGRpbsOibWljYSBkZSBsb25nbyBwcmF6by4gRGUgdG9kbyBtb2RvLCB0b2RhcyBhcyBzw6lyaWVzIGNvbnZlcmdlbSBwYXJhIHVtIGRpYWduw7NzdGljbyBjb211bTogbyBCcmFzaWwgc2VndWlyw6Egb3BlcmFuZG8gZW0gbsOtdmVpcyBlbGV2YWRvcyBkZSBlbmRpdmlkYW1lbnRvLCBleGlnaW5kbyBkaXNjaXBsaW5hIGZpc2NhbCBwYXJhIGV2aXRhciBwcmVzc8O1ZXMgYWRpY2lvbmFpcyBzb2JyZSBqdXJvcyBlIGluZmxhw6fDo28uDQoNCk8gY2Vuw6FyaW8gcHJvamV0YWRvIHBlbG8gVGVzb3VybyBOYWNpb25hbCBzdWdlcmUgdW1hIGVzdGFiaWxpemHDp8OjbyBncmFkdWFsIGRhIGTDrXZpZGEsIHN1c3RlbnRhZGEgcG9yIG1haW9yIGNvbnRyb2xlIGRlIGRlc3Blc2FzIGUgcGVsbyBlZmVpdG8gYW1vcnRlY2Vkb3IgZGEgZXhjbHVzw6NvIGRlIGF0aXZvcyBmaW5hbmNlaXJvcyBuYSBtw6l0cmljYSBsw61xdWlkYS4gQ2FzbyBlc3NlIGNlbsOhcmlvIHNlIGNvbmNyZXRpemUsIG8gcGHDrXMgcG9kZXJpYSBvcGVyYXIgc2VtIGFjZWxlcmHDp8OjbyBhYnJ1cHRhIGRvIGN1c3RvIGRlIGZpbmFuY2lhbWVudG8sIHByZXNlcnZhbmRvIGFsZ3VtIGVzcGHDp28gZGUgbWFub2JyYSBwYXJhIHBvbMOtdGljYXMgcMO6YmxpY2FzLiBKw6EgYSBwcm9qZcOnw6NvIGRvIEZNSSBpbmRpY2EgdW0gZW5kaXZpZGFtZW50byBtYWlzIGVsZXZhZG8gZSBzZW5zw612ZWwgYSBjaG9xdWVzLCB0cmFuc21pdGluZG8gYSBpZGVpYSBkZSBxdWUgYSBzdXN0ZW50YWJpbGlkYWRlIGZpc2NhbCBicmFzaWxlaXJhIGRlcGVuZGUgZGUgY29uZGnDp8O1ZXMgZXh0ZXJuYXMgZmF2b3LDoXZlaXMgZSBkZSBkaXNjaXBsaW5hIGZpc2NhbCBjb250w61udWEuIEVzc2EgZGlmZXJlbsOnYSBtZXRvZG9sw7NnaWNhIHNlIHJlZmxldGUgZGlyZXRhbWVudGUgbmEgcGVyY2Vww6fDo28gZGUgcmlzY28gaW50ZXJuYWNpb25hbCwgdG9ybmFuZG8gYSBhdmFsaWHDp8OjbyBkZSBzb2x2w6puY2lhIG1haXMgcmVzdHJpdGl2YSBkbyBwb250byBkZSB2aXN0YSBkb3MgaW52ZXN0aWRvcmVzIGVzdHJhbmdlaXJvcy4NCg0KVmFsZSBkZXN0YWNhciBxdWUgYSBwcm94aW1pZGFkZSBkbyBwcsOzeGltbyBjYWxlbmTDoXJpbyBlbGVpdG9yYWwgbm8gQnJhc2lsLCBxdWUgb2NvcnJlcsOhIG5vIGZpbmFsIGRlIDIwMjYsIGF1bWVudGEgbyBjZW7DoXJpbyBkZSBpbmNlcnRlemEgZSBwcm9qZcOnw6NvIGRlIGF1bWVudG8gZGEgZMOtdmlkYSBww7pibGljYSBkbyBwYcOtcyBjb25zaWRlcmFuZG8gcXVlLCBwZWxhIHRlb3JpYSBwb2zDrXRpY2EgZSBlY29uw7RtaWNhIGRvICpQb2xpdGljYWwgQnVzc2luZXNzIEN5Y2xlKiwgbyBnb3Zlcm5vIGVtIGV4ZXJjw61jaW8gY29zdHVtYSBkaXNwb3IgZGUgaW5zdHJ1bWVudG9zIGluc3RpdHVjaW9uYWlzICh2aXNpYmlsaWRhZGUsIHJlY3Vyc29zIG9yw6dhbWVudMOhcmlvcywgaW5mbHXDqm5jaWEgc29icmUgcG9sw610aWNhcyBww7pibGljYXMpIHBhcmEgdXRpbGl6YXIgYSBwb2zDrXRpY2EgZmlzY2FsIGNvbSB2aXN0YXMgZWxlaXRvcmFpcy4gRXNzYXMgZGluw6JtaWNhcyBwb2RlbSBjb21wcm9tZXRlciBhIHRyYWpldMOzcmlhIHByb2pldGFkYSBkZSBlc3RhYmlsaXphw6fDo28gZGEgZMOtdmlkYSBzZSBmb3JlbSBpbXBsZW1lbnRhZGFzIG1lZGlkYXMgdGVtcG9yw6FyaWFzIHNlbSBjb250cmFwYXJ0aWRhIGVzdHJ1dHVyYWwsIGVsZXZhbmRvIG8gcmlzY28gZGUgZGV0ZXJpb3Jhw6fDo28gZmlzY2FsIG5vIGN1cnRvIHByYXpvLg0KDQpBIG1hbnV0ZW7Dp8OjbyBkZSBkw612aWRhIGVsZXZhZGEsIGNvbWJpbmFkYSDDoCByaWdpZGV6IGVzdHJ1dHVyYWwgZG9zIGdhc3RvcyBjb3JyZW50ZXMsIG1hbnTDqW0gbyBwYcOtcyBleHBvc3RvIGEgcmlzY29zIGZpc2NhaXMgZSBmaW5hbmNlaXJvcy4gQSByb2xhZ2VtIGRhIGTDrXZpZGEsIGVtIHVtIGFtYmllbnRlIGRlIFNlbGljIGFsdGEgZSBtZXJjYWRvIGRlIHTDrXR1bG9zIHZvbMOhdGlsLCB0ZW5kZSBhIGVuY2FyZWNlciBvIGN1c3RvIGRvIHNlcnZpw6dvIGRhIGTDrXZpZGEsIHNvYnJldHVkbyBub3MgcGFww6lpcyBwcmVmaXhhZG9zIGUgaW5kZXhhZG9zIMOgIGluZmxhw6fDo28uIEFsw6ltIGRpc3NvLCBhIHBlcmNlcMOnw6NvIGludGVybmFjaW9uYWwgY2FwdGFkYSBwZWxvIEZNSSByZWZvcsOnYSBhIHZ1bG5lcmFiaWxpZGFkZSBhIHJldmlzw7VlcyBuZWdhdGl2YXMgZGUgcmF0aW5nIGUgYXVtZW50byBkb3Mgc3ByZWFkcyBzb2JlcmFub3MuIENob3F1ZXMgZXh0ZXJub3Mg4oCUIGNvbW8gdmFsb3JpemHDp8OjbyBjYW1iaWFsLCBhbHRhIGRlIGNvbW1vZGl0aWVzIG91IGluZmxhw6fDo28gZ2xvYmFsIHBlcnNpc3RlbnRlIOKAlCB0YW1iw6ltIHBvZGVtIGFtcGxpZmljYXIgYSBwcmVzc8OjbyBzb2JyZSBqdXJvcyBlIGTDrXZpZGEsIHJlc3RyaW5naW5kbyBhaW5kYSBtYWlzIGEgbWFyZ2VtIGRlIG1hbm9icmEgZmlzY2FsLg0KDQpFbSBzw61udGVzZSwgZW1ib3JhIG8gQnJhc2lsIGRpc3BvbmhhIGRlIGVzcGHDp28gcGFyYSBlc3RhYmlsaXphciBhIHRyYWpldMOzcmlhIGRhIGTDrXZpZGEgbm8gbcOpZGlvIHByYXpvLCBhIGNyZWRpYmlsaWRhZGUgZGEgcG9sw610aWNhIGZpc2NhbCBzZXLDoSBkZWNpc2l2YS4gTyBtb25pdG9yYW1lbnRvIGNvbnTDrW51byBkYSBjb21wb3Npw6fDo28gZGEgZMOtdmlkYSwgZGEgZXZvbHXDp8OjbyBkYXMgcmVjZWl0YXMgZSBkYSByaWdpZGV6IGRvcyBnYXN0b3Mgw6kgZnVuZGFtZW50YWwgcGFyYSByZWR1emlyIHJpc2NvcyBkZSBzb2x2w6puY2lhIGUgZ2FyYW50aXIgbWFpb3IgcmVzaWxpw6puY2lhIGRpYW50ZSBkZSBjaG9xdWVzIGV4dGVybm9zIGUgZG9tw6lzdGljb3MuDQoNCiMjIyMgKipBcMOqbmRpY2UgLSBNw6l0cmljYXMgZGEgRMOtdmlkYSBQw7pibGljYSBCcmFzaWxlaXJhKioNCg0KYGBge3J9DQpsaWJyYXJ5KHJiY2IpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShoaWdoY2hhcnRlcikNCmxpYnJhcnkocHVycnIpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCg0KIyAxLiBTw6lyaWVzIEJDQg0KZGxnZyA8LSBnZXRfc2VyaWVzKDQ1MzYsIHN0YXJ0X2RhdGUgPSAiMjAyMC0wMS0wMSIpICU+JQ0KICByZW5hbWUoZGF0YSA9IGRhdGUsIGRsZ2cgPSBgNDUzNmApICU+JQ0KICBtdXRhdGUodHJpbWVzdHJlID0gcGFzdGUwKHllYXIoZGF0YSksICItUSIsIHF1YXJ0ZXIoZGF0YSkpKSANCg0KZGJnZyA8LSBnZXRfc2VyaWVzKDExNDA4LCBzdGFydF9kYXRlID0gIjIwMjAtMDEtMDEiKSAlPiUNCiAgcmVuYW1lKGRhdGEgPSBkYXRlLCBkYmdnID0gYDExNDA4YCkgJT4lDQogIG11dGF0ZSh0cmltZXN0cmUgPSBwYXN0ZTAoeWVhcihkYXRhKSwgIi1RIiwgcXVhcnRlcihkYXRhKSkpIA0KDQojIEFncmVnYXIgRExHRyB0cmltZXN0cmFsICjDumx0aW1vIG3DqnMgZG8gdHJpbWVzdHJlKQ0KZGxnZ190cmkgPC0gZGxnZyAlPiUNCiAgZ3JvdXBfYnkodHJpbWVzdHJlKSAlPiUNCiAgc2xpY2VfdGFpbChuID0gMSkgJT4lDQogIHVuZ3JvdXAoKQ0KDQojIEZNSSBoaXN0w7NyaWNvICsgcHJvamXDp8OjbyAobGluaGEgY29udMOtbnVhKQ0KZm1pIDwtIHRpYmJsZSgNCiAgZGF0YSA9IHNlcShhcy5EYXRlKCIyMDIwLTEyLTMxIiksIGFzLkRhdGUoIjIwMjUtMTItMzEiKSwgYnkgPSAieWVhciIpLA0KICBmbWkgPSBjKDgwLCA4MiwgODUsIDg3LCA4OCwgOTIpICMgdmFsb3JlcyByZWFpcyBkYSB0YWJlbGENCikNCg0KIyBGdW7Dp8OjbyBwYXJhIGNvbnZlcnRlciBwYXJhIGxpc3RhIGRlIHBhcmVzICh0aW1lc3RhbXAsIHZhbG9yKQ0KdG9fbGlzdCA8LSBmdW5jdGlvbihkZiwgY29sKXsNCiAgbWFwMihhcy5udW1lcmljKGFzLlBPU0lYY3QoZGYkZGF0YSkpICogMTAwMCwgZGZbW2NvbF1dLCB+IGxpc3QoLngsIC55KSkNCn0NCg0KZGxnZ19saXN0IDwtIHRvX2xpc3QoZGxnZ190cmksICJkbGdnIikNCmRiZ2dfbGlzdCA8LSB0b19saXN0KGRiZ2csICJkYmdnIikNCmZtaV9saXN0IDwtIHRvX2xpc3QoZm1pLCAiZm1pIikNCg0KIyAyLiBHcsOhZmljbyBIaWdoY2hhcnRlciBpbnRlcmF0aXZvDQpoaWdoY2hhcnQodHlwZSA9ICJzdG9jayIpIHw+DQogIGhjX2FkZF9zZXJpZXMoZGF0YSA9IGRsZ2dfbGlzdCwgdHlwZSA9ICJsaW5lIiwgbmFtZSA9ICJETEdHICglIGRvIFBJQikiLCBjb2xvciA9ICIjNDZCMUUxIikgfD4NCiAgaGNfYWRkX3NlcmllcyhkYXRhID0gZGJnZ19saXN0LCB0eXBlID0gImxpbmUiLCBuYW1lID0gIkRCR0cgKCUgZG8gUElCKSIsIGNvbG9yID0gIiNGRUI3MTIiKSB8Pg0KICBoY19hZGRfc2VyaWVzKGRhdGEgPSBmbWlfbGlzdCwgdHlwZSA9ICJsaW5lIiwgbmFtZSA9ICJEw612aWRhIHNlZ3VuZG8gRk1JICglIGRvIFBJQikiLCBjb2xvciA9ICIjMDIwMjNDIikgfD4NCiAgaGNfeUF4aXModGl0bGUgPSBsaXN0KHRleHQgPSAiJSBkbyBQSUIiKSkgfD4NCiAgaGNfdGl0bGUodGV4dCA9ICJDb21wYXJhw6fDo28gZGEgRMOtdmlkYSBkbyBHb3Zlcm5vIEdlcmFsIEJyYXNpbGVpcmEiKSB8Pg0KICBoY19zdWJ0aXRsZSh0ZXh0ID0gIkZvbnRlOiBCQ0IvU0dTLCBGTUkgV0VPIGUgVGVzb3VybyBOYWNpb25hbCB8IERMR0cgZSBEQkdHIHRyaW1lc3RyYWlzOyBGTUkgYW51YWwiKSB8Pg0KICBoY19yYW5nZVNlbGVjdG9yKGVuYWJsZWQgPSBUUlVFKSB8Pg0KICBoY19zY3JvbGxiYXIoZW5hYmxlZCA9IFRSVUUpIHw+DQogIGhjX25hdmlnYXRvcihlbmFibGVkID0gVFJVRSkgfD4NCiAgaGNfdG9vbHRpcChzaGFyZWQgPSBUUlVFLCB4RGF0ZUZvcm1hdCA9ICIlYi8lWSIsIHZhbHVlRGVjaW1hbHMgPSAyKSB8Pg0KICBoY19leHBvcnRpbmcoZW5hYmxlZCA9IFRSVUUpIHw+DQogIGhjX2xlZ2VuZChlbmFibGVkID0gVFJVRSwgYWxpZ24gPSAiY2VudGVyIiwgdmVydGljYWxBbGlnbiA9ICJib3R0b20iKSB8Pg0KICBoY19jcmVkaXRzKGVuYWJsZWQgPSBUUlVFLCB0ZXh0ID0gIkZvbnRlOiBCQ0IgZSBGTUkgfCBHcsOhZmljbzogRWxhYm9yYcOnw6NvIFByw7NwcmlhIikNCiAgDQoNCmBgYA0KDQpBIGNvbXBhcmHDp8OjbyBlbnRyZSBhIETDrXZpZGEgTMOtcXVpZGEgZG8gR292ZXJubyBHZXJhbCAoRExHRyksIGEgRMOtdmlkYSBCcnV0YSBkbyBHb3Zlcm5vIEdlcmFsIChEQkdHKSBlIGEgbcOpdHJpY2EgZGUgZMOtdmlkYSBjYWxjdWxhZGEgcGVsbyBGTUkgZXZpZGVuY2lhIGRpZmVyZW7Dp2FzIG1ldG9kb2zDs2dpY2FzIHJlbGV2YW50ZXMsIHF1ZSBpbXBhY3RhbSBhIGludGVycHJldGHDp8OjbyBkYSBzdXN0ZW50YWJpbGlkYWRlIGZpc2NhbC4NCg0KQSBETEdHIHJlcHJlc2VudGEgYSBkaWZlcmVuw6dhIGVudHJlIHBhc3Npdm9zIGUgYXRpdm9zIGZpbmFuY2Vpcm9zIGRvIGdvdmVybm8gZ2VyYWwg4oCUIGVuZ2xvYmFuZG8gVW5pw6NvLCBlc3RhZG9zIGUgbXVuaWPDrXBpb3MsIG1hcyBleGNsdWluZG8gZW1wcmVzYXMgZXN0YXRhaXMgbsOjbyBmaW5hbmNlaXJhcy4gUG9yIGRlc2NvbnRhciBhdGl2b3MgZmluYW5jZWlyb3MsIGNvbW8gb3BlcmHDp8O1ZXMgY29tcHJvbWlzc2FkYXMgbGFzdHJlYWRhcyBlbSB0w610dWxvcyBww7pibGljb3MsIG9mZXJlY2UgdW1hIHZpc8OjbyBtYWlzIHByw7N4aW1hIGRvIGVuZGl2aWRhbWVudG8gZWZldGl2byBkbyBzZXRvciBww7pibGljby4gQXTDqSBqdWxobyBkZSAyMDI1LCBhIERMR0cgZXN0YXZhIGVtIHRvcm5vIGRlIDY1LDglIGRvIFBJQi4NCg0KSsOhIGEgREJHRyBjb250YWJpbGl6YSB0b2RvcyBvcyBwYXNzaXZvcyBkbyBnb3Zlcm5vLCBzZW0gZGVkdXppciBhdGl2b3MgZmluYW5jZWlyb3MuIElzc28gc2lnbmlmaWNhIHF1ZSBvcGVyYcOnw7VlcyBjb21wcm9taXNzYWRhcywgYXBlc2FyIGRlIHNldSBjYXLDoXRlciB0ZW1wb3LDoXJpbywgZW50cmFtIG5vIGPDoWxjdWxvIGNvbW8gZMOtdmlkYSwgZWxldmFuZG8gbyB2YWxvciB0b3RhbC4gRW0ganVsaG8gZGUgMjAyNSwgYSBEQkdHIGF0aW5naXUgNzcsNiUgZG8gUElCLCBwZXJtYW5lY2VuZG8gc2lzdGVtYXRpY2FtZW50ZSBhY2ltYSBkYSBETEdHLg0KDQpQb3IgZmltLCBhIGTDrXZpZGEgZG8gZ292ZXJubyBnZXJhbCBtZWRpZGEgcGVsbyBGTUkgaW5jbHVpLCBhZGljaW9uYWxtZW50ZSwgb3MgdMOtdHVsb3MgcMO6YmxpY29zIGVtIGNhcnRlaXJhIGRvIEJhbmNvIENlbnRyYWwuIEVzc2UgY3JpdMOpcmlvIGxldmEgYSB1bWEgZXN0aW1hdGl2YSBhaW5kYSBtYWlzIGVsZXZhZGEsIHByw7N4aW1hIGEgOTAlIGRvIFBJQiBlbSAyMDI1LiBEaWZlcmVudGVtZW50ZSBkYXMgc8OpcmllcyBkbyBCYW5jbyBDZW50cmFsLCBvcyBkYWRvcyBkbyBGTUkgc8OjbyBkaXZ1bGdhZG9zIGFudWFsbWVudGUsIGUgb3MgdmFsb3JlcyBtYWlzIHJlY2VudGVzIHJlZmxldGVtIHByb2plw6fDtWVzLCBuw6NvIG9ic2VydmHDp8O1ZXMgbWVuc2Fpcy4NCg0KRW0gc8OtbnRlc2UsIGVucXVhbnRvIGEgREJHRyB0ZW5kZSBhIG1vc3RyYXIgdmFsb3JlcyBtYWlzIGFsdG9zIHBvciBuw6NvIGRlc2NvbnRhciBhdGl2b3MgZmluYW5jZWlyb3MsIGEgRExHRyBjYXB0YSBkZSBmb3JtYSBtYWlzIHByZWNpc2EgYSBwb3Npw6fDo28gbMOtcXVpZGEgZG8gc2V0b3IgcMO6YmxpY28sIGUgYSBtw6l0cmljYSBkbyBGTUkgYW1wbGlhIG8gZW5kaXZpZGFtZW50byBhcGFyZW50ZSBhbyBpbmNsdWlyIHTDrXR1bG9zIGVtIHBvc3NlIGRhIGF1dG9yaWRhZGUgbW9uZXTDoXJpYS4gRXNzYXMgZGlmZXJlbsOnYXMgbWV0b2RvbMOzZ2ljYXMgYWp1ZGFtIGEgZXhwbGljYXIgcG9yIHF1ZSBhIHBlcmNlcMOnw6NvIGRlIHJpc2NvIGRvIEJyYXNpbCBwb2RlIHZhcmlhciBlbnRyZSBpbnZlc3RpZG9yZXMgZG9tw6lzdGljb3MgZSBpbnRlcm5hY2lvbmFpcywgcmVmb3LDp2FuZG8gYSBpbXBvcnTDom5jaWEgZGUgY29tcHJlZW5kZXIgbyB1bml2ZXJzbyBjb250w6FiaWwgZSBvcyBhdGl2b3MgY29uc2lkZXJhZG9zIGVtIGNhZGEgaW5kaWNhZG9yLg0KDQojIyBDb25jbHVzw6NvDQoNCk8gY2Vuw6FyaW8gZmlzY2FsIGUgZWNvbsO0bWljbyBicmFzaWxlaXJvIGVtIDIwMjUgZXZpZGVuY2lhIGRlc2FmaW9zIGNvbXBsZXhvcyBkZSBjb25jaWxpYcOnw6NvIGVudHJlIGNyZXNjaW1lbnRvIGVjb27DtG1pY28sIGNvbnRyb2xlIGRhIGluZmxhw6fDo28gZSBzdXN0ZW50YWJpbGlkYWRlIGRhcyBjb250YXMgcMO6YmxpY2FzLiBBIHBvbMOtdGljYSBtb25ldMOhcmlhIHBlcm1hbmVjZSBjb250cmFjaW9uaXN0YSBwYXJhIGFuY29yYXIgZXhwZWN0YXRpdmFzIGluZmxhY2lvbsOhcmlhcywgZW5xdWFudG8gbyBub3ZvIGFyY2Fib3XDp28gZmlzY2FsIGUgYXMgbWVkaWRhcyBkZSBjb250ZW7Dp8OjbyBkZSBnYXN0b3MgYnVzY2FtIGdhcmFudGlyIGRpc2NpcGxpbmEgb3LDp2FtZW50w6FyaWEuDQoNCkEgZXZvbHXDp8OjbyBkbyBQSUIgaW5kaWNhIGNyZXNjaW1lbnRvIG1vZGVyYWRvLCBlIGEgYW7DoWxpc2UgZGEgZMOtdmlkYSBww7pibGljYSBtb3N0cmEgbsOtdmVpcyBlbGV2YWRvcywgcXVlIGV4aWdlbSBhdGVuw6fDo28gY29udMOtbnVhIMOgIGV4ZWN1w6fDo28gZmlzY2FsIGUgw6AgY29vcmRlbmHDp8OjbyBlbnRyZSBwb2zDrXRpY2FzIGVjb27DtG1pY2EgZSBmaXNjYWwuIEVtYm9yYSBoYWphIHNpbmFpcyBkZSBlc3RhYmlsaWRhZGUsIGZhdG9yZXMgY29uanVudHVyYWlzIGUgaW5jZXJ0ZXphcyBwb2zDrXRpY2FzIHJlZm9yw6dhbSBhIG5lY2Vzc2lkYWRlIGRlIG1vbml0b3JhbWVudG8gY29uc3RhbnRlIGUgZGUgZXN0cmF0w6lnaWFzIGRlIGxvbmdvIHByYXpvIHBhcmEgcHJlc2VydmFyIGEgc29sdsOqbmNpYSwgYSBjcmVkaWJpbGlkYWRlIGZpc2NhbCBlIG8gZXF1aWzDrWJyaW8gbWFjcm9lY29uw7RtaWNvLg0KDQpFbSBzdW1hLCBhIHN1c3RlbnRhYmlsaWRhZGUgZmlzY2FsIGJyYXNpbGVpcmEgZGVwZW5kZSBkZSBkZWNpc8O1ZXMgY29uc2lzdGVudGVzIGUgY29vcmRlbmFkYXMsIGNhcGF6ZXMgZGUgZXF1aWxpYnJhciByZXN0cmnDp8O1ZXMgb3LDp2FtZW50w6FyaWFzLCBlc3TDrW11bG9zIMOgIGF0aXZpZGFkZSBlY29uw7RtaWNhIGUgbWFudXRlbsOnw6NvIGRhIGNvbmZpYW7Dp2EgZGUgaW52ZXN0aWRvcmVzIGUgZGEgc29jaWVkYWRlLg0KDQojIyBSZWZlcsOqbmNpYXMNCg0KLSAgIEJBTkNPIENFTlRSQUwgRE8gQlJBU0lMLiAqTG9jYWxpemFyIHPDqXJpZXMgZG8gU0dTKi4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3d3dzMuYmNiLmdvdi5ici9zZ3NwdWIvbG9jYWxpemFyc2VyaWVzL2xvY2FsaXphclNlcmllcy5kbz9tZXRob2Q9cHJlcGFyYXJUZWxhTG9jYWxpemFyU2VyaWVzPiBBY2Vzc28gZW06IDIyIGRlIHNldGVtYnJvIGRlIDIwMjUuDQoNCi0gICBBR8OKTkNJQSBCUkFTSUwuICpDb20gcHJlY2F0w7NyaW9zLCBkw6lmaWNpdCBwcmltw6FyaW8gc2FsdGEgcGFyYSBSXCQgNTksMTIgYmlsaMO1ZXMgZW0ganVsaG8qLiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vYWdlbmNpYWJyYXNpbC5lYmMuY29tLmJyL2Vjb25vbWlhL25vdGljaWEvMjAyNS0wOC9jb20tcHJlY2F0b3Jpb3MtZGVmaWNpdC1wcmltYXJpby1zYWx0YS1wYXJhLXItNTkxMi1iaWxob2VzLWVtLWp1bGhvP3V0bV9zb3VyY2U9Y2hhdGdwdC5jb20+IEFjZXNzbyBlbTogMjIgc2V0LiAyMDI1Lg0KDQotICAgQUfDik5DSUEgQlJBU0lMLiAqRW0gMTIgbWVzZXMsIGVjb25vbWlhIGJyYXNpbGVpcmEgdGVtIHNleHRvIG1haW9yIGNyZXNjaW1lbnRvIGRvIEcyMCouIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly9hZ2VuY2lhYnJhc2lsLmViYy5jb20uYnIvZWNvbm9taWEvbm90aWNpYS8yMDI1LTA5L2VtLTEyLW1lc2VzLWVjb25vbWlhLWJyYXNpbGVpcmEtdGVtLXNleHRvLW1haW9yLWNyZXNjaW1lbnRvLWRvLWcyMCM+IEFjZXNzbyBlbTogMjIgZGUgc2V0ZW1icm8gZGUgMjAyNS4NCg0KLSAgIElOU1RJVFVUTyBCUkFTSUxFSVJPIERFIEdFT0dSQUZJQSBFIEVTVEFUw41TVElDQSDigJMgSUJHRS4gKlBJQiB2YXJpYSAwLDQlIG5vIHNlZ3VuZG8gdHJpbWVzdHJlIGRlIDIwMjUqLiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vYWdlbmNpYWRlbm90aWNpYXMuaWJnZS5nb3YuYnIvYWdlbmNpYS1zYWxhLWRlLWltcHJlbnNhLzIwMTMtYWdlbmNpYS1kZS1ub3RpY2lhcy9yZWxlYXNlcy80NDMyOS1waWItdmFyaWEtMC00LW5vLXNlZ3VuZG8tdHJpbWVzdHJlLWRlLTIwMjU+IEFjZXNzbyBlbTogMjIgZGUgc2V0ZW1icm8gZGUgMjAyNS4NCg0KLSAgIElOU1RJVFVUTyBERSBQRVNRVUlTQVMgRUNPTsOUTUlDQVMgQVBMSUNBREFTIOKAkyBJUEVBLiAqR292ZXJubyBmZWRlcmFsIHJlZ2lzdHJhIGTDqWZpY2l0IGRlIFJcJCAxOSw3IGJpbGjDtWVzIGVtIGFnb3N0byouIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly93d3cuaXBlYS5nb3YuYnIvcG9ydGFsL2NhdGVnb3JpYXMvNDUtdG9kYXMtYXMtbm90aWNpYXMvbm90aWNpYXMvMTYwMTgtZ292ZXJuby1mZWRlcmFsLXJlZ2lzdHJhLWRlZmljaXQtZGUtci0xOS03LWJpbGhvZXMtZW0+IEFjZXNzbyBlbTogMjIgZGUgc2V0ZW1icm8gZGUgMjAyNS4NCg0KLSAgIElOU1RJVFVUTyBCUkFTSUxFSVJPIERFIEdFT0dSQUZJQSBFIEVTVEFUw41TVElDQSDigJMgSUJHRS4gKkNvbnRhcyBOYWNpb25haXMgVHJpbWVzdHJhaXMqLiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vd3d3LmliZ2UuZ292LmJyL2VzdGF0aXN0aWNhcy9lY29ub21pY2FzL2NvbnRhcy1uYWNpb25haXMvOTMwMC1jb250YXMtbmFjaW9uYWlzLXRyaW1lc3RyYWlzLmh0bWw/PSZ0PWRvd25sb2FkcyZ1dG1fc291cmNlPWxhbmRpbmcmdXRtX21lZGl1bT1leHBsaWNhJnV0bV9jYW1wYWlnbj1waWIjZXZvbHVjYW8tdGF4YT4gQWNlc3NvIGVtOiAyMiBkZSBzZXRlbWJybyBkZSAyMDI1Lg0KDQotICAgVEVTT1VSTyBOQUNJT05BTC4gKlJlbGF0w7NyaW8gZGUgUHJvamXDp8O1ZXMgZGEgRMOtdmlkYSBkbyBHb3Zlcm5vIEdlcmFsIOKAkyBSUEYganVsaG8gMjAyNSouIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly9jZG4udGVzb3Vyby5nb3YuYnIvc2lzdGVtYXMtaW50ZXJub3MvYXBleC9wcm9kdWNhby9zaXN0ZW1hcy90aG90L2FycXVpdm9zL3B1YmxpY2Fjb2VzLzUyNTI3XzE3Mjg5OTgvUlBGLWp1bDI1LnBkZj91dG1fc291cmNlPWNoYXRncHQuY29tPiBBY2Vzc28gZW06IDIyIGRlIHNldGVtYnJvIGRlIDIwMjUuDQoNCi0gICBJTlRFUk5BVElPTkFMIE1PTkVUQVJZIEZVTkQg4oCTIElNRi4gKldvcmxkIEVjb25vbWljIE91dGxvb2sgRGF0YWJhc2Ug4oCTIEJyYXppbCouIERpc3BvbsOtdmVsIGVtOiBbaHR0cHM6Ly93d3cuaW1mLm9yZy9leHRlcm5hbC9kYXRhbWFwcGVyL0dHWFdER19OR0RQXFxcXFxcXEBXRU8vQlJBXShodHRwczovL3d3dy5pbWYub3JnL2V4dGVybmFsL2RhdGFtYXBwZXIvR0dYV0RHX05HRFBcXFxAV0VPL0JSQSl7LnVyaX0gQWNlc3NvIGVtOiAyMiBkZSBzZXRlbWJybyBkZSAyMDI1Lg0KDQotICAgQmxhbmNoYXJkLCBPbGl2aWVyLCBNYWNyb2Vjb25vbWlhDQo=