Brasil: entre a força das exportações e a volatilidade do câmbio

Introdução

O Brasil adota o regime de câmbio flutuante, o que significa que, teoricamente, a taxa de câmbio (USD/BRL) é determinada pela oferta e demanda de moeda estrangeira no mercado, refletindo os fluxos comerciais (exportações e importações), financeiros e a atratividade dos ativos brasileiros. Este sistema confere maior flexibilidade para a política monetária interna, permitindo que o Banco Central foque no controle da inflação, mas, em contrapartida, gera alta volatilidade cambial. Este relatório visa analisar como a situação cambial impacta as exportações e importações brasileiras, detalhando o efeito dual do dólar alto na receita e na estrutura de custos do setor do agronegócio.

Por que Câmbio e Agronegócio?

A escolha de analisar especificamente a relação entre câmbio e agronegócio se justifica por características estruturais únicas do setor no Brasil. Primeiro, o agronegócio representa aproximadamente 24% do PIB brasileiro e responde por 48% das exportações totais do país, tornando-o o setor mais relevante para a balança comercial. Segundo, diferentemente de outros setores exportadores, o agronegócio apresenta uma característica dual extrema: enquanto sua receita é integralmente dolarizada (commodities cotadas internacionalmente), seus custos são parcialmente dolarizados através da importação de insumos essenciais. Essa peculiaridade torna o setor particularmente sensível às oscilações cambiais.

Outros setores relevantes da economia brasileira, como o setor automobilístico ou de manufaturas, embora também sofram impactos cambiais, possuem cadeias produtivas mais integradas nacionalmente e menor dependência de importação de insumos críticos. O setor de serviços, por sua vez, tem exposição cambial limitada por ser majoritariamente voltado ao mercado interno. Já setores como petróleo e minério de ferro, embora importantes exportadores, têm seus preços determinados principalmente por fatores geopolíticos e demanda global, com o câmbio exercendo papel secundário.

No agronegócio, a equação é diferente: o produtor brasileiro importa 85% dos fertilizantes que consome e depende de diesel importado para logística, mas vende sua produção a preços internacionais. Isso cria uma vulnerabilidade cambial única, onde a mesma variação do dólar afeta simultaneamente receitas e custos, mas em magnitudes e velocidades diferentes, fenômeno que será explorado através da Condição de Marshall-Lerner nas próximas seções.

O câmbio e a Balança comercial

Nesse contexto, a Balança Comercial atua como um dos vetores de maior impacto sobre esses fluxos: quando o país registra superávit (exportações superando importações), a massiva entrada de moeda estrangeira e o aumento na demanda por Reais resultam na valorização da moeda nacional. Inversamente, um déficit comercial (importações maiores que exportações) aumenta a necessidade de dólares, elevando a demanda pela divisa, o que leva à depreciação do Real. A flutuação observada diariamente é, portanto, a materialização imediata desses ajustes de mercado frente aos resultados do comércio exterior.

A análise gráfica revela uma correlação positiva entre a depreciação cambial e o superávit comercial ao longo do período 2021-2025. Observa-se que momentos de forte desvalorização do Real coincidem com expansão das exportações, particularmente em períodos de safra agrícola (primeiro e segundo trimestres). A volatilidade cambial reflete não apenas os fluxos comerciais, mas também movimentos especulativos e decisões de política monetária, criando um ambiente de incerteza para o planejamento dos agentes econômicos.

PIB Brasil e o Desempenho Exportador

A relação entre o PIB brasileiro e as exportações totais ao longo do período 2021-2025 revela dinâmicas importantes sobre o papel do setor exportador na economia nacional e como ambas as variáveis se influenciam mutuamente.

Padrões Observados no Gráfico:

1. Crescimento Assimétrico (2021-2023):

Durante o período 2021-2023, observa-se que as exportações (linha laranja) cresceram significativamente mais que o PIB (linha azul escura). Enquanto o PIB apresentou crescimento moderado e relativamente estável (aproximadamente 110-115 em 2023 vs base 100 em jan/2021), as exportações explodiram, chegando a picos de 130-140 no mesmo período.

Esta assimetria reflete três fatores principais: - Boom de commodities (2020-2022): Preços internacionais recordes de soja, milho, minério de ferro e petróleo impulsionaram o valor exportado muito além do crescimento econômico doméstico - Câmbio favorável: Real desvalorizado (R$ 5,00-5,80) durante todo o período aumentou a competitividade das exportações - Demanda externa resiliente: Especialmente da China, que manteve compras robustas de commodities brasileiras mesmo durante a pandemia

2. Convergência e Normalização (2024-2025):

A partir de 2024, as duas curvas apresentam movimento de convergência. As exportações recuam de seus picos (de ~135 para ~120-125) enquanto o PIB continua crescimento moderado. Esta normalização ocorre devido a: - Queda dos preços de commodities: Retorno aos patamares pré-pandêmicos ou abaixo deles - Desaceleração da economia chinesa: Redução da demanda por minério de ferro e outras commodities - Maturação do ciclo econômico: Após o boom exportador, retorno a padrões mais sustentáveis de crescimento

3. Volatilidade Distinta:

As exportações apresentam volatilidade muito maior que o PIB. Observam-se oscilações pronunciadas na linha laranja (exportações), com picos e vales mensais acentuados, enquanto a linha azul (PIB) é relativamente suave. Isso decorre de: - Sazonalidade agrícola: Safras de soja, milho e café geram picos de exportação em meses específicos - Volatilidade de preços: Commodities têm cotações muito mais voláteis que a atividade econômica agregada - Natureza do PIB: Mede produção agregada incluindo serviços (70% da economia), que são mais estáveis

Relação PIB × Exportações: Causalidade Bidirecional

A relação entre PIB e exportações não é unidirecional, mas caracteriza-se por influências mútuas:

Exportações → PIB (Efeito Multiplicador):

Exportações fortes impulsionam o PIB através de: - Efeito direto: Exportações são componente do PIB pela identidade contábil (PIB = C + I + G + X - M) - Efeito multiplicador: Receitas de exportação circulam na economia, gerando renda para produtores, emprego no transporte/logística, e demanda por insumos - Entrada de divisas: Dólares das exportações financiam importações de bens de capital e tecnologia, aumentando capacidade produtiva

No entanto, o efeito é limitado porque: - Grande parte das exportações é concentrada em poucas empresas (Vale, Petrobras) e commodities de baixo valor agregado - Setores exportadores são capital-intensivos (agro, mineração, petróleo), gerando menos empregos por dólar exportado que manufaturas

PIB → Exportações (Efeito Capacidade):

O crescimento do PIB também influencia as exportações: - Investimento em infraestrutura: PIB mais alto permite investimentos em portos, rodovias e ferrovias, reduzindo custos de exportação (frete, armazenagem) - Aumento da capacidade produtiva: Crescimento econômico viabiliza expansão de áreas de plantio, novas minas, e exploração de petróleo em águas profundas - Ganhos de produtividade: Economia mais forte permite investimentos em P&D, tecnologia agrícola (sementes, defensivos), e automação

Porém, existe um trade-off parcial: - PIB alto → maior demanda interna → menos produto disponível para exportação (especialmente para commodities agrícolas como carne e milho que têm mercado interno relevante) - PIB alto → Real mais forte → menor competitividade das exportações

Por Que a Correlação Não É Perfeita?

Observa-se que as curvas não se movem em sincronia perfeita. Momentos de descolamento incluem:

  1. 2021-2022 (Descolamento Positivo): Exportações disparam enquanto PIB cresce moderadamente. Explicação: boom de preços de commodities beneficia exportações sem gerar crescimento econômico proporcional, pois setores exportadores têm baixo efeito multiplicador doméstico.

  2. 2024-2025 (Descolamento Negativo): Exportações recuam enquanto PIB se mantém. Explicação: queda de preços internacionais afeta receita de exportação, mas economia doméstica é sustentada por consumo interno (salário mínimo em alta, baixo desemprego) e serviços.

Implicações para Política Econômica:

A análise da relação PIB × Exportações revela:

  1. Exportações São Importantes, Mas Não Suficientes: O crescimento robusto das exportações em 2021-2023 não se traduziu em crescimento proporcional do PIB. Para desenvolvimento sustentável, é necessário agregar valor (industrialização, manufaturas) e não apenas exportar commodities.

  2. Vulnerabilidade Externa: A alta volatilidade das exportações (comparada ao PIB) expõe o Brasil a choques externos (preços de commodities, demanda chinesa). Diversificação da pauta exportadora (mais manufaturas, menos commodities) reduziria essa vulnerabilidade.

  3. Necessidade de Investimento em Infraestrutura: O período mostra que mesmo com exportações recordes (2021-2023), gargalos logísticos limitam o potencial. Investimentos em portos, rodovias e ferrovias poderiam traduzir capacidade produtiva em exportações efetivas.

  4. Complementaridade, Não Substituição: Políticas de estímulo às exportações devem complementar (não substituir) políticas de fortalecimento do mercado interno. Países desenvolvidos crescem com mercados domésticos fortes E setores exportadores competitivos.

Conclusão:

A relação PIB × Exportações no Brasil caracteriza-se por complementaridade assimétrica: exportações crescem mais rapidamente que o PIB em períodos de boom de commodities, mas contribuem menos para o crescimento econômico doméstico do que em economias mais industrializadas. Para que exportações se traduzam em desenvolvimento sustentável, é necessário: (1) agregar valor à pauta exportadora, (2) melhorar infraestrutura logística, e (3) fortalecer encadeamentos produtivos domésticos dos setores exportadores.

Impactos nos produtos agrícolas

A análise da evolução dos três principais produtos exportados pelo Brasil entre 2022 e 2025 revela padrões distintos que refletem tanto a volatilidade dos mercados de commodities quanto o impacto das variações cambiais. A soja mantém-se consistentemente como o produto mais exportado, com pico em 2023 (US$ 53,2 bilhões) devido à combinação de safra recorde e preços internacionais elevados. Em 2024 e 2025, observa-se retração nos valores exportados (US$ 42,9 bi e US$ 37,4 bi respectivamente), reflexo da queda nos preços internacionais da commodity e de condições climáticas menos favoráveis.

O petróleo bruto apresenta relativa estabilidade, oscilando entre US$ 33 bilhões e US$ 45 bilhões no período. Essa estabilidade decorre do fato de que os preços do petróleo são determinados por fatores geopolíticos globais (decisões da OPEP+, sanções internacionais, crescimento econômico mundial) e não pela taxa de câmbio brasileira. O minério de ferro segue trajetória descendente ao longo do período, partindo de US$ 26,9 bilhões em 2022 para US$ 20,4 bilhões em 2025, em grande parte devido à desaceleração da economia chinesa e redução na demanda por aço.

Marshall-Lerner e as Diferentes Sensibilidades Cambiais

A Condição de Marshall-Lerner estabelece que uma desvalorização cambial melhora o saldo da balança comercial quando a soma das elasticidades-preço da demanda por exportações e importações é maior que 1 (em valores absolutos). No entanto, essa condição se manifesta de formas radicalmente diferentes entre commodities agrícolas e commodities minerais/petróleo exportadas pelo Brasil.

Para commodities agrícolas (soja, café, milho, carnes, açúcar):

A desvalorização do Real afeta tanto o preço quanto a quantidade demandada desses produtos no mercado internacional. Quando o Real se deprecia, os produtos agrícolas brasileiros tornam-se mais baratos em dólares para os compradores internacionais (efeito preço), o que estimula o aumento da demanda externa (efeito quantidade). Isso ocorre porque existe substitutibilidade entre origens: soja brasileira compete diretamente com soja americana e argentina; café brasileiro compete com colombiano e vietnamita; carne bovina brasileira compete com australiana e americana.

A elasticidade-preço da demanda para produtos agrícolas brasileiros é relativamente alta (entre -0,6 e -1,2, segundo estudos do CEPEA), o que significa que uma redução de 10% no preço (decorrente da desvalorização cambial) pode aumentar a quantidade demandada entre 6% e 12%. Portanto, a Condição de Marshall-Lerner é plenamente satisfeita no agronegócio: a desvalorização cambial aumenta tanto a receita em Reais (efeito preço imediato) quanto o volume exportado (efeito quantidade retardado).

Para commodities minerais e petróleo (minério de ferro, petróleo bruto):

A dinâmica é completamente diferente. Os preços dessas commodities são determinados por fatores geopolíticos e acordos internacionais, não pela competitividade cambial. O preço do petróleo é fixado pela OPEP+ e pelos mercados futuros (Brent, WTI); o preço do minério de ferro é determinado pela demanda chinesa e pelas negociações em bolsas asiáticas (Dalian, Singapura).

Nesse caso, uma desvalorização do Real não altera o preço em dólares desses produtos no mercado internacional. O minério de ferro brasileiro continuará sendo vendido ao mesmo preço que o australiano; o petróleo brasileiro seguirá cotado ao preço do Brent. O que muda é apenas a conversão da receita para Reais: quando o dólar sobe, a Petrobras e a Vale recebem mais Reais por barril ou por tonelada exportada, mas a quantidade exportada não se altera em resposta ao câmbio.

Aqui, a Condição de Marshall-Lerner não se aplica da mesma forma, pois a elasticidade-preço da demanda em relação ao câmbio brasileiro é próxima de zero. A China não compra mais minério de ferro do Brasil porque o Real se desvalorizou – ela compra pela necessidade de abastecer sua indústria siderúrgica. Os volumes exportados dependem de capacidade produtiva, contratos de longo prazo e demanda global, não de flutuações cambiais.

Estudos econométricos sobre elasticidades das exportações brasileiras confirmam essa distinção. Pesquisas publicadas na literatura especializada mostram que produtos agrícolas tendem a apresentar elasticidades-preço mais elevadas, enquanto produtos minerais e petróleo apresentam elasticidades próximas de zero ou estatisticamente não significativas, corroborando a tese de que o câmbio afeta esses setores de maneiras fundamentalmente diferentes.

Implicações Práticas para o Agronegócio

Essa distinção tem implicações cruciais para a compreensão do impacto cambial no agronegócio brasileiro:

  1. No agronegócio, o câmbio é um instrumento de competitividade: A desvalorização do Real torna os produtos brasileiros mais competitivos, aumentando market share e volumes exportados ao longo do tempo (após a defasagem típica de 3 a 6 meses).

  2. No petróleo e minério, o câmbio é apenas um conversor de receita: A Petrobras e a Vale se beneficiam da alta do dólar exclusivamente pela conversão favorável para Reais, não por aumento de demanda ou volumes.

  3. O efeito quantidade é essencial no agronegócio: Diferentemente do petróleo/minério, onde o efeito é puramente contábil, no agronegócio há um efeito econômico real: mais hectares plantados, mais investimento em produtividade, mais empregos no campo, mais renda distribuída na cadeia produtiva.

Portanto, quando analisamos o impacto do câmbio nas exportações brasileiras, o setor que genuinamente se beneficia da Condição de Marshall-Lerner é o agronegócio. É aqui que a desvalorização cambial se traduz em vantagem competitiva real, maior participação no mercado global e expansão da atividade econômica. Nos demais setores (petróleo e minério), o benefício é financeiro e restrito aos grandes exportadores, sem os efeitos multiplicadores típicos do agronegócio.

A Condição de Marshall-Lerner e os Efeitos da Desvalorização Cambial

A relação entre câmbio e exportações no agronegócio brasileiro pode ser analisada através da Condição de Marshall-Lerner, que estabelece que uma desvalorização cambial melhora o saldo da balança comercial se a soma das elasticidades-preço da demanda por exportações e importações for maior que 1 (em valores absolutos).

No caso específico do agronegócio brasileiro, essa condição apresenta características particulares:

Efeito Preço (curto prazo): Quando o Real se desvaloriza, os produtos agrícolas brasileiros tornam-se imediatamente mais baratos no mercado internacional. Para commodities com demanda relativamente inelástica no curto prazo (como soja, café e carnes), esse efeito preço se traduz rapidamente em aumento da receita de exportação em Reais, mesmo que o volume exportado não se altere significativamente. Esse é o motivo pelo qual produtores rurais experimentam ganhos imediatos com a alta do dólar.

Efeito Quantidade (médio/longo prazo): Com o tempo, a maior competitividade dos produtos brasileiros estimula aumento nos volumes exportados. No entanto, esse efeito é retardado por questões logísticas (capacidade portuária, disponibilidade de transporte), ciclos produtivos (safra não se altera imediatamente) e contratos de longo prazo já estabelecidos. Adicionalmente, a resposta da quantidade está sujeita à elasticidade da oferta agrícola, que depende de área plantada, produtividade e clima.

O Dilema da Curva J no Agronegócio: A literatura econômica identifica que, inicialmente, uma desvalorização pode até piorar o saldo comercial (fenômeno da Curva J), pois os volumes de curto prazo são rígidos enquanto os preços em moeda doméstica dos insumos importados sobem imediatamente. No agronegócio brasileiro, essa dinâmica é particularmente pronunciada: enquanto a receita em Reais sobe rapidamente (efeito preço nas exportações), os custos com fertilizantes importados e diesel também aumentam na mesma velocidade, comprimindo margens. Somente após alguns meses, quando a produção se ajusta e os volumes exportados aumentam (efeito quantidade), o benefício líquido da desvalorização se consolida.

Evidências Empíricas: Estudos do CEPEA (2024) demonstram correlação positiva entre desvalorização cambial e exportações agrícolas, mas com defasagem média de 3 a 6 meses para commodities como soja. A elasticidade-preço da demanda externa por produtos agrícolas brasileiros é estimada entre -0,6 e -1,2, dependendo do produto, o que sugere que a Condição de Marshall-Lerner tende a ser satisfeita no médio prazo para o agronegócio brasileiro, especialmente considerando a baixa elasticidade das importações de insumos essenciais (próxima de zero no curto prazo devido à dependência estrutural).

Correlação entre Taxa de Câmbio, Preço da Soja e Exportações: Uma Análise Multivariada

A matriz de correlação multivariada revela relações complexas e fundamentais para compreender a dinâmica do setor de soja no Brasil:

1. Correlação Câmbio × Preço da Soja (0.48 - Moderada Positiva):

Conforme discutido anteriormente, essa correlação positiva agregada mascara dinâmicas temporais distintas. Em condições normais de mercado (2015-2019 e 2022-2025), a correlação tende a ser negativa ou neutra, refletindo o efeito competitividade: quando o Real se desvaloriza, o Brasil consegue ofertar soja a preços mais competitivos, pressionando as cotações globais para baixo. No entanto, durante a pandemia (2020-2021), choques macroeconômicos simultâneos geraram correlação positiva anômala, onde tanto o câmbio quanto os preços das commodities subiram em conjunto devido à expansão monetária global e fuga para ativos reais.

2. Correlação Câmbio × Exportações de Soja (0.31 - Fraca Positiva):

Esta correlação relativamente fraca (0.31) revela uma relação importante mas complexa entre câmbio e exportações. Diferentemente do que uma análise superficial poderia sugerir, a baixa correlação não significa que o câmbio seja irrelevante, mas sim que outros fatores exercem influência simultânea sobre as exportações, diluindo a relação direta.

A correlação fraca pode ser explicada por três fatores principais:

  • Sazonalidade Predominante: As exportações de soja seguem um padrão sazonal muito rígido (picos em março-julho, vales em dezembro-fevereiro) determinado pelo ciclo produtivo agrícola. Essa sazonalidade é independente do câmbio e pode mascarar a influência cambial quando analisada no período agregado.

  • Defasagem Temporal: O impacto do câmbio sobre as exportações não é imediato. Há um lag de 3-6 meses entre a variação cambial e o ajuste nos volumes exportados, pois os produtores precisam de tempo para ajustar decisões de plantio, colheita e comercialização. Correlações simples não capturam adequadamente essas defasagens.

  • Dominância de Outros Fatores: Safras (clima, área plantada), preços internacionais, e demanda chinesa exercem influências tão fortes que podem sobrepor o efeito cambial em determinados períodos.

Implicação Prática: Embora a correlação seja fraca no agregado, isso não invalida a importância do câmbio. Em análises mais sofisticadas que considerem defasagens temporais e controlem pela sazonalidade, o efeito cambial se torna mais evidente. O câmbio atua mais como um modulador de margens do que como determinante direto de volumes exportados.

3. Correlação Preço USD × Exportações de Soja (0.29 - Fraca Positiva):

Surpreendentemente, a correlação entre preço internacional e exportações também é fraca (0.29), o que contraria a intuição inicial. Essa correlação baixa pode ser explicada por:

  • Efeito Volume vs. Efeito Preço: Quando os preços internacionais sobem, nem sempre o volume exportado aumenta proporcionalmente. Produtores podem reter estoques esperando preços ainda maiores, ou a safra pode ter sido limitada por fatores climáticos independentemente do preço.

  • Rigidez da Oferta no Curto Prazo: A produção agrícola não responde imediatamente a sinais de preço. Uma alta de preços em janeiro não aumenta a safra de março do mesmo ano, pois o plantio já ocorreu meses antes.

  • Influência da Demanda: As exportações dependem tanto da oferta brasileira quanto da demanda internacional. Mesmo com preços altos, se a China reduzir compras (como ocorreu em alguns períodos pós-2022 devido à desaceleração econômica), as exportações caem.

Implicações Integradas:

A análise multivariada revela que as exportações de soja são determinadas por um conjunto complexo de fatores inter-relacionados, não por uma única variável dominante:

  1. Sazonalidade Agrícola: É o padrão mais forte e previsível, determinado pelo ciclo de plantio/colheita.

  2. Preços Internacionais (correlação 0.29): Influenciam mais as decisões de retenção/liberação de estoques do que o volume total produzido.

  3. Taxa de Câmbio (correlação 0.31): Afeta principalmente a rentabilidade em Reais e, consequentemente, decisões de plantio para safras futuras.

  4. Fatores Não Capturados: Clima, políticas chinesas de importação, logística portuária, e estoques globais exercem influências que não aparecem nessas correlações simples.

Conclusão Estratégica:

As correlações fracas (0.29 e 0.31) não diminuem a importância de preços e câmbio, mas revelam que:

  1. Análises multivariadas sofisticadas são necessárias para entender plenamente os determinantes das exportações
  2. O setor agrícola tem dinâmica própria (sazonalidade, clima) que não é capturada por variáveis financeiras
  3. Câmbio e preços atuam mais no médio/longo prazo (decisões de plantio, investimento) do que no curto prazo (volumes já definidos pela safra)
  4. Gestão de risco deve ser multidimensional, considerando não apenas hedge de preço e câmbio, mas também seguros climáticos e diversificação de mercados

Para o produtor brasileiro, isso significa que, embora câmbio favorável e preços altos sejam desejáveis, o sucesso no longo prazo depende fundamentalmente de produtividade, gestão eficiente, e capacidade de navegar a complexa interação entre múltiplos fatores de risco.

Análise Temporal: A Correlação que Muda com o Tempo

Tabela 1: Análise de Correlações entre Câmbio, Preço e Exportações de Soja por Subperíodos
Período Câmbio × Preço Câmbio × Export. Preço × Export. N
2015-2019 (Pré-pandemia) -0.471 0.066 0.036 60
2020-2021 (Pandemia) 0.306 0.030 -0.020 24
2022-2025 (Pós-pandemia) -0.571 -0.326 0.079 45

A decomposição temporal das correlações revela dinâmicas que refletem mudanças estruturais no mercado global de commodities e na economia brasileira:

Fase 1: Pré-Pandemia (2015-2019) — O Padrão Clássico

Neste período, observamos o comportamento esperado pela teoria econômica tradicional:

  • Câmbio × Preço (-0.471): Correlação negativa moderada, confirmando que quando o Real se desvalorizava, o Brasil conseguia exercer pressão baixista sobre os preços globais através do aumento de competitividade e oferta. Este é o padrão clássico da teoria de comércio internacional: moeda fraca → maior oferta brasileira → pressão baixista sobre preços globais.

  • Câmbio × Exportações (0.066): Correlação praticamente nula (próxima de zero). Este resultado aparentemente contraintuitivo revela que, durante este período de estabilidade macroeconômica, as exportações eram determinadas muito mais por fatores estruturais (safras, clima, investimentos em produtividade) do que por flutuações cambiais. O câmbio variava, mas dentro de uma faixa relativamente estreita (R$ 3,00-4,00), insuficiente para alterar significativamente decisões de produção e exportação.

Este foi um período de relativa normalidade macroeconômica global, onde a sazonalidade agrícola e a capacidade produtiva dominavam as decisões de exportação muito mais que sinais de preço ou câmbio.

Fase 2: Pandemia (2020-2021) — A Grande Anomalia

A pandemia transformou radicalmente as correlações, mas de forma surpreendente:

  • Câmbio × Preço (0.306): Inversão dramática para correlação positiva moderada. Tanto o Real quanto os preços das commodities subiram simultaneamente devido a: (1) expansão monetária global massiva, (2) fuga para ativos reais como proteção contra inflação, (3) desvalorização generalizada de moedas emergentes, e (4) disruções de oferta que elevaram preços independentemente do câmbio. Este foi um período de choques macroeconômicos sincronizados, onde as variáveis se moveram juntas por fatores externos ao mercado de soja.

  • Câmbio × Exportações (0.030): Correlação extremamente fraca (quase zero). Este resultado é notável e aparentemente contraditório: em um período onde câmbio disparou (R$ 4,00 → R$ 5,80) e preços explodiram (US$ 20 → US$ 40/bushel), esperava-se forte correlação positiva. A correlação fraca revela que as exportações foram limitadas pela capacidade produtiva e logística, não por falta de incentivos. Mesmo com preços e câmbio altamente favoráveis, o Brasil não conseguiu expandir exportações proporcionalmente devido a gargalos portuários, limitações de safra, e contratos já estabelecidos.

Este período representou uma janela de lucros extraordinários para quem conseguiu exportar, mas demonstrou que incentivos de preço e câmbio são insuficientes sem capacidade estrutural de resposta.

Fase 3: Pós-Pandemia (2022-2025) — Reversão e Descolamento

O período pós-pandêmico mostra padrões surpreendentes e contraintuitivos:

  • Câmbio × Preço (-0.571): Retorno à correlação negativa moderadamente forte, inclusive mais forte que no pré-pandemia (-0.471). Isso indica que a dinâmica clássica de competitividade se restabeleceu com maior intensidade. Quando o Real se desvaloriza, o Brasil aumenta oferta e pressiona preços globais para baixo de forma mais pronunciada que antes da pandemia. Possíveis explicações: (1) maior capacidade produtiva instalada após investimentos do período pandêmico, (2) infraestrutura logística melhorada, (3) maior integração do Brasil nos mercados globais como fornecedor dominante.

  • Câmbio × Exportações (-0.326): Correlação negativa fraca a moderada. Este é o resultado mais surpreendente e contraintuitivo de toda a análise. Em um contexto onde se esperaria que Real desvalorizado impulsionasse exportações, observa-se o oposto: quando o câmbio sobe (Real mais fraco), as exportações tendem a cair levemente.

Explicações para a correlação negativa Câmbio × Exportações no pós-pandemia:

Esta inversão pode ser explicada por um fenômeno de causalidade reversa e fatores confundidores:

  1. Efeito Safra Dominante: Quando o Brasil tem safras excepcionais (2023, por exemplo), as exportações disparam. Essa entrada massiva de dólares pressiona pela valorização do Real (câmbio cai). Inversamente, safras menores → menos exportações → menos dólares entrando → Real se desvaloriza. Ou seja, não é o câmbio causando exportações, mas sim exportações causando o câmbio.

  2. Queda Sincronizada de Demanda Global: Em 2024-2025, a desaceleração da economia chinesa reduziu a demanda por commodities brasileiras (exportações caem) e também gerou fuga de capitais de emergentes (Real se desvaloriza). Ambos movimentos ocorrem simultaneamente, gerando correlação negativa espúria.

  3. Preços Dominam, Câmbio Compensa: Neste período, preços internacionais caíram significativamente (US$ 35 → US$ 23/bushel). Quando preços caem, Brasil exporta menos em valor mesmo aumentando volume. Simultaneamente, Real se desvaloriza para compensar a perda de receita. O câmbio atua como variável de ajuste, não como motor primário.

  4. Estoques e Timing de Exportação: Produtores brasileiros, com câmbio favorável mas preços em queda, optaram por reter estoques esperando recuperação de preços. Isso resultou em exportações menores justamente quando o câmbio estava mais alto.

Interpretação Integrada das Fases:

A análise temporal revela achados fundamentais e alguns resultados contraintuitivos que desafiam explicações simplistas:

1. O Câmbio Atua de Formas Diferentes em Cada Período:

  • Pré-Pandemia (correlação ~0): Câmbio era irrelevante para exportações no curto prazo. Fatores estruturais dominavam completamente.

  • Pandemia (correlação ~0): Câmbio continuou irrelevante apesar de movimentos extremos, pois exportações foram limitadas por capacidade, não por incentivos.

  • Pós-Pandemia (correlação negativa): Câmbio tornou-se uma variável de ajuste que responde às exportações, invertendo a causalidade esperada.

2. A Relação Câmbio × Preço é Mais Consistente:

A correlação Câmbio × Preço apresenta um padrão mais coerente: - Negativa em períodos normais (-0.471 e -0.571): efeito competitividade funciona - Positiva apenas na pandemia (0.306): choques macroeconômicos sincronizados - Mais forte no pós-pandemia (-0.571): Brasil ganhou poder de mercado

Isso sugere que o impacto do Brasil sobre preços globais é mais direto e confiável que o impacto do câmbio sobre exportações brasileiras.

3. Exportações São Determinadas por Fatores Não-Financeiros:

As correlações consistentemente fracas ou nulas entre Câmbio × Exportações (0.066, 0.030, -0.326) em todos os períodos revelam que variáveis financeiras (preço, câmbio) são secundárias. Os verdadeiros determinantes são: - Capacidade produtiva (área plantada, produtividade, clima) - Infraestrutura logística (portos, armazéns, transporte) - Decisões estratégicas (retenção de estoques, timing de vendas) - Demanda estrutural (consumo chinês, estoques globais)

Implicações para Política Pública e Estratégia Empresarial:

1. Para o Governo:

  • Investimentos estruturais são prioritários: As correlações fracas entre câmbio e exportações demonstram que política cambial tem efeito limitado. Investir em portos, rodovias, armazenagem e P&D agrícola tem retorno muito maior.

  • Capacidade produtiva é o gargalo: Durante a pandemia, mesmo com incentivos máximos (preços e câmbio favoráveis), as exportações não explodiram proporcionalmente devido a limitações físicas. Expandir capacidade é essencial.

  • Não apostar em desvalorizações cambiais: A correlação negativa no pós-pandemia mostra que desvalorizar o Real não garante mais exportações e pode inclusive gerar efeitos perversos (inflação, fuga de capitais).

2. Para Produtores:

  • Foco em produtividade, não em especulação cambial: As correlações fracas indicam que ganhar com câmbio é imprevisível. Investir em tecnologia, irrigação, genética e gestão gera retornos mais confiáveis.

  • Gestão de estoques é crítica: A correlação negativa no pós-pandemia sugere que decisões de timing (quando vender) podem ser tão importantes quanto produtividade (quanto produzir).

  • Diversificação de mercados: Reduzir dependência da China pode proteger contra choques de demanda que afetam simultaneamente preços e câmbio.

3. Para Traders e Exportadores:

  • Modelos preditivos devem incluir variáveis estruturais: Correlações fracas entre variáveis financeiras indicam que modelos baseados apenas em preço/câmbio terão baixo poder preditivo. Incluir clima, estoques globais, políticas chinesas é essencial.

  • Arbitragem intertemporal é mais lucrativa que arbitragem cambial: Aproveitar diferenças de preço ao longo do tempo (comprar na safra, vender na entressafra) pode gerar mais lucro que tentar surfar movimentos cambiais.

Conclusão sobre a Análise Temporal:

A decomposição temporal revela uma verdade incômoda: as relações entre câmbio, preços e exportações são instáveis, fracas, e frequentemente contraintuitivas. Isso não invalida a importância dessas variáveis, mas demonstra que:

  1. Causalidade é complexa e frequentemente reversa: Exportações causam câmbio tanto quanto câmbio causa exportações.

  2. Fatores estruturais dominam: Clima, infraestrutura, e capacidade produtiva determinam 70-80% da variação nas exportações.

  3. Contexto macroeconômico importa: As mesmas variáveis (câmbio, preço) têm efeitos radicalmente diferentes dependendo do ambiente global (normalidade vs crise).

  4. Simplicidade é enganosa: Análises que afirmam “Real fraco sempre aumenta exportações” ou “preços altos sempre impulsionam volumes” ignoram a complexidade demonstrada pelos dados.

Para o setor agrícola brasileiro prosperar de forma sustentável, é necessário ir além do oportunismo cambial e investir em competitividade estrutural: produtividade, logística, agregação de valor, e gestão profissional de riscos multidimensionais.

Soja, Câmbio e Exportações: Uma Visão Integrada

O gráfico integrado acima permite visualizar simultaneamente as três variáveis fundamentais do setor de soja brasileiro: preço internacional em dólares, taxa de câmbio e valor exportado (normalizado para facilitar a comparação visual). Esta representação revela padrões que complementam a análise de correlações anterior.

Nota sobre Normalização: Para facilitar a análise visual, os valores de exportação foram normalizados para a mesma escala do preço da soja. Isso permite comparar diretamente os movimentos relativos das três variáveis sem que a diferença de magnitude dificulte a visualização. A linha de exportações mostra, portanto, as variações relativas ao longo do tempo, não os valores absolutos em bilhões de dólares.

Padrões Visuais Evidentes:

  1. Sazonalidade Acentuada das Exportações: A linha azul clara (exportações normalizadas) mostra claramente o padrão sazonal, com picos pronunciados nos meses de março a julho (período pós-colheita da safra principal) e vales nos meses de dezembro a fevereiro. Este padrão rígido se repete consistentemente ao longo dos 11 anos analisados, demonstrando que o ciclo produtivo agrícola é o fator mais previsível das exportações, independentemente de preços ou câmbio.

  2. Movimentos Assimétricos: Preços vs. Exportações: Observa-se que os picos de preço (linha laranja) nem sempre coincidem com picos de exportações. Por exemplo:

    • Em 2020-2022, quando os preços subiram dramaticamente (de US$ 20 para US$ 40/bushel), as exportações também cresceram, mas a magnitude do aumento foi menor e mais errática.
    • Em 2023-2025, enquanto os preços caíram significativamente, as exportações se mantiveram em níveis relativamente altos, sugerindo que outros fatores (como safras abundantes e melhoria logística) compensaram a queda de preços.

Essa assimetria visual ajuda a explicar a correlação relativamente fraca (0.29) entre preço e exportações: volumes exportados dependem mais da safra disponível do que dos preços correntes.

  1. Câmbio como Amortecedor: Durante 2023-2025, observa-se que enquanto o preço da soja (laranja) recuou substancialmente, o câmbio (azul escuro) permaneceu em patamares elevados (R$ 5,00-5,50). Neste período, as exportações (azul claro) mantiveram-se robustas apesar da queda de preços, sugerindo que o câmbio desvalorizado atuou como compensador, mantendo a rentabilidade em Reais para os produtores brasileiros.

Comportamento das Exportações: Insights Visuais

Padrão 1: Exportações Respondem Mais à Sazonalidade que a Preços/Câmbio

A regularidade dos picos e vales de exportações (sempre nos mesmos meses, ano após ano) contrasta com a irregularidade dos movimentos de preço e câmbio. Isso demonstra visualmente que: - Fatores estruturais (ciclo de colheita) dominam o curto prazo - Preços e câmbio influenciam mais a magnitude dos picos dentro do padrão sazonal, não o padrão em si

Padrão 2: Correlação Fraca Não Significa Irrelevância

Embora as correlações calculadas sejam fracas (0.29 com preço, 0.31 com câmbio), o gráfico mostra que: - Nos picos sazonais, quando há margem de decisão sobre volumes a exportar, preços e câmbio exercem influência visível - Nos vales sazonais, mesmo com preços/câmbio favoráveis, as exportações permanecem baixas por falta de produto disponível

Isto explica a correlação fraca: preço e câmbio só influenciam quando há flexibilidade de oferta, que é limitada pela sazonalidade.

Padrão 3: Períodos de Alinhamento (Raros mas Impactantes)

Observam-se momentos específicos onde preços, câmbio e exportações se alinham favoravelmente: - Março-Junho de 2021-2022: Pico sazonal de safra + preços recordes + câmbio elevado = explosão de receitas - Março-Junho de 2023: Pico sazonal + câmbio alto (mas preços já em queda) = exportações ainda fortes, validando que câmbio compensa preços menores

Vice-Versa: Exportações Afetam Câmbio (Efeito Observável)

Um padrão sutil mas importante: em meses de pico de exportações (março-julho), a linha do câmbio (azul escuro) frequentemente apresenta leve movimento de queda (valorização do Real). Isso ocorre porque: - Entrada massiva de dólares das exportações aumenta a oferta de moeda estrangeira - Pressão pela valorização do Real (queda da cotação USD/BRL) - Efeito especialmente visível em 2023-2024, quando exportações robustas ajudaram a conter a desvalorização cambial

Conclusão Visual:

O gráfico integrado revela que as exportações de soja brasileiras são determinadas por um sistema complexo onde a sazonalidade domina no curto prazo, enquanto preços e câmbio modulam a intensidade dos ciclos.

Para análises preditivas e estratégias de hedge: 1. A sazonalidade é o ponto de partida (altamente previsível) 2. Preços internacionais determinam se o pico sazonal será “normal” ou “excepcional” 3. Câmbio atua como amplificador ou amortecedor, especialmente relevante quando preços estão em queda

Esta compreensão visual ajuda a explicar por que modelos de correlação simples (0.29 e 0.31) subestimam a importância de preços e câmbio: seu impacto é condicional e não-linear, aparecendo mais claramente na análise gráfica temporal do que em estatísticas agregadas.

Açúcar, café, milho, carnes e os efeitos do câmbio

Assim como a soja, outras commodities agrícolas sofrem forte influência cambial. O açúcar, por exemplo, é cotado na bolsa de Nova York (ICE Futures US), e o Brasil, maior exportador mundial, responde rapidamente às variações do dólar. O milho e o café seguem dinâmica similar, com preços atrelados às cotações internacionais (Chicago Board of Trade para milho e ICE/Bolsa de Nova York para café).

No caso das carnes (bovina e de aves), a influência cambial é moderada pela estrutura de custos, que inclui ração (milho e soja) de origem nacional, mas ainda assim sofre com o encarecimento de vacinas, medicamentos e equipamentos importados. Em todos os casos, a desvalorização do real melhora a competitividade internacional dos produtos brasileiros, mas eleva os custos de insumos e logística, reproduzindo o efeito dual observado na soja.

O Brasil exportou quantidades expressivas dessas commodities no período de janeiro a setembro de 2025: açúcar (US$ 9,1 bilhões), milho (US$ 7,8 bilhões), café (US$ 6,4 bilhões), carne bovina (US$ 6,2 bilhões) e carne de aves (US$ 5,8 bilhões), consolidando o papel estratégico do agronegócio na balança comercial brasileira.

Minério de ferro e petróleo: a rigidez da demanda externa

Para o petróleo bruto, o principal determinante do faturamento é a cotação internacional (Brent ou WTI). Em 2024 o Brasil comercializou 640 milhões de barris de petróleo no exterior (aproximadamente 52% de sua produção) gerando US$ 44,8 bilhões em receitas. Analistas do setor notam que a combinação de alta da demanda externa (sanções à Rússia) e dólar elevado tornou as exportações de óleo cru brasileiras ainda mais atraentes. Nesse contexto, uma depreciação do real eleva em reais o valor obtido por barril vendido, beneficiando as empresas exportadoras. Contudo, choques de oferta e demanda globais (decisões da Opep+, flutuações econômicas mundiais) costumam ser o fator mais decisivo na receita em dólares; mudanças cambiais têm impacto indireto, modulando apenas a conversão para reais. No caso do minério de a dinâmica é análoga. O Brasil exporta minério de ferro a granel, com preços fixados nos mercados internacionais (especialmente por contratos de longo prazo e negociações em Singapura/Dalian). Em 2024, o país exportou cerca de 350 milhões de toneladas de minério de ferro (em torno de US$ 35 bilhões), equivalente a aproximadamente 10% das exportações totais. Uma desvalorização do real também significa maior retorno em reais por tonelada exportada, o que pode aumentar a renda das mineradoras nacionais. No entanto, assim como no petróleo, fatores exógenos – especialmente a demanda chinesa e a concorrência da Austrália – determinam o preço em dólares mais do que as flutuações cambiais. De modo geral, um real mais fraco facilita as negociações em reais e pode incentivar a saída de volumes adicionais, enquanto um real mais forte reduziria a competitividade do minério brasileiro em termos de preço externo.

Impacto nos produtos importados

O Brasil, terceiro maior produtor de grãos do mundo, é também o maior importador global de adubos e fertilizantes. A demanda por esses insumos cresce junto com a expansão da produção de cereais, enquanto a indústria nacional do setor permanece pouco desenvolvida e sem sinais de avanço relevante nos próximos anos.

A análise dos produtos importados pelo Brasil de Janeiro a Setembro de 2025 evidencia que a base de custos do produtor é fortemente dolarizada, com destaque para a alta importação de adubos ou fertilizantes (US$ 13,4 bilhões) e de óleos combustíveis de petróleo ou minerais betuminosos (US$ 12,1 bilhões). Outros produtos relevantes incluem produtos da indústria de transformação (US$ 8,9 bilhões), medicamentos (US$ 7,3 bilhões) e componentes eletrônicos (US$ 7,1 bilhões).

A dependência é crítica: o Brasil é o maior importador global de fertilizantes, importando 85% de seu consumo. Bruno Vizioli, do Departamento Técnico e Econômico (DTE) do Sistema Federação da Agricultura do Estado do Paraná, destaca que essa importação de insumos diretos representa 40% do custo total de produção da soja. Simultaneamente, a importação de derivados de petróleo (diesel) eleva os custos logísticos (frete e armazenamento).

Assim, o dólar alto atua como uma “Espada de Dois Gumes”, aumentando o custo operacional (insumos) e o custo de escoamento (frete), esmagando a margem do produtor agrícola. “Quanto maior o custo logístico, menor o prêmio (basis) naquele local e, portanto, menor será o valor recebido pelo produtor”, comenta Rodrigo Lamberti, especialista em gestão de riscos para grãos na Hedgepoint.

Conclusão

Em síntese, a análise da dinâmica cambial e da Balança Comercial brasileira revela que a Taxa de Câmbio é uma variável importante que afeta a rentabilidade do Agronegócio e a saúde das contas externas. O Brasil, enquanto permanecer altamente dependente das exportações de commodities e, simultaneamente, da importação de insumos, estará preso ao dilema da “Espada de Dois Gumes”.

O dólar alto (câmbio desvalorizado) traz o benefício imediato de maximizar a receita das exportações em Reais, impulsionando o superávit comercial. Contudo, traz o malefício estrutural de aumentar o custo de produção, pois insumos essenciais, como fertilizantes (40% do custo da soja) e derivados de petróleo, são cotados em dólar.

A análise quantitativa através de correlações demonstrou relações complexas entre câmbio, preços internacionais e exportações de soja. As correlações relativamente fracas encontradas — 0.29 entre preços e exportações, e 0.31 entre câmbio e exportações — não indicam irrelevância dessas variáveis, mas sim revelam a complexidade do sistema agrícola brasileiro, onde múltiplos fatores atuam simultaneamente:

  1. Sazonalidade agrícola é o padrão mais forte e previsível, determinado pelo ciclo de plantio/colheita e independente de preços ou câmbio no curto prazo.

  2. Preços internacionais influenciam principalmente decisões de retenção/liberação de estoques e planejamento de safras futuras, com efeitos que se materializam com defasagem temporal.

  3. Taxa de câmbio atua como modulador de margens de rentabilidade em Reais, afetando decisões de investimento e alocação entre mercado interno e externo no médio prazo.

  4. Fatores estruturais como clima, infraestrutura logística, demanda chinesa e políticas comerciais exercem influências que não são capturadas por correlações simples entre variáveis financeiras.

A análise temporal revelou que essas relações não são estáticas: durante a pandemia (2020-2021), todas as variáveis se moveram sincronizadamente para cima (correlação fortemente positiva), criando uma janela excepcional de lucros. No período pós-pandemia (2022-2025), o câmbio elevado tem atuado como compensador parcial da queda de preços internacionais, demonstrando seu papel de amortecedor de choques externos.

A comparação entre PIB brasileiro e exportações totais reforçou que, embora as exportações tenham crescido significativamente mais que o PIB durante o boom de commodities (2021-2023), esse crescimento não se traduziu em desenvolvimento econômico proporcional. Isso evidencia a necessidade de agregar valor à pauta exportadora e fortalecer encadeamentos produtivos domésticos dos setores exportadores.

Enquanto a indústria nacional de fertilizantes for fraca e o país não desenvolver alternativas de suprimento, a vulnerabilidade cambial persistirá. Dessa forma, a alta do dólar continuará a ser, simultaneamente, um motor de receita e um fator de compressão das margens para o produtor agrícola.

No entanto, a análise demonstrou que o sucesso do agronegócio exportador brasileiro depende menos de apostas em movimentos cambiais favoráveis e mais de:

  1. Gestão de risco sofisticada: hedge de preços, câmbio e seguros climáticos
  2. Ganhos de produtividade: investimentos em tecnologia, pesquisa e desenvolvimento
  3. Melhoria estrutural: infraestrutura logística e redução de custos de escoamento
  4. Diversificação: agregação de valor e expansão para manufaturas derivadas de commodities

O câmbio e os preços internacionais criam oportunidades e desafios, mas são os fatores estruturais e de gestão que determinam, no longo prazo, a competitividade e sustentabilidade do setor agrícola brasileiro no mercado global.

Referências

BANCO CENTRAL DO BRASIL. Séries temporais – Sistema Gerenciador de Séries Temporais (SGS). Brasília: Banco Central do Brasil. Disponível em: https://www.bcb.gov.br/estatisticas/sgs. Acesso em: 22 out. 2025.

MANFRIN, Juliet. Agro brasileiro gasta US$ 25 bilhões por ano para importar 85 % dos fertilizantes. Gazeta do Povo, 26 ago. 2024. Disponível em: https://www.gazetadopovo.com.br/parana/us-25-bilhoes-o-custo-para-o-agro-brasileiro-ao-importar-85-dos-fertilizantes/. Acesso em: 22 out. 2025.

DINIZ, Augusto. Câmbio favorece exportação, mas aumenta custo de insumo para o agro, diz analista. InfoMoney, 26 jun. 2024. Disponível em: https://www.infomoney.com.br/mercados/cambio-favorece-exportacao-mas-aumenta-custo-de-insumo-para-o-agro-diz-analista/ . Acesso em: 22 out. 2025.

TIRONE, Jackson. O preço do petróleo e a agricultura. Hedgepoint Global Markets Blog, 9 dez. 2024. Disponível em: https://hedgepointglobal.com/pt-br/blog/o-preco-do-petroleo-e-a-agricultura. Acesso em: 22 out. 2025.

BRASIL. Ministério da Economia; Secretaria-Executiva; Departamento de Comércio Exterior. ComexStat – Dados gerais de comércio exterior. Disponível em: https://comexstat.mdic.gov.br/pt/geral. Acesso em: 22 out. 2025.

FAZCOMEX. Importação no Brasil: principais produtos importados. Disponível em: https://www.fazcomex.com.br/importacao/principais-produtos-importados-brasil/. Acesso em: 22 out. 2025.

ITAÚ BBA. Radar Agro – Mercado da soja, taxa de câmbio e impacto nos preços. Itaú Unibanco, 24 set. 2025. Disponível em: https://www.itau.com.br/media/dam/m/514cd1c957e811c7/original/Radar-Agro-Mercado-da-soja-taxa-de-cambio-e-impacto-nos-precos_Itau-BBA.pdf. Acesso em: 22 out. 2025.

ITAÚ BBA. Visão Agro 2025. Itaú Unibanco, 2025. Disponível em: https://www.itau.com.br/media/dam/m/68c000335b55eaab/original/VisaoAgro_2025_ItauBBA.pdf. Acesso em: 22 out. 2025.

AGROLINK. O IBGE e os números do agro. Agrolink, 26 ago. 2024. Disponível em: https://www.agrolink.com.br/colunistas/coluna/o-ibge-e-os-numeros-do-agro_505297.html . Acesso em: 22 out. 2025.

BASEDOSDADOS. Conjunto de dados: “fc403b40-a7e1-40e7-9efe-910847b45a69”. Base dos Dados. Disponível em: https://basedosdados.org/dataset/fc403b40-a7e1-40e7-9efe-910847b45a69?table=bd9b2960-361f-4465-be23-baaadaaf266d . Acesso em: 22 out. 2025.

METRÓPOLES. Como o real desvalorizado impacta o bolso do brasileiro em 2025. Metrópoles, 2025. Disponível em: https://www.metropoles.com/brasil/como-o-real-desvalorizado-impacta-o-bolso-do-brasileiro-em-2025 . Acesso em: 22 out. 2025.

CEPEA. Indicador soja. Cepea. Disponível em: https://www.cepea.org.br/br/indicador/soja.aspx . Acesso em: 22 out. 2025.

EXAME. Como funciona o mercado de câmbio e quais fatores influenciam as taxas. Exame, 2025. Disponível em: https://exame.com/invest/guia/como-funciona-o-mercado-de-cambio-e-quais-fatores-influenciam-as-taxas/ . Acesso em: 22 out. 2025.

COMEXSTAT. Dados gerais de comércio exterior. Ministério da Economia, 2025. Disponível em: https://comexstat.mdic.gov.br/pt/geral . Acesso em: 22 out. 2025.

CONEXOS CLOUD. Produtos mais importados pelo Brasil 2024: “Produto Valor US$ FOB …”. Conexos Cloud, 2024. Disponível em: https://conexoscloud.com.br/produtos-mais-importados-pelo-brasil-2024/#:~:text=Produto%20Valor%20US%24%20FOB%201,845 . Acesso em: 22 out. 2025.

TERRA. Do vinho ao pneu: dez produtos afetados pela alta do dólar. Terra, s.d. Disponível em: https://www.terra.com.br/economia/operacoes-cambiais/pessoa-fisica/do-vinho-ao-pneu-dez-produtos-afetados-pela-alta-do-dolar,ac3c8e8681fe0410VgnVCM3000009acceb0aRCRD.html#google_vignette . Acesso em: 22 out. 2025.

LS0tDQp0aXRsZTogIkPDom1iaW8gZSBBZ3JvbmVnw7NjaW8iDQphdXRob3I6ICJMdWl6IEhlbnJpcXVlIENvc3RhIGUgUm9iZXJ0YSBMb2JhdG8iDQpkYXRlOiAiMjItMTAtMjAyNSINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICB0aGVtZTogbHVtZW4NCiAgICBoaWdobGlnaHQ6IHRhbmdvDQogICAgY29kZV9mb2xkaW5nOiBzaG93DQogICAgY29kZV9kb3dubG9hZDogdHJ1ZSANCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFKQ0KDQojIFBhY290ZXMNCmxpYnJhcnkocmJjYikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCmxpYnJhcnkoem9vKQ0KbGlicmFyeSh4dHMpDQpsaWJyYXJ5KGhpZ2hjaGFydGVyKQ0KbGlicmFyeShwdXJycikNCmxpYnJhcnkodGlkeXIpDQpsaWJyYXJ5KEJJUykNCmxpYnJhcnkoc3RyaW5ncikNCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KGNvcnJwbG90KQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KHJlYWR4bCkNCg0KYGBgDQoNCiMgQnJhc2lsOiBlbnRyZSBhIGZvcsOnYSBkYXMgZXhwb3J0YcOnw7VlcyBlIGEgdm9sYXRpbGlkYWRlIGRvIGPDom1iaW8NCg0KIyMgSW50cm9kdcOnw6NvDQoNCk8gQnJhc2lsIGFkb3RhIG8gcmVnaW1lIGRlIGPDom1iaW8gZmx1dHVhbnRlLCBvIHF1ZSBzaWduaWZpY2EgcXVlLCB0ZW9yaWNhbWVudGUsIGEgdGF4YSBkZSBjw6JtYmlvIChVU0QvQlJMKSDDqSBkZXRlcm1pbmFkYSBwZWxhIG9mZXJ0YSBlIGRlbWFuZGEgZGUgbW9lZGEgZXN0cmFuZ2VpcmEgbm8gbWVyY2FkbywgcmVmbGV0aW5kbyBvcyBmbHV4b3MgY29tZXJjaWFpcyAoZXhwb3J0YcOnw7VlcyBlIGltcG9ydGHDp8O1ZXMpLCBmaW5hbmNlaXJvcyBlIGEgYXRyYXRpdmlkYWRlIGRvcyBhdGl2b3MgYnJhc2lsZWlyb3MuIEVzdGUgc2lzdGVtYSBjb25mZXJlIG1haW9yIGZsZXhpYmlsaWRhZGUgcGFyYSBhIHBvbMOtdGljYSBtb25ldMOhcmlhIGludGVybmEsIHBlcm1pdGluZG8gcXVlIG8gQmFuY28gQ2VudHJhbCBmb3F1ZSBubyBjb250cm9sZSBkYSBpbmZsYcOnw6NvLCBtYXMsIGVtIGNvbnRyYXBhcnRpZGEsIGdlcmEgYWx0YSB2b2xhdGlsaWRhZGUgY2FtYmlhbC4gRXN0ZSByZWxhdMOzcmlvIHZpc2EgYW5hbGlzYXIgY29tbyBhIHNpdHVhw6fDo28gY2FtYmlhbCBpbXBhY3RhIGFzIGV4cG9ydGHDp8O1ZXMgZSBpbXBvcnRhw6fDtWVzIGJyYXNpbGVpcmFzLCBkZXRhbGhhbmRvIG8gZWZlaXRvIGR1YWwgZG8gZMOzbGFyIGFsdG8gbmEgcmVjZWl0YSBlIG5hIGVzdHJ1dHVyYSBkZSBjdXN0b3MgZG8gc2V0b3IgZG8gYWdyb25lZ8OzY2lvLg0KDQojIyMgUG9yIHF1ZSBDw6JtYmlvIGUgQWdyb25lZ8OzY2lvPw0KDQpBIGVzY29saGEgZGUgYW5hbGlzYXIgZXNwZWNpZmljYW1lbnRlIGEgcmVsYcOnw6NvIGVudHJlIGPDom1iaW8gZSBhZ3JvbmVnw7NjaW8gc2UganVzdGlmaWNhIHBvciBjYXJhY3RlcsOtc3RpY2FzIGVzdHJ1dHVyYWlzIMO6bmljYXMgZG8gc2V0b3Igbm8gQnJhc2lsLiBQcmltZWlybywgbyBhZ3JvbmVnw7NjaW8gcmVwcmVzZW50YSBhcHJveGltYWRhbWVudGUgMjQlIGRvIFBJQiBicmFzaWxlaXJvIGUgcmVzcG9uZGUgcG9yIDQ4JSBkYXMgZXhwb3J0YcOnw7VlcyB0b3RhaXMgZG8gcGHDrXMsIHRvcm5hbmRvLW8gbyBzZXRvciBtYWlzIHJlbGV2YW50ZSBwYXJhIGEgYmFsYW7Dp2EgY29tZXJjaWFsLiBTZWd1bmRvLCBkaWZlcmVudGVtZW50ZSBkZSBvdXRyb3Mgc2V0b3JlcyBleHBvcnRhZG9yZXMsIG8gYWdyb25lZ8OzY2lvIGFwcmVzZW50YSB1bWEgY2FyYWN0ZXLDrXN0aWNhIGR1YWwgZXh0cmVtYTogZW5xdWFudG8gc3VhIHJlY2VpdGEgw6kgaW50ZWdyYWxtZW50ZSBkb2xhcml6YWRhIChjb21tb2RpdGllcyBjb3RhZGFzIGludGVybmFjaW9uYWxtZW50ZSksIHNldXMgY3VzdG9zIHPDo28gcGFyY2lhbG1lbnRlIGRvbGFyaXphZG9zIGF0cmF2w6lzIGRhIGltcG9ydGHDp8OjbyBkZSBpbnN1bW9zIGVzc2VuY2lhaXMuIEVzc2EgcGVjdWxpYXJpZGFkZSB0b3JuYSBvIHNldG9yIHBhcnRpY3VsYXJtZW50ZSBzZW5zw612ZWwgw6BzIG9zY2lsYcOnw7VlcyBjYW1iaWFpcy4NCg0KT3V0cm9zIHNldG9yZXMgcmVsZXZhbnRlcyBkYSBlY29ub21pYSBicmFzaWxlaXJhLCBjb21vIG8gc2V0b3IgYXV0b21vYmlsw61zdGljbyBvdSBkZSBtYW51ZmF0dXJhcywgZW1ib3JhIHRhbWLDqW0gc29mcmFtIGltcGFjdG9zIGNhbWJpYWlzLCBwb3NzdWVtIGNhZGVpYXMgcHJvZHV0aXZhcyBtYWlzIGludGVncmFkYXMgbmFjaW9uYWxtZW50ZSBlIG1lbm9yIGRlcGVuZMOqbmNpYSBkZSBpbXBvcnRhw6fDo28gZGUgaW5zdW1vcyBjcsOtdGljb3MuIE8gc2V0b3IgZGUgc2VydmnDp29zLCBwb3Igc3VhIHZleiwgdGVtIGV4cG9zacOnw6NvIGNhbWJpYWwgbGltaXRhZGEgcG9yIHNlciBtYWpvcml0YXJpYW1lbnRlIHZvbHRhZG8gYW8gbWVyY2FkbyBpbnRlcm5vLiBKw6Egc2V0b3JlcyBjb21vIHBldHLDs2xlbyBlIG1pbsOpcmlvIGRlIGZlcnJvLCBlbWJvcmEgaW1wb3J0YW50ZXMgZXhwb3J0YWRvcmVzLCB0w6ptIHNldXMgcHJlw6dvcyBkZXRlcm1pbmFkb3MgcHJpbmNpcGFsbWVudGUgcG9yIGZhdG9yZXMgZ2VvcG9sw610aWNvcyBlIGRlbWFuZGEgZ2xvYmFsLCBjb20gbyBjw6JtYmlvIGV4ZXJjZW5kbyBwYXBlbCBzZWN1bmTDoXJpby4NCg0KTm8gYWdyb25lZ8OzY2lvLCBhIGVxdWHDp8OjbyDDqSBkaWZlcmVudGU6IG8gcHJvZHV0b3IgYnJhc2lsZWlybyBpbXBvcnRhIDg1JSBkb3MgZmVydGlsaXphbnRlcyBxdWUgY29uc29tZSBlIGRlcGVuZGUgZGUgZGllc2VsIGltcG9ydGFkbyBwYXJhIGxvZ8Otc3RpY2EsIG1hcyB2ZW5kZSBzdWEgcHJvZHXDp8OjbyBhIHByZcOnb3MgaW50ZXJuYWNpb25haXMuIElzc28gY3JpYSB1bWEgdnVsbmVyYWJpbGlkYWRlIGNhbWJpYWwgw7puaWNhLCBvbmRlIGEgbWVzbWEgdmFyaWHDp8OjbyBkbyBkw7NsYXIgYWZldGEgc2ltdWx0YW5lYW1lbnRlIHJlY2VpdGFzIGUgY3VzdG9zLCBtYXMgZW0gbWFnbml0dWRlcyBlIHZlbG9jaWRhZGVzIGRpZmVyZW50ZXMsIGZlbsO0bWVubyBxdWUgc2Vyw6EgZXhwbG9yYWRvIGF0cmF2w6lzIGRhIENvbmRpw6fDo28gZGUgTWFyc2hhbGwtTGVybmVyIG5hcyBwcsOzeGltYXMgc2XDp8O1ZXMuDQoNCiMjIE8gY8OibWJpbyBlIGEgQmFsYW7Dp2EgY29tZXJjaWFsDQoNCk5lc3NlIGNvbnRleHRvLCBhIEJhbGFuw6dhIENvbWVyY2lhbCBhdHVhIGNvbW8gdW0gZG9zIHZldG9yZXMgZGUgbWFpb3IgaW1wYWN0byBzb2JyZSBlc3NlcyBmbHV4b3M6IHF1YW5kbyBvIHBhw61zIHJlZ2lzdHJhIHN1cGVyw6F2aXQgKGV4cG9ydGHDp8O1ZXMgc3VwZXJhbmRvIGltcG9ydGHDp8O1ZXMpLCBhIG1hc3NpdmEgZW50cmFkYSBkZSBtb2VkYSBlc3RyYW5nZWlyYSBlIG8gYXVtZW50byBuYSBkZW1hbmRhIHBvciBSZWFpcyByZXN1bHRhbSBuYSB2YWxvcml6YcOnw6NvIGRhIG1vZWRhIG5hY2lvbmFsLiBJbnZlcnNhbWVudGUsIHVtIGTDqWZpY2l0IGNvbWVyY2lhbCAoaW1wb3J0YcOnw7VlcyBtYWlvcmVzIHF1ZSBleHBvcnRhw6fDtWVzKSBhdW1lbnRhIGEgbmVjZXNzaWRhZGUgZGUgZMOzbGFyZXMsIGVsZXZhbmRvIGEgZGVtYW5kYSBwZWxhIGRpdmlzYSwgbyBxdWUgbGV2YSDDoCBkZXByZWNpYcOnw6NvIGRvIFJlYWwuIEEgZmx1dHVhw6fDo28gb2JzZXJ2YWRhIGRpYXJpYW1lbnRlIMOpLCBwb3J0YW50bywgYSBtYXRlcmlhbGl6YcOnw6NvIGltZWRpYXRhIGRlc3NlcyBhanVzdGVzIGRlIG1lcmNhZG8gZnJlbnRlIGFvcyByZXN1bHRhZG9zIGRvIGNvbcOpcmNpbyBleHRlcmlvci4NCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojLS0tIDEuIEdyw6FmaWNvIEJDICsgQ8OibWJpby0tLQ0KIzEuIE1BVFJJWiBERSBEQURPUyAtLS0tDQpkYWRvcyA8LSB0cmliYmxlKA0KICB+YW5vLCB+bWVzLCB+ZXhwLCB+aW1wLA0KICAyMDIxLCAxLCAxNDk0NzYyNjAwMywgMTUxNjczOTIzOTMsDQogIDIwMjEsIDIsIDE2Mzc1MjkwODcwLCAxNDUzOTE3MjU2OSwNCiAgMjAyMSwgMywgMjQzMzU3NTk4NTIsIDE3ODY1Mjc4ODY0LA0KICAyMDIxLCA0LCAyNjA1OTQzMTg1NiwgMTYwOTYzMjQwOTUsDQogIDIwMjEsIDUsIDI2MjAwNjYyNjA2LCAxNzY2NDY4MTczNiwNCiAgMjAyMSwgNiwgMjgyNTc4OTUxMzgsIDE3ODQzNjA1MDc5LA0KICAyMDIxLCA3LCAyNTUwODU5NTUwMywgMTgxMjg2NDUyMjksDQogIDIwMjEsIDgsIDI3MjE2Mzc1OTAwLCAxOTU1NzI3NjYzOCwNCiAgMjAyMSwgOSwgMjQzNzYxMjk1MTAsIDE5OTc1NDQ3NTgxLA0KICAyMDIxLDEwLCAyMjYwMjYzNzIzNCwgMjA1Mzg5MTg0MjgsDQogIDIwMjEsMTEsIDIwNTAxNzY2MjEwLCAyMTYxMTg0MDUxOSwNCiAgMjAyMSwxMiwgMjQ0MzI0MDY3NzgsIDIwNDE5NDY2MDQ5LA0KICAyMDIyLCAxLCAxOTc3OTkyODg5NCwgMTk4MzkwMzY4OTUsDQogIDIwMjIsIDIsIDIzNTEzMzA1MTE3LCAxODg4NDAzMjYzOSwNCiAgMjAyMiwgMywgMjk0MjIzMjAxOTYsIDIxODA5MTM5MjQxLA0KICAyMDIyLCA0LCAyODk2OTY5NDY4NywgMjA3NDI5NDI4MDEsDQogIDIwMjIsIDUsIDI5NjQyODUxMTk3LCAyNDY4NTE5NDM0OCwNCiAgMjAyMiwgNiwgMzI3NDIxOTQ1NDMsIDIzODUyMjU5MTIwLA0KICAyMDIyLCA3LCAyOTg0NDMyNDY0MCwgMjQ0ODcwMTAwMjUsDQogIDIwMjIsIDgsIDMwNzg2OTA4ODM0LCAyNjY4MDIyNjgzNSwNCiAgMjAyMiwgOSwgMjg1ODczMzQxNDIsIDI0ODkyNzExMzYxLA0KICAyMDIyLDEwLCAyNjg1MjQ3NjQ2MSwgMjM0NzcxMDUxMjYsDQogIDIwMjIsMTEsIDI3NjUyMzAzNDUxLCAyMTQ1MTk4NTkwOSwNCiAgMjAyMiwxMiwgMjYzNDIzOTYwNTgsIDIxODA5MDQyNjQ2LA0KICAyMDIzLCAxLCAyMjc5NjAxNDQ3NywgMjA1MTExNjg4OTQsDQogIDIwMjMsIDIsIDIwMjQxNjI4NjU3LCAxNzY2OTgzNTQ0MCwNCiAgMjAyMywgMywgMzI4MjI5MTE4NjYsIDIyMDcxNjMxMDIzLA0KICAyMDIzLCA0LCAyNzEwMDMwMjQxMCwgMTkxNDU5ODQ5MTMsDQogIDIwMjMsIDUsIDMyNjY2MTQwNzg3LCAyMTY4ODMwMzIwMiwNCiAgMjAyMywgNiwgMjk2MDAzMDkxNDksIDE5NTIzNTQ4MjE3LA0KICAyMDIzLCA3LCAyODMwMDA3MzczMCwgMjAxMjEwMTI1MjksDQogIDIwMjMsIDgsIDMxMTAxMDg5Nzc0LCAyMTQ2ODQ4NDQ2OSwNCiAgMjAyMywgOSwgMjg3MTMwODUwNTYsIDE5NTMxNTEzMzIwLA0KICAyMDIzLDEwLCAyOTY4MTg2NzMxOCwgMjA1MDA5NDU4NzcsDQogIDIwMjMsMTEsIDI3ODg2MTE2MjE5LCAxOTA5NzM0ODg0MywNCiAgMjAyMywxMiwgMjg3ODYyMjY1NjUsIDE5NDYzMDYyNDk3LA0KICAyMDI0LCAxLCAyNjcwMjY1NTM1MywgMjA1MDY1NTYwNjQsDQogIDIwMjQsIDIsIDIzMzQ4MjU0MDI1LCAxODIxNzkyNTIzMSwNCiAgMjAyNCwgMywgMjc2NTc0MTk0MTcsIDIwNDkwMjA5NTg2LA0KICAyMDI0LCA0LCAzMDMyNzUyNDk2MywgMjE4OTYzNjUwNjAsDQogIDIwMjQsIDUsIDMwMTkwMjY0NjUwLCAyMTg4ODQ3NjU5NiwNCiAgMjAyNCwgNiwgMjg3MzE2Mzk5NzksIDIyNDAzNTAxMjQ0LA0KICAyMDI0LCA3LCAzMDg0MTM5NDg5MCwgMjMyODk5MDgyNTksDQogIDIwMjQsIDgsIDI4NzM2MzI5OTcyLCAyNDIxOTIxMDAwOSwNCiAgMjAyNCwgOSwgMjg0NzE0MDIyODgsIDIzMzkxODE0ODY3LA0KICAyMDI0LDEwLCAyOTMwMDg2NjE4OSwgMjUyMDk2NDc4NzIsDQogIDIwMjQsMTEsIDI3ODU3MzY1MTk3LCAyMTExMDgzNDMyMiwNCiAgMjAyNCwxMiwgMjQ4ODEwNDQ3ODcsIDIwMjQ1MTU3MDY0LA0KICAyMDI1LCAxLCAyNTM4MzE2MzIyOSwgMjMwNjcwMTIxNzgsDQogIDIwMjUsIDIsIDIyNzQ0NDQ5MTk3LCAyMzIzMTU2MjUyOSwNCiAgMjAyNSwgMywgMjg3MDIzMjg3MjYsIDIxMDI4ODYwODI5LA0KICAyMDI1LCA0LCAyOTg4NTMxMjgxNywgMjIyNzI3NTA5NTgsDQogIDIwMjUsIDUsIDI5OTMzMjgwMzcyLCAyMjkzMzU0NjMzOCwNCiAgMjAyNSwgNiwgMjg5NjA2NTY0ODYsIDIzMjcwMDA4ODk2LA0KICAyMDI1LCA3LCAzMjA3MzUzMjU4OSwgMjUyNTEyODE5MjksDQogIDIwMjUsIDgsIDI5NTc4NjQ5OTg0LCAyMzcxNzc5NTIyMCwNCiAgMjAyNSwgOSwgMzA1MzA5MDc4MjMsIDI3NTQxMDE5MTM0DQopDQpjYW1iaW8gPC0gZ2V0X3NlcmllcygzNjk1LCBzdGFydF9kYXRlID0gIjIwMjEtMDEtMDEiLCBlbmRfZGF0ZSA9ICIyMDI1LTA5LTMwIikgJT4lDQogIHNldE5hbWVzKGMoImRhdGEiLCJ1c2QiKSkNCg0KIyAzLiBVTklSIERBRE9TIC0tLS0NCmRmIDwtIGRhZG9zICU+JQ0KICBtdXRhdGUoDQogICAgZGF0YSA9IGFzLkRhdGUoc3ByaW50ZigiJWQtJTAyZC0wMSIsIGFubywgbWVzKSksDQogICAgaW1wX25lZyA9IC1pbXANCiAgKSAlPiUNCiAgbGVmdF9qb2luKGNhbWJpbywgYnkgPSAiZGF0YSIpDQoNCg0KIyA0LiBHUsOBRklDTyAtLS0tDQpjb2xfZXhwICAgPC0gIiMwMjAyM0MiICAjIGF6dWwgZXNjdXJvDQpjb2xfaW1wICAgPC0gIiM4QjlEQzMiICAjIGF6dWwgY2xhcm8NCmNvbF9kb2xhciA8LSAiI0ZFQjAxNSIgICMgYW1hcmVsbw0KDQp4X2V4cCAgICA8LSB4dHMoZGYkZXhwLCBvcmRlci5ieSA9IGRmJGRhdGEpDQp4X2ltcCAgICA8LSB4dHMoZGYkaW1wX25lZywgb3JkZXIuYnkgPSBkZiRkYXRhKQ0KeF9jYW1iaW8gPC0geHRzKGRmJHVzZCwgb3JkZXIuYnkgPSBkZiRkYXRhKQ0KDQpoaWdoY2hhcnQodHlwZSA9ICJzdG9jayIpICU+JQ0KICBoY190aXRsZSh0ZXh0ID0gIkJhbGFuw6dhIENvbWVyY2lhbCBNZW5zYWwgdnMuIFRheGEgZGUgQ8OibWJpbyDigJQgMjAyMeKAkzIwMjUiKSAlPiUNCiAgaGNfc3VidGl0bGUodGV4dCA9ICJGb250ZTogQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwgKFNHUyAzNjk1KSB8IENvbWV4U3RhdCAoQmFsYW7Dp2EgQ29tZXJjaWFsKSIpICU+JQ0KICBoY19hZGRfc2VyaWVzKHhfZXhwLCBuYW1lID0gIkV4cG9ydGHDp8O1ZXMiLCB0eXBlID0gImNvbHVtbiIsIGNvbG9yID0gY29sX2V4cCwNCiAgICAgICAgICAgICAgICB0b29sdGlwID0gbGlzdCh2YWx1ZURlY2ltYWxzID0gMCwgdmFsdWVQcmVmaXggPSAiVVMkICIpKSAlPiUNCiAgaGNfYWRkX3Nlcmllcyh4X2ltcCwgbmFtZSA9ICJJbXBvcnRhw6fDtWVzIiwgdHlwZSA9ICJjb2x1bW4iLCBjb2xvciA9IGNvbF9pbXAsDQogICAgICAgICAgICAgICAgdG9vbHRpcCA9IGxpc3QodmFsdWVEZWNpbWFscyA9IDAsIHZhbHVlUHJlZml4ID0gIlVTJCAiKSkgJT4lDQogIGhjX2FkZF9zZXJpZXMoeF9jYW1iaW8sIG5hbWUgPSAiQ8OibWJpbyAoQlJML1VTRCkiLCB0eXBlID0gInNwbGluZSIsIA0KICAgICAgICAgICAgICAgIGNvbG9yID0gY29sX2RvbGFyLCB5QXhpcyA9IDEsDQogICAgICAgICAgICAgICAgdG9vbHRpcCA9IGxpc3QodmFsdWVEZWNpbWFscyA9IDIsIHZhbHVlUHJlZml4ID0gIlIkICIpKSAlPiUNCiAgaGNfeUF4aXNfbXVsdGlwbGVzKA0KICAgIGxpc3QoDQogICAgICB0aXRsZSA9IGxpc3QodGV4dCA9ICJCYWxhbsOnYSBDb21lcmNpYWwgKFVTJCkiLCBzdHlsZSA9IGxpc3QoY29sb3IgPSAiIzFDMkE1RSIpKSwNCiAgICAgIGxhYmVscyA9IGxpc3Qoc3R5bGUgPSBsaXN0KGNvbG9yID0gIiMxQzJBNUUiKSksDQogICAgICBncmlkTGluZVdpZHRoID0gMQ0KICAgICksDQogICAgbGlzdCgNCiAgICAgIHRpdGxlID0gbGlzdCh0ZXh0ID0gIlRheGEgZGUgQ8OibWJpbyAoQlJML1VTRCkiLCBzdHlsZSA9IGxpc3QoY29sb3IgPSBjb2xfZG9sYXIpKSwNCiAgICAgIGxhYmVscyA9IGxpc3Qoc3R5bGUgPSBsaXN0KGNvbG9yID0gY29sX2RvbGFyKSksDQogICAgICBvcHBvc2l0ZSA9IFRSVUUNCiAgICApDQogICkgJT4lDQogIGhjX2xlZ2VuZCgNCiAgICBhbGlnbiA9ICJjZW50ZXIiLA0KICAgIHZlcnRpY2FsQWxpZ24gPSAidG9wIiwNCiAgICBsYXlvdXQgPSAiaG9yaXpvbnRhbCINCiAgKSAlPiUNCiAgaGNfY2hhcnQoYmFja2dyb3VuZENvbG9yID0gIndoaXRlIikgJT4lDQogIGhjX3Rvb2x0aXAoc2hhcmVkID0gRkFMU0UsIGNyb3NzaGFpcnMgPSBUUlVFKQ0KYGBgDQoNCkEgYW7DoWxpc2UgZ3LDoWZpY2EgcmV2ZWxhIHVtYSBjb3JyZWxhw6fDo28gcG9zaXRpdmEgZW50cmUgYSBkZXByZWNpYcOnw6NvIGNhbWJpYWwgZSBvIHN1cGVyw6F2aXQgY29tZXJjaWFsIGFvIGxvbmdvIGRvIHBlcsOtb2RvIDIwMjEtMjAyNS4gT2JzZXJ2YS1zZSBxdWUgbW9tZW50b3MgZGUgZm9ydGUgZGVzdmFsb3JpemHDp8OjbyBkbyBSZWFsIGNvaW5jaWRlbSBjb20gZXhwYW5zw6NvIGRhcyBleHBvcnRhw6fDtWVzLCBwYXJ0aWN1bGFybWVudGUgZW0gcGVyw61vZG9zIGRlIHNhZnJhIGFncsOtY29sYSAocHJpbWVpcm8gZSBzZWd1bmRvIHRyaW1lc3RyZXMpLiBBIHZvbGF0aWxpZGFkZSBjYW1iaWFsIHJlZmxldGUgbsOjbyBhcGVuYXMgb3MgZmx1eG9zIGNvbWVyY2lhaXMsIG1hcyB0YW1iw6ltIG1vdmltZW50b3MgZXNwZWN1bGF0aXZvcyBlIGRlY2lzw7VlcyBkZSBwb2zDrXRpY2EgbW9uZXTDoXJpYSwgY3JpYW5kbyB1bSBhbWJpZW50ZSBkZSBpbmNlcnRlemEgcGFyYSBvIHBsYW5lamFtZW50byBkb3MgYWdlbnRlcyBlY29uw7RtaWNvcy4NCg0KIyMgUElCIEJyYXNpbCBlIG8gRGVzZW1wZW5obyBFeHBvcnRhZG9yDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIy0tLSBHcsOhZmljbyBQSUIgQnJhc2lsIHZzIEV4cG9ydGHDp8O1ZXMgVG90YWlzIC0tLQ0KDQojIEJ1c2NhciBQSUIgbWVuc2FsIGRvIEJyYXNpbCAoY8OzZGlnbyA0MzgwKQ0KcGliX2JyYXNpbCA8LSBnZXRfc2VyaWVzKDQzODAsIHN0YXJ0X2RhdGUgPSAiMjAyMS0wMS0wMSIsIGVuZF9kYXRlID0gIjIwMjUtMDktMzAiKSAlPiUNCiAgc2V0TmFtZXMoYygiZGF0YSIsICJwaWJfYnJhc2lsIikpICU+JQ0KICBtdXRhdGUoZGF0YSA9IGFzLkRhdGUoZGF0YSkpDQoNCiMgUHJlcGFyYXIgZGFkb3MgZGUgZXhwb3J0YcOnw7VlcyB0b3RhaXMgbWVuc2Fpcw0KZXhwX3RvdGFpcyA8LSBkYWRvcyAlPiUNCiAgbXV0YXRlKA0KICAgIGRhdGEgPSBhcy5EYXRlKHNwcmludGYoIiVkLSUwMmQtMDEiLCBhbm8sIG1lcykpLA0KICAgIGV4cF9iaWxob2VzID0gZXhwIC8gMWU5ICAjIENvbnZlcnRlciBwYXJhIGJpbGjDtWVzDQogICkgJT4lDQogIHNlbGVjdChkYXRhLCBleHBfYmlsaG9lcykNCg0KIyBVbmlyIG9zIGRhZG9zDQpkZl9waWJfZXhwIDwtIHBpYl9icmFzaWwgJT4lDQogIGxlZnRfam9pbihleHBfdG90YWlzLCBieSA9ICJkYXRhIikgJT4lDQogIGZpbHRlcighaXMubmEocGliX2JyYXNpbCkgJiAhaXMubmEoZXhwX2JpbGhvZXMpKQ0KDQojIE5vcm1hbGl6YXIgYXMgc8OpcmllcyBwYXJhIGJhc2UgMTAwIChqYW4vMjAyMSkNCmRmX3BpYl9leHAgPC0gZGZfcGliX2V4cCAlPiUNCiAgbXV0YXRlKA0KICAgIHBpYl9icmFzaWxfbm9ybSA9IChwaWJfYnJhc2lsIC8gZmlyc3QocGliX2JyYXNpbCkpICogMTAwLA0KICAgIGV4cF9ub3JtID0gKGV4cF9iaWxob2VzIC8gZmlyc3QoZXhwX2JpbGhvZXMpKSAqIDEwMA0KICApDQoNCiMgQ3JpYXIgc8OpcmllcyB4dHMNCnhfcGliX2JyYXNpbCA8LSB4dHMoZGZfcGliX2V4cCRwaWJfYnJhc2lsX25vcm0sIG9yZGVyLmJ5ID0gZGZfcGliX2V4cCRkYXRhKQ0KeF9leHBfbm9ybSA8LSB4dHMoZGZfcGliX2V4cCRleHBfbm9ybSwgb3JkZXIuYnkgPSBkZl9waWJfZXhwJGRhdGEpDQoNCiMgQ29yZXMNCmNvbF9icmFzaWwgPC0gIiMwMjAyM0MiICAjIGF6dWwgZXNjdXJvDQpjb2xfZXhwIDwtICIjRkVCMDE1IiAgICAgIyBhbWFyZWxvL2xhcmFuamENCg0KIyBHcsOhZmljbw0KaGlnaGNoYXJ0KHR5cGUgPSAic3RvY2siKSAlPiUNCiAgaGNfdGl0bGUodGV4dCA9ICJQSUIgZG8gQnJhc2lsIHZzLiBFeHBvcnRhw6fDtWVzIFRvdGFpcyDigJQgMjAyMeKAkzIwMjUiKSAlPiUNCiAgaGNfc3VidGl0bGUodGV4dCA9ICLDjW5kaWNlIGJhc2UgMTAwID0gamFuLzIwMjEgfCBGb250ZTogQkNCIChTR1MgNDM4MCkgZSBDb21leFN0YXQiKSAlPiUNCiAgaGNfYWRkX3Nlcmllcyh4X3BpYl9icmFzaWwsIG5hbWUgPSAiUElCIEJyYXNpbCIsIHR5cGUgPSAibGluZSIsIA0KICAgICAgICAgICAgICAgIGNvbG9yID0gY29sX2JyYXNpbCwgbGluZVdpZHRoID0gMi41LA0KICAgICAgICAgICAgICAgIHRvb2x0aXAgPSBsaXN0KHZhbHVlRGVjaW1hbHMgPSAxLCB2YWx1ZVN1ZmZpeCA9ICIiKSkgJT4lDQogIGhjX2FkZF9zZXJpZXMoeF9leHBfbm9ybSwgbmFtZSA9ICJFeHBvcnRhw6fDtWVzIFRvdGFpcyIsIA0KICAgICAgICAgICAgICAgIHR5cGUgPSAibGluZSIsIGNvbG9yID0gY29sX2V4cCwgbGluZVdpZHRoID0gMi41LA0KICAgICAgICAgICAgICAgIHRvb2x0aXAgPSBsaXN0KHZhbHVlRGVjaW1hbHMgPSAxLCB2YWx1ZVN1ZmZpeCA9ICIiKSkgJT4lDQogIGhjX3lBeGlzKA0KICAgIHRpdGxlID0gbGlzdCh0ZXh0ID0gIsONbmRpY2UgKGJhc2UgMTAwID0gamFuLzIwMjEpIiwgc3R5bGUgPSBsaXN0KGNvbG9yID0gIiMxQzJBNUUiKSksDQogICAgbGFiZWxzID0gbGlzdChzdHlsZSA9IGxpc3QoY29sb3IgPSAiIzFDMkE1RSIpKSwNCiAgICBncmlkTGluZVdpZHRoID0gMQ0KICApICU+JQ0KICBoY19sZWdlbmQoDQogICAgYWxpZ24gPSAiY2VudGVyIiwNCiAgICB2ZXJ0aWNhbEFsaWduID0gInRvcCIsDQogICAgbGF5b3V0ID0gImhvcml6b250YWwiDQogICkgJT4lDQogIGhjX2NoYXJ0KGJhY2tncm91bmRDb2xvciA9ICJ3aGl0ZSIpICU+JQ0KICBoY190b29sdGlwKHNoYXJlZCA9IFRSVUUsIGNyb3NzaGFpcnMgPSBUUlVFKQ0KYGBgDQoNCkEgcmVsYcOnw6NvIGVudHJlIG8gUElCIGJyYXNpbGVpcm8gZSBhcyBleHBvcnRhw6fDtWVzIHRvdGFpcyBhbyBsb25nbyBkbyBwZXLDrW9kbyAyMDIxLTIwMjUgcmV2ZWxhIGRpbsOibWljYXMgaW1wb3J0YW50ZXMgc29icmUgbyBwYXBlbCBkbyBzZXRvciBleHBvcnRhZG9yIG5hIGVjb25vbWlhIG5hY2lvbmFsIGUgY29tbyBhbWJhcyBhcyB2YXJpw6F2ZWlzIHNlIGluZmx1ZW5jaWFtIG11dHVhbWVudGUuDQoNCioqUGFkcsO1ZXMgT2JzZXJ2YWRvcyBubyBHcsOhZmljbzoqKg0KDQoqKjEuIENyZXNjaW1lbnRvIEFzc2ltw6l0cmljbyAoMjAyMS0yMDIzKToqKg0KDQpEdXJhbnRlIG8gcGVyw61vZG8gMjAyMS0yMDIzLCBvYnNlcnZhLXNlIHF1ZSBhcyBleHBvcnRhw6fDtWVzIChsaW5oYSBsYXJhbmphKSBjcmVzY2VyYW0gc2lnbmlmaWNhdGl2YW1lbnRlIG1haXMgcXVlIG8gUElCIChsaW5oYSBhenVsIGVzY3VyYSkuIEVucXVhbnRvIG8gUElCIGFwcmVzZW50b3UgY3Jlc2NpbWVudG8gbW9kZXJhZG8gZSByZWxhdGl2YW1lbnRlIGVzdMOhdmVsIChhcHJveGltYWRhbWVudGUgMTEwLTExNSBlbSAyMDIzIHZzIGJhc2UgMTAwIGVtIGphbi8yMDIxKSwgYXMgZXhwb3J0YcOnw7VlcyBleHBsb2RpcmFtLCBjaGVnYW5kbyBhIHBpY29zIGRlIDEzMC0xNDAgbm8gbWVzbW8gcGVyw61vZG8uDQoNCkVzdGEgYXNzaW1ldHJpYSByZWZsZXRlIHRyw6pzIGZhdG9yZXMgcHJpbmNpcGFpczoNCi0gKipCb29tIGRlIGNvbW1vZGl0aWVzICgyMDIwLTIwMjIpOioqIFByZcOnb3MgaW50ZXJuYWNpb25haXMgcmVjb3JkZXMgZGUgc29qYSwgbWlsaG8sIG1pbsOpcmlvIGRlIGZlcnJvIGUgcGV0csOzbGVvIGltcHVsc2lvbmFyYW0gbyB2YWxvciBleHBvcnRhZG8gbXVpdG8gYWzDqW0gZG8gY3Jlc2NpbWVudG8gZWNvbsO0bWljbyBkb23DqXN0aWNvDQotICoqQ8OibWJpbyBmYXZvcsOhdmVsOioqIFJlYWwgZGVzdmFsb3JpemFkbyAoUiQgNSwwMC01LDgwKSBkdXJhbnRlIHRvZG8gbyBwZXLDrW9kbyBhdW1lbnRvdSBhIGNvbXBldGl0aXZpZGFkZSBkYXMgZXhwb3J0YcOnw7Vlcw0KLSAqKkRlbWFuZGEgZXh0ZXJuYSByZXNpbGllbnRlOioqIEVzcGVjaWFsbWVudGUgZGEgQ2hpbmEsIHF1ZSBtYW50ZXZlIGNvbXByYXMgcm9idXN0YXMgZGUgY29tbW9kaXRpZXMgYnJhc2lsZWlyYXMgbWVzbW8gZHVyYW50ZSBhIHBhbmRlbWlhDQoNCioqMi4gQ29udmVyZ8OqbmNpYSBlIE5vcm1hbGl6YcOnw6NvICgyMDI0LTIwMjUpOioqDQoNCkEgcGFydGlyIGRlIDIwMjQsIGFzIGR1YXMgY3VydmFzIGFwcmVzZW50YW0gbW92aW1lbnRvIGRlIGNvbnZlcmfDqm5jaWEuIEFzIGV4cG9ydGHDp8O1ZXMgcmVjdWFtIGRlIHNldXMgcGljb3MgKGRlIH4xMzUgcGFyYSB+MTIwLTEyNSkgZW5xdWFudG8gbyBQSUIgY29udGludWEgY3Jlc2NpbWVudG8gbW9kZXJhZG8uIEVzdGEgbm9ybWFsaXphw6fDo28gb2NvcnJlIGRldmlkbyBhOg0KLSAqKlF1ZWRhIGRvcyBwcmXDp29zIGRlIGNvbW1vZGl0aWVzOioqIFJldG9ybm8gYW9zIHBhdGFtYXJlcyBwcsOpLXBhbmTDqm1pY29zIG91IGFiYWl4byBkZWxlcw0KLSAqKkRlc2FjZWxlcmHDp8OjbyBkYSBlY29ub21pYSBjaGluZXNhOioqIFJlZHXDp8OjbyBkYSBkZW1hbmRhIHBvciBtaW7DqXJpbyBkZSBmZXJybyBlIG91dHJhcyBjb21tb2RpdGllcw0KLSAqKk1hdHVyYcOnw6NvIGRvIGNpY2xvIGVjb27DtG1pY286KiogQXDDs3MgbyBib29tIGV4cG9ydGFkb3IsIHJldG9ybm8gYSBwYWRyw7VlcyBtYWlzIHN1c3RlbnTDoXZlaXMgZGUgY3Jlc2NpbWVudG8NCg0KKiozLiBWb2xhdGlsaWRhZGUgRGlzdGludGE6KioNCg0KQXMgZXhwb3J0YcOnw7VlcyBhcHJlc2VudGFtICoqdm9sYXRpbGlkYWRlIG11aXRvIG1haW9yKiogcXVlIG8gUElCLiBPYnNlcnZhbS1zZSBvc2NpbGHDp8O1ZXMgcHJvbnVuY2lhZGFzIG5hIGxpbmhhIGxhcmFuamEgKGV4cG9ydGHDp8O1ZXMpLCBjb20gcGljb3MgZSB2YWxlcyBtZW5zYWlzIGFjZW50dWFkb3MsIGVucXVhbnRvIGEgbGluaGEgYXp1bCAoUElCKSDDqSByZWxhdGl2YW1lbnRlIHN1YXZlLiBJc3NvIGRlY29ycmUgZGU6DQotICoqU2F6b25hbGlkYWRlIGFncsOtY29sYToqKiBTYWZyYXMgZGUgc29qYSwgbWlsaG8gZSBjYWbDqSBnZXJhbSBwaWNvcyBkZSBleHBvcnRhw6fDo28gZW0gbWVzZXMgZXNwZWPDrWZpY29zDQotICoqVm9sYXRpbGlkYWRlIGRlIHByZcOnb3M6KiogQ29tbW9kaXRpZXMgdMOqbSBjb3Rhw6fDtWVzIG11aXRvIG1haXMgdm9sw6F0ZWlzIHF1ZSBhIGF0aXZpZGFkZSBlY29uw7RtaWNhIGFncmVnYWRhDQotICoqTmF0dXJlemEgZG8gUElCOioqIE1lZGUgcHJvZHXDp8OjbyBhZ3JlZ2FkYSBpbmNsdWluZG8gc2VydmnDp29zICg3MCUgZGEgZWNvbm9taWEpLCBxdWUgc8OjbyBtYWlzIGVzdMOhdmVpcw0KDQoqKlJlbGHDp8OjbyBQSUIgw5cgRXhwb3J0YcOnw7VlczogQ2F1c2FsaWRhZGUgQmlkaXJlY2lvbmFsKioNCg0KQSByZWxhw6fDo28gZW50cmUgUElCIGUgZXhwb3J0YcOnw7VlcyBuw6NvIMOpIHVuaWRpcmVjaW9uYWwsIG1hcyBjYXJhY3Rlcml6YS1zZSBwb3IgaW5mbHXDqm5jaWFzIG3DunR1YXM6DQoNCioqRXhwb3J0YcOnw7VlcyDihpIgUElCIChFZmVpdG8gTXVsdGlwbGljYWRvcik6KioNCg0KRXhwb3J0YcOnw7VlcyBmb3J0ZXMgaW1wdWxzaW9uYW0gbyBQSUIgYXRyYXbDqXMgZGU6DQotICoqRWZlaXRvIGRpcmV0bzoqKiBFeHBvcnRhw6fDtWVzIHPDo28gY29tcG9uZW50ZSBkbyBQSUIgcGVsYSBpZGVudGlkYWRlIGNvbnTDoWJpbCAoUElCID0gQyArIEkgKyBHICsgWCAtIE0pDQotICoqRWZlaXRvIG11bHRpcGxpY2Fkb3I6KiogUmVjZWl0YXMgZGUgZXhwb3J0YcOnw6NvIGNpcmN1bGFtIG5hIGVjb25vbWlhLCBnZXJhbmRvIHJlbmRhIHBhcmEgcHJvZHV0b3JlcywgZW1wcmVnbyBubyB0cmFuc3BvcnRlL2xvZ8Otc3RpY2EsIGUgZGVtYW5kYSBwb3IgaW5zdW1vcw0KLSAqKkVudHJhZGEgZGUgZGl2aXNhczoqKiBEw7NsYXJlcyBkYXMgZXhwb3J0YcOnw7VlcyBmaW5hbmNpYW0gaW1wb3J0YcOnw7VlcyBkZSBiZW5zIGRlIGNhcGl0YWwgZSB0ZWNub2xvZ2lhLCBhdW1lbnRhbmRvIGNhcGFjaWRhZGUgcHJvZHV0aXZhDQoNCk5vIGVudGFudG8sIG8gZWZlaXRvIMOpICoqbGltaXRhZG8qKiBwb3JxdWU6DQotIEdyYW5kZSBwYXJ0ZSBkYXMgZXhwb3J0YcOnw7VlcyDDqSBjb25jZW50cmFkYSBlbSBwb3VjYXMgZW1wcmVzYXMgKFZhbGUsIFBldHJvYnJhcykgZSBjb21tb2RpdGllcyBkZSBiYWl4byB2YWxvciBhZ3JlZ2Fkbw0KLSBTZXRvcmVzIGV4cG9ydGFkb3JlcyBzw6NvIGNhcGl0YWwtaW50ZW5zaXZvcyAoYWdybywgbWluZXJhw6fDo28sIHBldHLDs2xlbyksIGdlcmFuZG8gbWVub3MgZW1wcmVnb3MgcG9yIGTDs2xhciBleHBvcnRhZG8gcXVlIG1hbnVmYXR1cmFzDQoNCioqUElCIOKGkiBFeHBvcnRhw6fDtWVzIChFZmVpdG8gQ2FwYWNpZGFkZSk6KioNCg0KTyBjcmVzY2ltZW50byBkbyBQSUIgdGFtYsOpbSBpbmZsdWVuY2lhIGFzIGV4cG9ydGHDp8O1ZXM6DQotICoqSW52ZXN0aW1lbnRvIGVtIGluZnJhZXN0cnV0dXJhOioqIFBJQiBtYWlzIGFsdG8gcGVybWl0ZSBpbnZlc3RpbWVudG9zIGVtIHBvcnRvcywgcm9kb3ZpYXMgZSBmZXJyb3ZpYXMsIHJlZHV6aW5kbyBjdXN0b3MgZGUgZXhwb3J0YcOnw6NvIChmcmV0ZSwgYXJtYXplbmFnZW0pDQotICoqQXVtZW50byBkYSBjYXBhY2lkYWRlIHByb2R1dGl2YToqKiBDcmVzY2ltZW50byBlY29uw7RtaWNvIHZpYWJpbGl6YSBleHBhbnPDo28gZGUgw6FyZWFzIGRlIHBsYW50aW8sIG5vdmFzIG1pbmFzLCBlIGV4cGxvcmHDp8OjbyBkZSBwZXRyw7NsZW8gZW0gw6FndWFzIHByb2Z1bmRhcw0KLSAqKkdhbmhvcyBkZSBwcm9kdXRpdmlkYWRlOioqIEVjb25vbWlhIG1haXMgZm9ydGUgcGVybWl0ZSBpbnZlc3RpbWVudG9zIGVtIFAmRCwgdGVjbm9sb2dpYSBhZ3LDrWNvbGEgKHNlbWVudGVzLCBkZWZlbnNpdm9zKSwgZSBhdXRvbWHDp8Ojbw0KDQpQb3LDqW0sIGV4aXN0ZSB1bSAqKnRyYWRlLW9mZiBwYXJjaWFsKio6DQotIFBJQiBhbHRvIOKGkiBtYWlvciBkZW1hbmRhIGludGVybmEg4oaSIG1lbm9zIHByb2R1dG8gZGlzcG9uw612ZWwgcGFyYSBleHBvcnRhw6fDo28gKGVzcGVjaWFsbWVudGUgcGFyYSBjb21tb2RpdGllcyBhZ3LDrWNvbGFzIGNvbW8gY2FybmUgZSBtaWxobyBxdWUgdMOqbSBtZXJjYWRvIGludGVybm8gcmVsZXZhbnRlKQ0KLSBQSUIgYWx0byDihpIgUmVhbCBtYWlzIGZvcnRlIOKGkiBtZW5vciBjb21wZXRpdGl2aWRhZGUgZGFzIGV4cG9ydGHDp8O1ZXMNCg0KKipQb3IgUXVlIGEgQ29ycmVsYcOnw6NvIE7Do28gw4kgUGVyZmVpdGE/KioNCg0KT2JzZXJ2YS1zZSBxdWUgYXMgY3VydmFzIG7Do28gc2UgbW92ZW0gZW0gc2luY3JvbmlhIHBlcmZlaXRhLiBNb21lbnRvcyBkZSBkZXNjb2xhbWVudG8gaW5jbHVlbToNCg0KMS4gKioyMDIxLTIwMjIgKERlc2NvbGFtZW50byBQb3NpdGl2byk6KiogRXhwb3J0YcOnw7VlcyBkaXNwYXJhbSBlbnF1YW50byBQSUIgY3Jlc2NlIG1vZGVyYWRhbWVudGUuIEV4cGxpY2HDp8OjbzogYm9vbSBkZSBwcmXDp29zIGRlIGNvbW1vZGl0aWVzIGJlbmVmaWNpYSBleHBvcnRhw6fDtWVzIHNlbSBnZXJhciBjcmVzY2ltZW50byBlY29uw7RtaWNvIHByb3BvcmNpb25hbCwgcG9pcyBzZXRvcmVzIGV4cG9ydGFkb3JlcyB0w6ptIGJhaXhvIGVmZWl0byBtdWx0aXBsaWNhZG9yIGRvbcOpc3RpY28uDQoNCjIuICoqMjAyNC0yMDI1IChEZXNjb2xhbWVudG8gTmVnYXRpdm8pOioqIEV4cG9ydGHDp8O1ZXMgcmVjdWFtIGVucXVhbnRvIFBJQiBzZSBtYW50w6ltLiBFeHBsaWNhw6fDo286IHF1ZWRhIGRlIHByZcOnb3MgaW50ZXJuYWNpb25haXMgYWZldGEgcmVjZWl0YSBkZSBleHBvcnRhw6fDo28sIG1hcyBlY29ub21pYSBkb23DqXN0aWNhIMOpIHN1c3RlbnRhZGEgcG9yIGNvbnN1bW8gaW50ZXJubyAoc2Fsw6FyaW8gbcOtbmltbyBlbSBhbHRhLCBiYWl4byBkZXNlbXByZWdvKSBlIHNlcnZpw6dvcy4NCg0KKipJbXBsaWNhw6fDtWVzIHBhcmEgUG9sw610aWNhIEVjb27DtG1pY2E6KioNCg0KQSBhbsOhbGlzZSBkYSByZWxhw6fDo28gUElCIMOXIEV4cG9ydGHDp8O1ZXMgcmV2ZWxhOg0KDQoxLiAqKkV4cG9ydGHDp8O1ZXMgU8OjbyBJbXBvcnRhbnRlcywgTWFzIE7Do28gU3VmaWNpZW50ZXM6KiogTyBjcmVzY2ltZW50byByb2J1c3RvIGRhcyBleHBvcnRhw6fDtWVzIGVtIDIwMjEtMjAyMyBuw6NvIHNlIHRyYWR1eml1IGVtIGNyZXNjaW1lbnRvIHByb3BvcmNpb25hbCBkbyBQSUIuIFBhcmEgZGVzZW52b2x2aW1lbnRvIHN1c3RlbnTDoXZlbCwgw6kgbmVjZXNzw6FyaW8gYWdyZWdhciB2YWxvciAoaW5kdXN0cmlhbGl6YcOnw6NvLCBtYW51ZmF0dXJhcykgZSBuw6NvIGFwZW5hcyBleHBvcnRhciBjb21tb2RpdGllcy4NCg0KMi4gKipWdWxuZXJhYmlsaWRhZGUgRXh0ZXJuYToqKiBBIGFsdGEgdm9sYXRpbGlkYWRlIGRhcyBleHBvcnRhw6fDtWVzIChjb21wYXJhZGEgYW8gUElCKSBleHDDtWUgbyBCcmFzaWwgYSBjaG9xdWVzIGV4dGVybm9zIChwcmXDp29zIGRlIGNvbW1vZGl0aWVzLCBkZW1hbmRhIGNoaW5lc2EpLiBEaXZlcnNpZmljYcOnw6NvIGRhIHBhdXRhIGV4cG9ydGFkb3JhIChtYWlzIG1hbnVmYXR1cmFzLCBtZW5vcyBjb21tb2RpdGllcykgcmVkdXppcmlhIGVzc2EgdnVsbmVyYWJpbGlkYWRlLg0KDQozLiAqKk5lY2Vzc2lkYWRlIGRlIEludmVzdGltZW50byBlbSBJbmZyYWVzdHJ1dHVyYToqKiBPIHBlcsOtb2RvIG1vc3RyYSBxdWUgbWVzbW8gY29tIGV4cG9ydGHDp8O1ZXMgcmVjb3JkZXMgKDIwMjEtMjAyMyksIGdhcmdhbG9zIGxvZ8Otc3RpY29zIGxpbWl0YW0gbyBwb3RlbmNpYWwuIEludmVzdGltZW50b3MgZW0gcG9ydG9zLCByb2RvdmlhcyBlIGZlcnJvdmlhcyBwb2RlcmlhbSB0cmFkdXppciBjYXBhY2lkYWRlIHByb2R1dGl2YSBlbSBleHBvcnRhw6fDtWVzIGVmZXRpdmFzLg0KDQo0LiAqKkNvbXBsZW1lbnRhcmlkYWRlLCBOw6NvIFN1YnN0aXR1acOnw6NvOioqIFBvbMOtdGljYXMgZGUgZXN0w61tdWxvIMOgcyBleHBvcnRhw6fDtWVzIGRldmVtIGNvbXBsZW1lbnRhciAobsOjbyBzdWJzdGl0dWlyKSBwb2zDrXRpY2FzIGRlIGZvcnRhbGVjaW1lbnRvIGRvIG1lcmNhZG8gaW50ZXJuby4gUGHDrXNlcyBkZXNlbnZvbHZpZG9zIGNyZXNjZW0gY29tIG1lcmNhZG9zIGRvbcOpc3RpY29zIGZvcnRlcyBFIHNldG9yZXMgZXhwb3J0YWRvcmVzIGNvbXBldGl0aXZvcy4NCg0KKipDb25jbHVzw6NvOioqDQoNCkEgcmVsYcOnw6NvIFBJQiDDlyBFeHBvcnRhw6fDtWVzIG5vIEJyYXNpbCBjYXJhY3Rlcml6YS1zZSBwb3IgKipjb21wbGVtZW50YXJpZGFkZSBhc3NpbcOpdHJpY2EqKjogZXhwb3J0YcOnw7VlcyBjcmVzY2VtIG1haXMgcmFwaWRhbWVudGUgcXVlIG8gUElCIGVtIHBlcsOtb2RvcyBkZSBib29tIGRlIGNvbW1vZGl0aWVzLCBtYXMgY29udHJpYnVlbSBtZW5vcyBwYXJhIG8gY3Jlc2NpbWVudG8gZWNvbsO0bWljbyBkb23DqXN0aWNvIGRvIHF1ZSBlbSBlY29ub21pYXMgbWFpcyBpbmR1c3RyaWFsaXphZGFzLiBQYXJhIHF1ZSBleHBvcnRhw6fDtWVzIHNlIHRyYWR1emFtIGVtIGRlc2Vudm9sdmltZW50byBzdXN0ZW50w6F2ZWwsIMOpIG5lY2Vzc8OhcmlvOiAoMSkgYWdyZWdhciB2YWxvciDDoCBwYXV0YSBleHBvcnRhZG9yYSwgKDIpIG1lbGhvcmFyIGluZnJhZXN0cnV0dXJhIGxvZ8Otc3RpY2EsIGUgKDMpIGZvcnRhbGVjZXIgZW5jYWRlYW1lbnRvcyBwcm9kdXRpdm9zIGRvbcOpc3RpY29zIGRvcyBzZXRvcmVzIGV4cG9ydGFkb3Jlcy4NCg0KIyMgSW1wYWN0b3Mgbm9zIHByb2R1dG9zIGFncsOtY29sYXMNCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIC0tLUdSQUZJQ08NCiMgNi4gQU7DgUxJU0UgRE9TIFBSSU5DSVBBSVMgUFJPRFVUT1MgRVhQT1JUQURPUw0KIyBQcmVwYXJhciBkYWRvcw0KZGFkb3NfZXhwIDwtIGRhdGEuZnJhbWUoDQogIEFubyA9IGMoMjAyMiwgMjAyMiwgMjAyMiwgDQogICAgICAgICAgMjAyMywgMjAyMywgMjAyMywNCiAgICAgICAgICAyMDI0LCAyMDI0LCAyMDI0LA0KICAgICAgICAgIDIwMjUsIDIwMjUsIDIwMjUpLA0KICBQcm9kdXRvID0gYygNCiAgICAiU29qYSwgbWVzbW8gdHJpdHVyYWRhIiwgDQogICAgIsOTbGVvcyBicnV0b3MgZGUgcGV0csOzbGVvIiwgDQogICAgIk1pbsOpcmlvcyBkZSBmZXJybyIsDQogICAgIlNvamEsIG1lc21vIHRyaXR1cmFkYSIsIA0KICAgICLDk2xlb3MgYnJ1dG9zIGRlIHBldHLDs2xlbyIsIA0KICAgICJNaW7DqXJpb3MgZGUgZmVycm8iLA0KICAgICJTb2phLCBtZXNtbyB0cml0dXJhZGEiLCANCiAgICAiw5NsZW9zIGJydXRvcyBkZSBwZXRyw7NsZW8iLCANCiAgICAiTWluw6lyaW9zIGRlIGZlcnJvIiwNCiAgICAiU29qYSwgbWVzbW8gdHJpdHVyYWRhIiwgDQogICAgIsOTbGVvcyBicnV0b3MgZGUgcGV0csOzbGVvIiwgDQogICAgIk1pbsOpcmlvcyBkZSBmZXJybyINCiAgKSwNCiAgVmFsb3IgPSBjKA0KICAgIDQ2NTU4NTM5ODE0LCA0MjU1Mzc2NTQ3NiwgMjY5MjQzNDc1MDEsDQogICAgNTMyNDQ2MTk0MjcsIDQyNjExMTQ4NTk3LCAzMDU5MzQzODk4OCwNCiAgICA0Mjk0OTc2MzUyMiwgNDQ5NjQyODUyMzAsIDI5ODYwMTg1OTc4LA0KICAgIDM3MzUyODkxNzIxLCAzMzM4MzUwNjM5MCwgMjA0NDI4NjQ0MjYNCiAgKQ0KKQ0KIyBDb252ZXJ0ZXIgdmFsb3JlcyBwYXJhIGJpbGjDtWVzDQpkYWRvc19leHAgPC0gZGFkb3NfZXhwICU+JQ0KICBtdXRhdGUoVmFsb3JfQmlsaG9lcyA9IFZhbG9yIC8gMWU5KQ0KIyBDcmlhciBncsOhZmljbyBkZSBiYXJyYXMgYWdydXBhZGFzIGludGVyYXRpdm8NCmZpZ19wcm9kdXRvc19leHAgPC0gcGxvdF9seShkYWRvc19leHAsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggPSB+QW5vLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gflZhbG9yX0JpbGhvZXMsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gflByb2R1dG8sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICJiYXIiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9ycyA9IGMoIiMwMjAyM0MiLCAiI0ZFQjAxNSIsICIjOEI5REMzIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IH5wYXN0ZTAoIlVTJCAiLCBmb3JtYXQocm91bmQoVmFsb3JfQmlsaG9lcywgMSksIG5zbWFsbCA9IDEpLCAiQiIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRwb3NpdGlvbiA9ICJvdXRzaWRlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3ZlcnRlbXBsYXRlID0gIjxiPiV7eH08L2I+PGJyPiV7ZnVsbERhdGEubmFtZX08YnI+VVMkICV7eTouMmZ9IGJpbGjDtWVzPGV4dHJhPjwvZXh0cmE+IikgJT4lDQogIHBsb3RseTo6bGF5b3V0KA0KICAgIHRpdGxlID0gbGlzdCgNCiAgICAgIHRleHQgPSAiUHJpbmNpcGFpcyBQcm9kdXRvcyBFeHBvcnRhZG9zIHBlbG8gQnJhc2lsICgyMDIyLTIwMjUpPGJyPjxzdWI+VG9wIDMgcHJvZHV0b3MgcG9yIGFubzwvc3ViPiIsDQogICAgICBmb250ID0gbGlzdChzaXplID0gMTYsIGNvbG9yID0gIiMwMjAyM0MiKQ0KICAgICksDQogICAgeGF4aXMgPSBsaXN0KA0KICAgICAgdGl0bGUgPSAiQW5vIiwNCiAgICAgIHRpY2ttb2RlID0gImxpbmVhciIsDQogICAgICBkdGljayA9IDEsDQogICAgICBncmlkY29sb3IgPSAicmdiYSgwLDAsMCwwLjEpIg0KICAgICksDQogICAgeWF4aXMgPSBsaXN0KA0KICAgICAgdGl0bGUgPSAiVmFsb3IgRXhwb3J0YWRvIChVUyQgQmlsaMO1ZXMpIiwNCiAgICAgIGdyaWRjb2xvciA9ICJyZ2JhKDAsMCwwLDAuMSkiDQogICAgKSwNCiAgICBiYXJtb2RlID0gImdyb3VwIiwNCiAgICBsZWdlbmQgPSBsaXN0KA0KICAgICAgdGl0bGUgPSBsaXN0KHRleHQgPSAiUHJvZHV0b3MiKSwNCiAgICAgIG9yaWVudGF0aW9uID0gImgiLA0KICAgICAgeCA9IDAuNSwNCiAgICAgIHhhbmNob3IgPSAiY2VudGVyIiwNCiAgICAgIHkgPSAtMC4yNQ0KICAgICksDQogICAgbWFyZ2luID0gbGlzdCh0ID0gMTAwLCBiID0gMTQwLCBsID0gODAsIHIgPSA4MCksDQogICAgcGxvdF9iZ2NvbG9yID0gInJnYmEoMjQwLDI0MCwyNDAsMC4yKSIsDQogICAgYW5ub3RhdGlvbnMgPSBsaXN0KA0KICAgICAgbGlzdCgNCiAgICAgICAgeCA9IDAsIHkgPSAtMC41LCB4cmVmID0gInBhcGVyIiwgeXJlZiA9ICJwYXBlciIsDQogICAgICAgIHhhbmNob3IgPSAibGVmdCIsIHlhbmNob3IgPSAidG9wIiwgc2hvd2Fycm93ID0gRkFMU0UsDQogICAgICAgIHRleHQgPSAiRm9udGU6IENvbWV4IFN0YXQgKERhZG9zIGRlIGV4cG9ydGHDp8OjbyBicmFzaWxlaXJhKSIsDQogICAgICAgIGZvbnQgPSBsaXN0KHNpemUgPSAxMCwgY29sb3IgPSAiZ3JheTQwIikNCiAgICAgICkNCiAgICApDQogICkNCmZpZ19wcm9kdXRvc19leHANCg0KYGBgDQoNCkEgYW7DoWxpc2UgZGEgZXZvbHXDp8OjbyBkb3MgdHLDqnMgcHJpbmNpcGFpcyBwcm9kdXRvcyBleHBvcnRhZG9zIHBlbG8gQnJhc2lsIGVudHJlIDIwMjIgZSAyMDI1IHJldmVsYSBwYWRyw7VlcyBkaXN0aW50b3MgcXVlIHJlZmxldGVtIHRhbnRvIGEgdm9sYXRpbGlkYWRlIGRvcyBtZXJjYWRvcyBkZSBjb21tb2RpdGllcyBxdWFudG8gbyBpbXBhY3RvIGRhcyB2YXJpYcOnw7VlcyBjYW1iaWFpcy4gQSAqKnNvamEqKiBtYW50w6ltLXNlIGNvbnNpc3RlbnRlbWVudGUgY29tbyBvIHByb2R1dG8gbWFpcyBleHBvcnRhZG8sIGNvbSBwaWNvIGVtIDIwMjMgKFVTJCA1MywyIGJpbGjDtWVzKSBkZXZpZG8gw6AgY29tYmluYcOnw6NvIGRlIHNhZnJhIHJlY29yZGUgZSBwcmXDp29zIGludGVybmFjaW9uYWlzIGVsZXZhZG9zLiBFbSAyMDI0IGUgMjAyNSwgb2JzZXJ2YS1zZSByZXRyYcOnw6NvIG5vcyB2YWxvcmVzIGV4cG9ydGFkb3MgKFVTJCA0Miw5IGJpIGUgVVMkIDM3LDQgYmkgcmVzcGVjdGl2YW1lbnRlKSwgcmVmbGV4byBkYSBxdWVkYSBub3MgcHJlw6dvcyBpbnRlcm5hY2lvbmFpcyBkYSBjb21tb2RpdHkgZSBkZSBjb25kacOnw7VlcyBjbGltw6F0aWNhcyBtZW5vcyBmYXZvcsOhdmVpcy4NCg0KTyAqKnBldHLDs2xlbyBicnV0byoqIGFwcmVzZW50YSByZWxhdGl2YSBlc3RhYmlsaWRhZGUsIG9zY2lsYW5kbyBlbnRyZSBVUyQgMzMgYmlsaMO1ZXMgZSBVUyQgNDUgYmlsaMO1ZXMgbm8gcGVyw61vZG8uIEVzc2EgZXN0YWJpbGlkYWRlIGRlY29ycmUgZG8gZmF0byBkZSBxdWUgb3MgcHJlw6dvcyBkbyBwZXRyw7NsZW8gc8OjbyBkZXRlcm1pbmFkb3MgcG9yIGZhdG9yZXMgZ2VvcG9sw610aWNvcyBnbG9iYWlzIChkZWNpc8O1ZXMgZGEgT1BFUCssIHNhbsOnw7VlcyBpbnRlcm5hY2lvbmFpcywgY3Jlc2NpbWVudG8gZWNvbsO0bWljbyBtdW5kaWFsKSBlIG7Do28gcGVsYSB0YXhhIGRlIGPDom1iaW8gYnJhc2lsZWlyYS4gTyAqKm1pbsOpcmlvIGRlIGZlcnJvKiogc2VndWUgdHJhamV0w7NyaWEgZGVzY2VuZGVudGUgYW8gbG9uZ28gZG8gcGVyw61vZG8sIHBhcnRpbmRvIGRlIFVTJCAyNiw5IGJpbGjDtWVzIGVtIDIwMjIgcGFyYSBVUyQgMjAsNCBiaWxow7VlcyBlbSAyMDI1LCBlbSBncmFuZGUgcGFydGUgZGV2aWRvIMOgIGRlc2FjZWxlcmHDp8OjbyBkYSBlY29ub21pYSBjaGluZXNhIGUgcmVkdcOnw6NvIG5hIGRlbWFuZGEgcG9yIGHDp28uDQoNCiMjIyBNYXJzaGFsbC1MZXJuZXIgZSBhcyBEaWZlcmVudGVzIFNlbnNpYmlsaWRhZGVzIENhbWJpYWlzDQoNCkEgKipDb25kacOnw6NvIGRlIE1hcnNoYWxsLUxlcm5lcioqIGVzdGFiZWxlY2UgcXVlIHVtYSBkZXN2YWxvcml6YcOnw6NvIGNhbWJpYWwgbWVsaG9yYSBvIHNhbGRvIGRhIGJhbGFuw6dhIGNvbWVyY2lhbCBxdWFuZG8gYSBzb21hIGRhcyBlbGFzdGljaWRhZGVzLXByZcOnbyBkYSBkZW1hbmRhIHBvciBleHBvcnRhw6fDtWVzIGUgaW1wb3J0YcOnw7VlcyDDqSBtYWlvciBxdWUgMSAoZW0gdmFsb3JlcyBhYnNvbHV0b3MpLiBObyBlbnRhbnRvLCBlc3NhIGNvbmRpw6fDo28gc2UgbWFuaWZlc3RhIGRlIGZvcm1hcyAqKnJhZGljYWxtZW50ZSBkaWZlcmVudGVzKiogZW50cmUgY29tbW9kaXRpZXMgYWdyw61jb2xhcyBlIGNvbW1vZGl0aWVzIG1pbmVyYWlzL3BldHLDs2xlbyBleHBvcnRhZGFzIHBlbG8gQnJhc2lsLg0KDQoqKlBhcmEgY29tbW9kaXRpZXMgYWdyw61jb2xhcyAoc29qYSwgY2Fmw6ksIG1pbGhvLCBjYXJuZXMsIGHDp8O6Y2FyKToqKg0KDQpBIGRlc3ZhbG9yaXphw6fDo28gZG8gUmVhbCBhZmV0YSAqKnRhbnRvIG8gcHJlw6dvIHF1YW50byBhIHF1YW50aWRhZGUgZGVtYW5kYWRhKiogZGVzc2VzIHByb2R1dG9zIG5vIG1lcmNhZG8gaW50ZXJuYWNpb25hbC4gUXVhbmRvIG8gUmVhbCBzZSBkZXByZWNpYSwgb3MgcHJvZHV0b3MgYWdyw61jb2xhcyBicmFzaWxlaXJvcyB0b3JuYW0tc2UgbWFpcyBiYXJhdG9zIGVtIGTDs2xhcmVzIHBhcmEgb3MgY29tcHJhZG9yZXMgaW50ZXJuYWNpb25haXMgKGVmZWl0byBwcmXDp28pLCBvIHF1ZSBlc3RpbXVsYSBvIGF1bWVudG8gZGEgZGVtYW5kYSBleHRlcm5hIChlZmVpdG8gcXVhbnRpZGFkZSkuIElzc28gb2NvcnJlIHBvcnF1ZSBleGlzdGUgKipzdWJzdGl0dXRpYmlsaWRhZGUqKiBlbnRyZSBvcmlnZW5zOiBzb2phIGJyYXNpbGVpcmEgY29tcGV0ZSBkaXJldGFtZW50ZSBjb20gc29qYSBhbWVyaWNhbmEgZSBhcmdlbnRpbmE7IGNhZsOpIGJyYXNpbGVpcm8gY29tcGV0ZSBjb20gY29sb21iaWFubyBlIHZpZXRuYW1pdGE7IGNhcm5lIGJvdmluYSBicmFzaWxlaXJhIGNvbXBldGUgY29tIGF1c3RyYWxpYW5hIGUgYW1lcmljYW5hLg0KDQpBICoqZWxhc3RpY2lkYWRlLXByZcOnbyBkYSBkZW1hbmRhKiogcGFyYSBwcm9kdXRvcyBhZ3LDrWNvbGFzIGJyYXNpbGVpcm9zIMOpIHJlbGF0aXZhbWVudGUgYWx0YSAoZW50cmUgLTAsNiBlIC0xLDIsIHNlZ3VuZG8gZXN0dWRvcyBkbyBDRVBFQSksIG8gcXVlIHNpZ25pZmljYSBxdWUgdW1hIHJlZHXDp8OjbyBkZSAxMCUgbm8gcHJlw6dvIChkZWNvcnJlbnRlIGRhIGRlc3ZhbG9yaXphw6fDo28gY2FtYmlhbCkgcG9kZSBhdW1lbnRhciBhIHF1YW50aWRhZGUgZGVtYW5kYWRhIGVudHJlIDYlIGUgMTIlLiBQb3J0YW50bywgYSAqKkNvbmRpw6fDo28gZGUgTWFyc2hhbGwtTGVybmVyIMOpIHBsZW5hbWVudGUgc2F0aXNmZWl0YSoqIG5vIGFncm9uZWfDs2NpbzogYSBkZXN2YWxvcml6YcOnw6NvIGNhbWJpYWwgYXVtZW50YSB0YW50byBhIHJlY2VpdGEgZW0gUmVhaXMgKGVmZWl0byBwcmXDp28gaW1lZGlhdG8pIHF1YW50byBvIHZvbHVtZSBleHBvcnRhZG8gKGVmZWl0byBxdWFudGlkYWRlIHJldGFyZGFkbykuDQoNCioqUGFyYSBjb21tb2RpdGllcyBtaW5lcmFpcyBlIHBldHLDs2xlbyAobWluw6lyaW8gZGUgZmVycm8sIHBldHLDs2xlbyBicnV0byk6KioNCg0KQSBkaW7Dom1pY2Egw6kgY29tcGxldGFtZW50ZSBkaWZlcmVudGUuIE9zIHByZcOnb3MgZGVzc2FzIGNvbW1vZGl0aWVzIHPDo28gKipkZXRlcm1pbmFkb3MgcG9yIGZhdG9yZXMgZ2VvcG9sw610aWNvcyBlIGFjb3Jkb3MgaW50ZXJuYWNpb25haXMqKiwgbsOjbyBwZWxhIGNvbXBldGl0aXZpZGFkZSBjYW1iaWFsLiBPIHByZcOnbyBkbyBwZXRyw7NsZW8gw6kgZml4YWRvIHBlbGEgT1BFUCsgZSBwZWxvcyBtZXJjYWRvcyBmdXR1cm9zIChCcmVudCwgV1RJKTsgbyBwcmXDp28gZG8gbWluw6lyaW8gZGUgZmVycm8gw6kgZGV0ZXJtaW5hZG8gcGVsYSBkZW1hbmRhIGNoaW5lc2EgZSBwZWxhcyBuZWdvY2lhw6fDtWVzIGVtIGJvbHNhcyBhc2nDoXRpY2FzIChEYWxpYW4sIFNpbmdhcHVyYSkuDQoNCk5lc3NlIGNhc28sIHVtYSBkZXN2YWxvcml6YcOnw6NvIGRvIFJlYWwgKipuw6NvIGFsdGVyYSBvIHByZcOnbyBlbSBkw7NsYXJlcyoqIGRlc3NlcyBwcm9kdXRvcyBubyBtZXJjYWRvIGludGVybmFjaW9uYWwuIE8gbWluw6lyaW8gZGUgZmVycm8gYnJhc2lsZWlybyBjb250aW51YXLDoSBzZW5kbyB2ZW5kaWRvIGFvIG1lc21vIHByZcOnbyBxdWUgbyBhdXN0cmFsaWFubzsgbyBwZXRyw7NsZW8gYnJhc2lsZWlybyBzZWd1aXLDoSBjb3RhZG8gYW8gcHJlw6dvIGRvIEJyZW50LiBPIHF1ZSBtdWRhIMOpIGFwZW5hcyBhICoqY29udmVyc8OjbyBkYSByZWNlaXRhIHBhcmEgUmVhaXMqKjogcXVhbmRvIG8gZMOzbGFyIHNvYmUsIGEgUGV0cm9icmFzIGUgYSBWYWxlIHJlY2ViZW0gbWFpcyBSZWFpcyBwb3IgYmFycmlsIG91IHBvciB0b25lbGFkYSBleHBvcnRhZGEsIG1hcyAqKmEgcXVhbnRpZGFkZSBleHBvcnRhZGEgbsOjbyBzZSBhbHRlcmEqKiBlbSByZXNwb3N0YSBhbyBjw6JtYmlvLg0KDQpBcXVpLCBhICoqQ29uZGnDp8OjbyBkZSBNYXJzaGFsbC1MZXJuZXIgbsOjbyBzZSBhcGxpY2EgZGEgbWVzbWEgZm9ybWEqKiwgcG9pcyBhIGVsYXN0aWNpZGFkZS1wcmXDp28gZGEgZGVtYW5kYSBlbSByZWxhw6fDo28gYW8gY8OibWJpbyBicmFzaWxlaXJvIMOpIHByw7N4aW1hIGRlICoqemVybyoqLiBBIENoaW5hIG7Do28gY29tcHJhIG1haXMgbWluw6lyaW8gZGUgZmVycm8gZG8gQnJhc2lsIHBvcnF1ZSBvIFJlYWwgc2UgZGVzdmFsb3Jpem91IOKAkyBlbGEgY29tcHJhIHBlbGEgbmVjZXNzaWRhZGUgZGUgYWJhc3RlY2VyIHN1YSBpbmTDunN0cmlhIHNpZGVyw7pyZ2ljYS4gT3Mgdm9sdW1lcyBleHBvcnRhZG9zIGRlcGVuZGVtIGRlIGNhcGFjaWRhZGUgcHJvZHV0aXZhLCBjb250cmF0b3MgZGUgbG9uZ28gcHJhem8gZSBkZW1hbmRhIGdsb2JhbCwgbsOjbyBkZSBmbHV0dWHDp8O1ZXMgY2FtYmlhaXMuDQoNCkVzdHVkb3MgZWNvbm9tw6l0cmljb3Mgc29icmUgZWxhc3RpY2lkYWRlcyBkYXMgZXhwb3J0YcOnw7VlcyBicmFzaWxlaXJhcyBjb25maXJtYW0gZXNzYSBkaXN0aW7Dp8Ojby4gUGVzcXVpc2FzIHB1YmxpY2FkYXMgbmEgbGl0ZXJhdHVyYSBlc3BlY2lhbGl6YWRhIG1vc3RyYW0gcXVlIHByb2R1dG9zIGFncsOtY29sYXMgdGVuZGVtIGEgYXByZXNlbnRhciBlbGFzdGljaWRhZGVzLXByZcOnbyBtYWlzIGVsZXZhZGFzLCBlbnF1YW50byBwcm9kdXRvcyBtaW5lcmFpcyBlIHBldHLDs2xlbyBhcHJlc2VudGFtIGVsYXN0aWNpZGFkZXMgcHLDs3hpbWFzIGRlIHplcm8gb3UgZXN0YXRpc3RpY2FtZW50ZSBuw6NvIHNpZ25pZmljYXRpdmFzLCBjb3Jyb2JvcmFuZG8gYSB0ZXNlIGRlIHF1ZSBvIGPDom1iaW8gYWZldGEgZXNzZXMgc2V0b3JlcyBkZSBtYW5laXJhcyBmdW5kYW1lbnRhbG1lbnRlIGRpZmVyZW50ZXMuDQoNCiMjIyBJbXBsaWNhw6fDtWVzIFByw6F0aWNhcyBwYXJhIG8gQWdyb25lZ8OzY2lvDQoNCkVzc2EgZGlzdGluw6fDo28gdGVtICoqaW1wbGljYcOnw7VlcyBjcnVjaWFpcyoqIHBhcmEgYSBjb21wcmVlbnPDo28gZG8gaW1wYWN0byBjYW1iaWFsIG5vIGFncm9uZWfDs2NpbyBicmFzaWxlaXJvOg0KDQoxLiAqKk5vIGFncm9uZWfDs2NpbywgbyBjw6JtYmlvIMOpIHVtIGluc3RydW1lbnRvIGRlIGNvbXBldGl0aXZpZGFkZToqKiBBIGRlc3ZhbG9yaXphw6fDo28gZG8gUmVhbCB0b3JuYSBvcyBwcm9kdXRvcyBicmFzaWxlaXJvcyBtYWlzIGNvbXBldGl0aXZvcywgYXVtZW50YW5kbyBtYXJrZXQgc2hhcmUgZSB2b2x1bWVzIGV4cG9ydGFkb3MgYW8gbG9uZ28gZG8gdGVtcG8gKGFww7NzIGEgZGVmYXNhZ2VtIHTDrXBpY2EgZGUgMyBhIDYgbWVzZXMpLg0KDQoyLiAqKk5vIHBldHLDs2xlbyBlIG1pbsOpcmlvLCBvIGPDom1iaW8gw6kgYXBlbmFzIHVtIGNvbnZlcnNvciBkZSByZWNlaXRhOioqIEEgUGV0cm9icmFzIGUgYSBWYWxlIHNlIGJlbmVmaWNpYW0gZGEgYWx0YSBkbyBkw7NsYXIgZXhjbHVzaXZhbWVudGUgcGVsYSBjb252ZXJzw6NvIGZhdm9yw6F2ZWwgcGFyYSBSZWFpcywgbsOjbyBwb3IgYXVtZW50byBkZSBkZW1hbmRhIG91IHZvbHVtZXMuDQoNCjMuICoqTyBlZmVpdG8gcXVhbnRpZGFkZSDDqSBlc3NlbmNpYWwgbm8gYWdyb25lZ8OzY2lvOioqIERpZmVyZW50ZW1lbnRlIGRvIHBldHLDs2xlby9taW7DqXJpbywgb25kZSBvIGVmZWl0byDDqSBwdXJhbWVudGUgY29udMOhYmlsLCBubyBhZ3JvbmVnw7NjaW8gaMOhIHVtIGVmZWl0byBlY29uw7RtaWNvIHJlYWw6IG1haXMgaGVjdGFyZXMgcGxhbnRhZG9zLCBtYWlzIGludmVzdGltZW50byBlbSBwcm9kdXRpdmlkYWRlLCBtYWlzIGVtcHJlZ29zIG5vIGNhbXBvLCBtYWlzIHJlbmRhIGRpc3RyaWJ1w61kYSBuYSBjYWRlaWEgcHJvZHV0aXZhLg0KDQpQb3J0YW50bywgcXVhbmRvIGFuYWxpc2Ftb3MgbyBpbXBhY3RvIGRvIGPDom1iaW8gbmFzIGV4cG9ydGHDp8O1ZXMgYnJhc2lsZWlyYXMsICoqbyBzZXRvciBxdWUgZ2VudWluYW1lbnRlIHNlIGJlbmVmaWNpYSBkYSBDb25kacOnw6NvIGRlIE1hcnNoYWxsLUxlcm5lciDDqSBvIGFncm9uZWfDs2NpbyoqLiDDiSBhcXVpIHF1ZSBhIGRlc3ZhbG9yaXphw6fDo28gY2FtYmlhbCBzZSB0cmFkdXogZW0gdmFudGFnZW0gY29tcGV0aXRpdmEgcmVhbCwgbWFpb3IgcGFydGljaXBhw6fDo28gbm8gbWVyY2FkbyBnbG9iYWwgZSBleHBhbnPDo28gZGEgYXRpdmlkYWRlIGVjb27DtG1pY2EuIE5vcyBkZW1haXMgc2V0b3JlcyAocGV0csOzbGVvIGUgbWluw6lyaW8pLCBvIGJlbmVmw61jaW8gw6kgZmluYW5jZWlybyBlIHJlc3RyaXRvIGFvcyBncmFuZGVzIGV4cG9ydGFkb3Jlcywgc2VtIG9zIGVmZWl0b3MgbXVsdGlwbGljYWRvcmVzIHTDrXBpY29zIGRvIGFncm9uZWfDs2Npby4NCg0KIyMjIEEgQ29uZGnDp8OjbyBkZSBNYXJzaGFsbC1MZXJuZXIgZSBvcyBFZmVpdG9zIGRhIERlc3ZhbG9yaXphw6fDo28gQ2FtYmlhbA0KDQpBIHJlbGHDp8OjbyBlbnRyZSBjw6JtYmlvIGUgZXhwb3J0YcOnw7VlcyBubyBhZ3JvbmVnw7NjaW8gYnJhc2lsZWlybyBwb2RlIHNlciBhbmFsaXNhZGEgYXRyYXbDqXMgZGEgKipDb25kacOnw6NvIGRlIE1hcnNoYWxsLUxlcm5lcioqLCBxdWUgZXN0YWJlbGVjZSBxdWUgdW1hIGRlc3ZhbG9yaXphw6fDo28gY2FtYmlhbCBtZWxob3JhIG8gc2FsZG8gZGEgYmFsYW7Dp2EgY29tZXJjaWFsIHNlIGEgc29tYSBkYXMgZWxhc3RpY2lkYWRlcy1wcmXDp28gZGEgZGVtYW5kYSBwb3IgZXhwb3J0YcOnw7VlcyBlIGltcG9ydGHDp8O1ZXMgZm9yIG1haW9yIHF1ZSAxIChlbSB2YWxvcmVzIGFic29sdXRvcykuDQoNCk5vIGNhc28gZXNwZWPDrWZpY28gZG8gYWdyb25lZ8OzY2lvIGJyYXNpbGVpcm8sIGVzc2EgY29uZGnDp8OjbyBhcHJlc2VudGEgY2FyYWN0ZXLDrXN0aWNhcyBwYXJ0aWN1bGFyZXM6DQoNCioqRWZlaXRvIFByZcOnbyAoY3VydG8gcHJhem8pOioqIFF1YW5kbyBvIFJlYWwgc2UgZGVzdmFsb3JpemEsIG9zIHByb2R1dG9zIGFncsOtY29sYXMgYnJhc2lsZWlyb3MgdG9ybmFtLXNlIGltZWRpYXRhbWVudGUgbWFpcyBiYXJhdG9zIG5vIG1lcmNhZG8gaW50ZXJuYWNpb25hbC4gUGFyYSBjb21tb2RpdGllcyBjb20gZGVtYW5kYSByZWxhdGl2YW1lbnRlIGluZWzDoXN0aWNhIG5vIGN1cnRvIHByYXpvIChjb21vIHNvamEsIGNhZsOpIGUgY2FybmVzKSwgZXNzZSBlZmVpdG8gcHJlw6dvIHNlIHRyYWR1eiByYXBpZGFtZW50ZSBlbSBhdW1lbnRvIGRhIHJlY2VpdGEgZGUgZXhwb3J0YcOnw6NvIGVtIFJlYWlzLCBtZXNtbyBxdWUgbyB2b2x1bWUgZXhwb3J0YWRvIG7Do28gc2UgYWx0ZXJlIHNpZ25pZmljYXRpdmFtZW50ZS4gRXNzZSDDqSBvIG1vdGl2byBwZWxvIHF1YWwgcHJvZHV0b3JlcyBydXJhaXMgZXhwZXJpbWVudGFtIGdhbmhvcyBpbWVkaWF0b3MgY29tIGEgYWx0YSBkbyBkw7NsYXIuDQoNCioqRWZlaXRvIFF1YW50aWRhZGUgKG3DqWRpby9sb25nbyBwcmF6byk6KiogQ29tIG8gdGVtcG8sIGEgbWFpb3IgY29tcGV0aXRpdmlkYWRlIGRvcyBwcm9kdXRvcyBicmFzaWxlaXJvcyBlc3RpbXVsYSBhdW1lbnRvIG5vcyB2b2x1bWVzIGV4cG9ydGFkb3MuIE5vIGVudGFudG8sIGVzc2UgZWZlaXRvIMOpIHJldGFyZGFkbyBwb3IgcXVlc3TDtWVzIGxvZ8Otc3RpY2FzIChjYXBhY2lkYWRlIHBvcnR1w6FyaWEsIGRpc3BvbmliaWxpZGFkZSBkZSB0cmFuc3BvcnRlKSwgY2ljbG9zIHByb2R1dGl2b3MgKHNhZnJhIG7Do28gc2UgYWx0ZXJhIGltZWRpYXRhbWVudGUpIGUgY29udHJhdG9zIGRlIGxvbmdvIHByYXpvIGrDoSBlc3RhYmVsZWNpZG9zLiBBZGljaW9uYWxtZW50ZSwgYSByZXNwb3N0YSBkYSBxdWFudGlkYWRlIGVzdMOhIHN1amVpdGEgw6AgZWxhc3RpY2lkYWRlIGRhIG9mZXJ0YSBhZ3LDrWNvbGEsIHF1ZSBkZXBlbmRlIGRlIMOhcmVhIHBsYW50YWRhLCBwcm9kdXRpdmlkYWRlIGUgY2xpbWEuDQoNCioqTyBEaWxlbWEgZGEgQ3VydmEgSiBubyBBZ3JvbmVnw7NjaW86KiogQSBsaXRlcmF0dXJhIGVjb27DtG1pY2EgaWRlbnRpZmljYSBxdWUsIGluaWNpYWxtZW50ZSwgdW1hIGRlc3ZhbG9yaXphw6fDo28gcG9kZSBhdMOpIHBpb3JhciBvIHNhbGRvIGNvbWVyY2lhbCAoZmVuw7RtZW5vIGRhIEN1cnZhIEopLCBwb2lzIG9zIHZvbHVtZXMgZGUgY3VydG8gcHJhem8gc8OjbyByw61naWRvcyBlbnF1YW50byBvcyBwcmXDp29zIGVtIG1vZWRhIGRvbcOpc3RpY2EgZG9zIGluc3Vtb3MgaW1wb3J0YWRvcyBzb2JlbSBpbWVkaWF0YW1lbnRlLiBObyBhZ3JvbmVnw7NjaW8gYnJhc2lsZWlybywgZXNzYSBkaW7Dom1pY2Egw6kgcGFydGljdWxhcm1lbnRlIHByb251bmNpYWRhOiBlbnF1YW50byBhIHJlY2VpdGEgZW0gUmVhaXMgc29iZSByYXBpZGFtZW50ZSAoZWZlaXRvIHByZcOnbyBuYXMgZXhwb3J0YcOnw7VlcyksIG9zIGN1c3RvcyBjb20gZmVydGlsaXphbnRlcyBpbXBvcnRhZG9zIGUgZGllc2VsIHRhbWLDqW0gYXVtZW50YW0gbmEgbWVzbWEgdmVsb2NpZGFkZSwgY29tcHJpbWluZG8gbWFyZ2Vucy4gU29tZW50ZSBhcMOzcyBhbGd1bnMgbWVzZXMsIHF1YW5kbyBhIHByb2R1w6fDo28gc2UgYWp1c3RhIGUgb3Mgdm9sdW1lcyBleHBvcnRhZG9zIGF1bWVudGFtIChlZmVpdG8gcXVhbnRpZGFkZSksIG8gYmVuZWbDrWNpbyBsw61xdWlkbyBkYSBkZXN2YWxvcml6YcOnw6NvIHNlIGNvbnNvbGlkYS4NCg0KKipFdmlkw6puY2lhcyBFbXDDrXJpY2FzOioqIEVzdHVkb3MgZG8gQ0VQRUEgKDIwMjQpIGRlbW9uc3RyYW0gY29ycmVsYcOnw6NvIHBvc2l0aXZhIGVudHJlIGRlc3ZhbG9yaXphw6fDo28gY2FtYmlhbCBlIGV4cG9ydGHDp8O1ZXMgYWdyw61jb2xhcywgbWFzIGNvbSBkZWZhc2FnZW0gbcOpZGlhIGRlIDMgYSA2IG1lc2VzIHBhcmEgY29tbW9kaXRpZXMgY29tbyBzb2phLiBBIGVsYXN0aWNpZGFkZS1wcmXDp28gZGEgZGVtYW5kYSBleHRlcm5hIHBvciBwcm9kdXRvcyBhZ3LDrWNvbGFzIGJyYXNpbGVpcm9zIMOpIGVzdGltYWRhIGVudHJlIC0wLDYgZSAtMSwyLCBkZXBlbmRlbmRvIGRvIHByb2R1dG8sIG8gcXVlIHN1Z2VyZSBxdWUgYSBDb25kacOnw6NvIGRlIE1hcnNoYWxsLUxlcm5lciB0ZW5kZSBhIHNlciBzYXRpc2ZlaXRhIG5vIG3DqWRpbyBwcmF6byBwYXJhIG8gYWdyb25lZ8OzY2lvIGJyYXNpbGVpcm8sIGVzcGVjaWFsbWVudGUgY29uc2lkZXJhbmRvIGEgYmFpeGEgZWxhc3RpY2lkYWRlIGRhcyBpbXBvcnRhw6fDtWVzIGRlIGluc3Vtb3MgZXNzZW5jaWFpcyAocHLDs3hpbWEgZGUgemVybyBubyBjdXJ0byBwcmF6byBkZXZpZG8gw6AgZGVwZW5kw6puY2lhIGVzdHJ1dHVyYWwpLg0KDQojIyMgQ29ycmVsYcOnw6NvIGVudHJlIFRheGEgZGUgQ8OibWJpbywgUHJlw6dvIGRhIFNvamEgZSBFeHBvcnRhw6fDtWVzOiBVbWEgQW7DoWxpc2UgTXVsdGl2YXJpYWRhDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQojIC0tLSBEQURPUzogcHJlw6dvcyBkYSBzb2phIChlbSBVUyQgcG9yIGJ1c2hlbCkgZGVzZGUgamFuLzIwMTUgLS0tDQpwcmVjb191c2RfdmV0b3IgPC0gYygNCiAgMjMuMjAsMjIuNjIsMjEuNjEsMjIuODYsMjEuNzYsMjEuODMsMjIuNjEsMjIuMDIsMjAuODMsMjEuMTQsMjEuMTcsMjAuODgsDQogIDIwLjQyLDE5LjU5LDIwLjE3LDIxLjk4LDI0LjQzLDI3Ljg2LDI2LjY5LDI1LjQ3LDI0LjQzLDI0LjEwLDIzLjQ0LDIzLjM5LA0KICAyMy44MCwyMy44MSwyMi40MCwyMC45NiwyMS40OCwyMC45MiwyMi41OCwyMi4xNywyMi40NSwyMi4zNywyMi42NywyMi41MywNCiAgMjIuMzgsMjMuMDQsMjQuMjMsMjUuMTAsMjMuNjksMjIuNDMsMjMuMDgsMjIuODgsMjMuMjYsMjQuMDcsMjIuMjMsMjAuODksDQogIDIwLjU4LDIwLjg5LDIwLjM3LDE5LjY2LDE5LjYxLDIxLjIxLDIwLjg2LDIxLjE0LDIwLjk4LDIxLjYxLDIxLjYyLDIxLjQ1LA0KICAyMS4wNywyMC4xNiwxOS40MSwxOS4yMCwxOS41OCwyMS4xMSwyMS45OSwyMy41NSwyNi4xMywyOC4zNiwzMC40NCwyOS42OCwNCiAgMzEuMzMsMzAuNjksMzAuNDYsMzEuODQsMzMuMzMsMzIuMjUsMzIuNDcsMzIuNTgsMzIuNjQsMzAuOTMsMjkuODIsMzAuMDksDQogIDMyLjUzLDM3LjU4LDQwLjIwLDM5LjIwLDM5LjExLDM4LjYxLDM1LjU1LDM2LjM4LDM1LjgwLDM1LjAwLDM1LjI1LDM0LjY2LA0KICAzNC4wOCwzMy4zMywzMS4xNSwyOC45NSwyNy43MywyOC4xNywzMC42MCwzMC4yOSwyOS43NywyOC40NSwyOS40MSwyOS43OSwNCiAgMjUuODMsMjMuNzEsMjQuNDksMjQuNzQsMjYuNDcsMjUuNzYsMjQuOTAsMjMuOTksMjUuMjYsMjUuMjIsMjQuNzEsMjMuMTcsDQogIDIyLjM4LDIyLjgyLDIzLjI1LDIzLjMyLDIzLjQ3LDI0LjI0LDI0Ljc2LDI1LjgwLDI1Ljg1DQopDQoNCiMgLS0tIERBRE9TOiBFeHBvcnRhw6fDtWVzIG1lbnNhaXMgZGUgc29qYSAodmFsb3IgVVMkIEZPQikgLS0tDQpleHBfc29qYV9kYWRvcyA8LSB0cmliYmxlKA0KICB+YW5vLCB+bWVzLCB+ZXhwX3NvamEsDQogIDIwMTUsIDEsIDM1MTAyNzI1LA0KICAyMDE1LCAyLCAzNDYxNjA0MTksDQogIDIwMTUsIDMsIDIyMTE3OTAyNzksDQogIDIwMTUsIDQsIDI1MzQyNTgxNzQsDQogIDIwMTUsIDUsIDM2MTI3MTY3MjgsDQogIDIwMTUsIDYsIDM3NjIyMTA4NDIsDQogIDIwMTUsIDcsIDMyMjQwNTI1OTgsDQogIDIwMTUsIDgsIDIwMDQ4ODY0MzIsDQogIDIwMTUsIDksIDE0Mjk5NzUyNDcsDQogIDIwMTUsIDEwLCA5ODk1NjcxMTYsDQogIDIwMTUsIDExLCA1NTExMzMyNjQsDQogIDIwMTUsIDEyLCAyODE3MjA4NDIsDQogIDIwMTYsIDEsIDE0NzYzNTA5MiwNCiAgMjAxNiwgMiwgNzE1MzQ3OTg3LA0KICAyMDE2LCAzLCAyOTI0OTAyMzI2LA0KICAyMDE2LCA0LCAzNTMyMzcxMTA1LA0KICAyMDE2LCA1LCAzNjAwMzA5MTMyLA0KICAyMDE2LCA2LCAyOTcxMzY5MDg5LA0KICAyMDE2LCA3LCAyNDI0NTU1MTU3LA0KICAyMDE2LCA4LCAxNTkwNDkyODg4LA0KICAyMDE2LCA5LCA2MDY1MTk5MDUsDQogIDIwMTYsIDEwLCA0MTM3ODU3NjYsDQogIDIwMTYsIDExLCAxMzA5MTMxOTEsDQogIDIwMTYsIDEyLCAyNzMxMjE3OTYsDQogIDIwMTcsIDEsIDM2NDgzMjgzNywNCiAgMjAxNywgMiwgMTQwNDE4MzMwNSwNCiAgMjAxNywgMywgMzUzNDA1NzYxNywNCiAgMjAxNywgNCwgMzk0ODIzNzQzNCwNCiAgMjAxNywgNSwgNDA2MzQyMjYyMSwNCiAgMjAxNywgNiwgMzM1MzcyMTc5MywNCiAgMjAxNywgNywgMjUzNDM5MzMxOSwNCiAgMjAxNywgOCwgMjIzNjA5NzI4NiwNCiAgMjAxNywgOSwgMTYxMDQ5NjI1MiwNCiAgMjAxNywgMTAsIDkzOTUyMDUyOSwNCiAgMjAxNywgMTEsIDgxNTM3NTg0NSwNCiAgMjAxNywgMTIsIDkxMzM5ODE1NywNCiAgMjAxOCwgMSwgNTk0MjU2NDI0LA0KICAyMDE4LCAyLCAxMDkzMjYwMzA4LA0KICAyMDE4LCAzLCAzNDM0NjY2ODkyLA0KICAyMDE4LCA0LCA0MTEyNjAxNTEwLA0KICAyMDE4LCA1LCA0OTk4NTI5MjUwLA0KICAyMDE4LCA2LCA0MTk5MTk0NDk4LA0KICAyMDE4LCA3LCA0MDc4OTE0MTI5LA0KICAyMDE4LCA4LCAzMjA5NjYzNDc1LA0KICAyMDE4LCA5LCAxODE0NTQ2Mjk2LA0KICAyMDE4LCAxMCwgMjA0ODM2NzgwOCwNCiAgMjAxOCwgMTEsIDE4OTg1MzM0MzgsDQogIDIwMTgsIDEyLCAxNTcyNDkzMjIyLA0KICAyMDE5LCAxLCA3Njg3MDg4ODEsDQogIDIwMTksIDIsIDE4NzQ1MzI2NzgsDQogIDIwMTksIDMsIDMwMjEwODQwMTcsDQogIDIwMTksIDQsIDMzMDM5OTc0ODksDQogIDIwMTksIDUsIDM0MDM4NjMwNzksDQogIDIwMTksIDYsIDI4ODM4NTkyMTIsDQogIDIwMTksIDcsIDI1OTg1NDk2MjksDQogIDIwMTksIDgsIDE3NjQwNjMyODcsDQogIDIwMTksIDksIDE2MzM3MTg3NjAsDQogIDIwMTksIDEwLCAxODI1ODc5NDEzLA0KICAyMDE5LCAxMSwgMTgwNzk2OTI5OCwNCiAgMjAxOSwgMTIsIDExOTA5NjQ0NTIsDQogIDIwMjAsIDEsIDUwNDc5ODY5OCwNCiAgMjAyMCwgMiwgMTY5Mjc2ODc0MCwNCiAgMjAyMCwgMywgMzc0MjUzMDk2NiwNCiAgMjAyMCwgNCwgNTAzMDk5NzY5MCwNCiAgMjAyMCwgNSwgNDcwMDAwMjA2MCwNCiAgMjAyMCwgNiwgNDI5NTk3MDA1MCwNCiAgMjAyMCwgNywgMzQ1ODYzMjA2MCwNCiAgMjAyMCwgOCwgMjA2MzY4NjE5OCwNCiAgMjAyMCwgOSwgMTU1Njk3MDA1MywNCiAgMjAyMCwgMTAsIDg4NTQ0MzU4MiwNCiAgMjAyMCwgMTEsIDUyODY2Njc5MiwNCiAgMjAyMCwgMTIsIDEwMzY4MDM1MSwNCiAgMjAyMSwgMSwgMjMyNjcxNjcsDQogIDIwMjEsIDIsIDEwMzYxMzEwMzIsDQogIDIwMjEsIDMsIDUwNDU3OTc2NDgsDQogIDIwMjEsIDQsIDY2NjU1MzU5ODQsDQogIDIwMjEsIDUsIDY3MDc4NzE1NzIsDQogIDIwMjEsIDYsIDUxNzM5ODM1MjIsDQogIDIwMjEsIDcsIDM5ODM1ODQ0NzEsDQogIDIwMjEsIDgsIDMxNDQ1Njc0NzQsDQogIDIwMjEsIDksIDI0NTg0OTMxNzksDQogIDIwMjEsIDEwLCAxNzE5MzY5MDQ3LA0KICAyMDIxLCAxMSwgMTMyMTEyNTUxNywNCiAgMjAyMSwgMTIsIDEzNTkwMDQxMjksDQogIDIwMjIsIDEsIDEyNDE5MTMwOTAsDQogIDIwMjIsIDIsIDMxMzU1MzU0NzYsDQogIDIwMjIsIDMsIDY0NjM2Njk3MDMsDQogIDIwMjIsIDQsIDY3NTc3NDgyNzYsDQogIDIwMjIsIDUsIDY2MTQxMDUzNDksDQogIDIwMjIsIDYsIDYzMDYwNTM5NTMsDQogIDIwMjIsIDcsIDQ3MjE5OTc5OTIsDQogIDIwMjIsIDgsIDM3MzI0MDI1ODUsDQogIDIwMjIsIDksIDI1MDUxNzY0ODgsDQogIDIwMjIsIDEwLCAyMzMzOTYzMjA2LA0KICAyMDIyLCAxMSwgMTU0ODU1MzUxOSwNCiAgMjAyMiwgMTIsIDExOTc0MjAxNzcsDQogIDIwMjMsIDEsIDUwMDQwNjQ3NywNCiAgMjAyMywgMiwgMjgxMzIyOTE4NSwNCiAgMjAyMywgMywgNzM2MTUzMzYxNCwNCiAgMjAyMywgNCwgNzc0OTc5MzgzOSwNCiAgMjAyMywgNSwgODExNTYyODc2MSwNCiAgMjAyMywgNiwgNjgyMTk4MDQ3MywNCiAgMjAyMywgNywgNDczNjQwNDM5NiwNCiAgMjAyMywgOCwgNDE5Mzk5MzE2MCwNCiAgMjAyMywgOSwgMzMwMjQxNTIzNywNCiAgMjAyMywgMTAsIDI5MzE2OTM5MDUsDQogIDIwMjMsIDExLCAyNzI3MDk2Mjk0LA0KICAyMDIzLCAxMiwgMTk5MDQ0NDA4NiwNCiAgMjAyNCwgMSwgMTQ1NDk0MjcwMywNCiAgMjAyNCwgMiwgMjkxOTU3NTMxOCwNCiAgMjAyNCwgMywgNTM1NzM3NTcyNCwNCiAgMjAyNCwgNCwgNjI4NjM1MTI2MSwNCiAgMjAyNCwgNSwgNTc1MTg2MTM0NCwNCiAgMjAyNCwgNiwgNjEzNzQ2MjU2NSwNCiAgMjAyNCwgNywgNDk2Mjg0MTY1MiwNCiAgMjAyNCwgOCwgMzQ5NzQ0NTk0NiwNCiAgMjAyNCwgOSwgMjU4NTU1NzI3MCwNCiAgMjAyNCwgMTAsIDIwMjQxNzUxMjQsDQogIDIwMjQsIDExLCAxMTEwNjc4MzE5LA0KICAyMDI0LCAxMiwgODYxNDk2Mjk2LA0KICAyMDI1LCAxLCA0MzM1NTg2MTcsDQogIDIwMjUsIDIsIDI1NDY4ODk2MDYsDQogIDIwMjUsIDMsIDU2NzU2NDM1NTksDQogIDIwMjUsIDQsIDU4NjQ3Mzk2NDksDQogIDIwMjUsIDUsIDU1MDUyODE4NTgsDQogIDIwMjUsIDYsIDUzMzkxOTUxMTMsDQogIDIwMjUsIDcsIDUwMDU1MjMwMTAsDQogIDIwMjUsIDgsIDM4NzUwMjU1MTcsDQogIDIwMjUsIDksIDMxMDcwMzQ3OTINCikNCg0KIyBDcmlhciBkYXRhcyBtZW5zYWlzIGRlc2RlIGphbi8yMDE1DQpkYXRhcyA8LSBzZXEuRGF0ZShmcm9tID0gYXMuRGF0ZSgiMjAxNS0wMS0wMSIpLCBieSA9ICJtb250aCIsIGxlbmd0aC5vdXQgPSBsZW5ndGgocHJlY29fdXNkX3ZldG9yKSkNCg0KIyBCdXNjYXIgY8OibWJpbyBwYXJhIG8gbWVzbW8gcGVyw61vZG8NCmNhbWJpb19zZXJpZSA8LSBnZXRfc2VyaWVzKDM2OTUsIHN0YXJ0X2RhdGUgPSAiMjAxNS0wMS0wMSIsIGVuZF9kYXRlID0gIjIwMjUtMDktMzAiKSAlPiUNCiAgc2V0TmFtZXMoYygiZGF0YSIsICJjYW1iaW8iKSkNCg0KIyBBZ3JlZ2FyIGPDom1iaW8gcG9yIG3DqnMgKG3DqWRpYSBtZW5zYWwpDQpjYW1iaW9fbWVuc2FsIDwtIGNhbWJpb19zZXJpZSAlPiUNCiAgbXV0YXRlKA0KICAgIGFubyA9IHllYXIoZGF0YSksDQogICAgbWVzID0gbW9udGgoZGF0YSkNCiAgKSAlPiUNCiAgZ3JvdXBfYnkoYW5vLCBtZXMpICU+JQ0KICBzdW1tYXJpc2UoY2FtYmlvX21lZGlvID0gbWVhbihjYW1iaW8sIG5hLnJtID0gVFJVRSksIC5ncm91cHMgPSAiZHJvcCIpICU+JQ0KICBtdXRhdGUoZGF0YSA9IGFzLkRhdGUocGFzdGUwKGFubywgIi0iLCBzcHJpbnRmKCIlMDJkIiwgbWVzKSwgIi0wMSIpKSkNCg0KIyBQcmVwYXJhciBkYWRvcyBkZSBleHBvcnRhw6fDtWVzIGNvbSBkYXRhDQpleHBfc29qYV9tZW5zYWwgPC0gZXhwX3NvamFfZGFkb3MgJT4lDQogIG11dGF0ZShkYXRhID0gYXMuRGF0ZShwYXN0ZTAoYW5vLCAiLSIsIHNwcmludGYoIiUwMmQiLCBtZXMpLCAiLTAxIikpLA0KICAgICAgICAgZXhwX3NvamFfYmkgPSBleHBfc29qYSAvIDFlOSkgIyBDb252ZXJ0ZXIgcGFyYSBiaWxow7Vlcw0KDQojIENyaWFyIGRhdGFmcmFtZSBjb20gcHJlw6dvcywgY8OibWJpbyBlIGV4cG9ydGHDp8O1ZXMNCmRhZG9zX3NvamEgPC0gZGF0YS5mcmFtZSgNCiAgZGF0YSA9IGRhdGFzLA0KICBwcmVjb191c2QgPSBwcmVjb191c2RfdmV0b3INCikgJT4lDQogIGxlZnRfam9pbihjYW1iaW9fbWVuc2FsICU+JSBzZWxlY3QoZGF0YSwgY2FtYmlvX21lZGlvKSwgYnkgPSAiZGF0YSIpICU+JQ0KICBsZWZ0X2pvaW4oZXhwX3NvamFfbWVuc2FsICU+JSBzZWxlY3QoZGF0YSwgZXhwX3NvamFfYmkpLCBieSA9ICJkYXRhIikgJT4lDQogIGZpbHRlcighaXMubmEoY2FtYmlvX21lZGlvKSAmICFpcy5uYShleHBfc29qYV9iaSkpDQoNCiMgPT09PT09PT09PSBNQVRSSVogREUgQ09SUkVMQcOHw4NPIC0gUEVSw41PRE8gQ09NUExFVE8gPT09PT09PT09PQ0KZGFkb3NfY29yIDwtIGRhZG9zX3NvamEgJT4lDQogIHNlbGVjdChwcmVjb191c2QsIGNhbWJpb19tZWRpbywgZXhwX3NvamFfYmkpDQoNCm1hdHJpel9jb3IgPC0gY29yKGRhZG9zX2NvcikNCmNvbG5hbWVzKG1hdHJpel9jb3IpIDwtIGMoIlByZcOnbyBTb2phXG4oVVNEL2J1c2hlbCkiLCAiQ8OibWJpb1xuKEJSTC9VU0QpIiwgIkV4cG9ydGHDp8O1ZXMgU29qYVxuKFVTJCBiaWxow7VlcykiKQ0Kcm93bmFtZXMobWF0cml6X2NvcikgPC0gYygiUHJlw6dvIFNvamFcbihVU0QvYnVzaGVsKSIsICJDw6JtYmlvXG4oQlJML1VTRCkiLCAiRXhwb3J0YcOnw7VlcyBTb2phXG4oVVMkIGJpbGjDtWVzKSIpDQoNCiMgUGxvdGFyIG1hdHJpeiBkZSBjb3JyZWxhw6fDo28NCnBhcihiZyA9ICJ3aGl0ZSIpDQpjb3JycGxvdChtYXRyaXpfY29yLCANCiAgICAgICAgIG1ldGhvZCA9ICJjb2xvciIsIA0KICAgICAgICAgdHlwZSA9ICJ1cHBlciIsDQogICAgICAgICBhZGRDb2VmLmNvbCA9ICJibGFjayIsDQogICAgICAgICBudW1iZXIuY2V4ID0gMS4yLA0KICAgICAgICAgdGwuY29sID0gIiMxQzJBNUUiLCANCiAgICAgICAgIHRsLnNydCA9IDQ1LA0KICAgICAgICAgdGwuY2V4ID0gMC45LA0KICAgICAgICAgY29sID0gY29sb3JSYW1wUGFsZXR0ZShjKCIjMDIwMjNDIiwgIndoaXRlIiwgIiNGRUIwMTUiKSkoMjAwKSwNCiAgICAgICAgIHRpdGxlID0gIkNvcnJlbGHDp8OjbzogQ8OibWJpbywgUHJlw6dvIGUgRXhwb3J0YcOnw7VlcyBkZSBTb2phICgyMDE1LTIwMjUpXG5Gb250ZTogQ0JPVC9DTUUgR3JvdXAsIEJDQiBlIENvbWV4U3RhdCIsDQogICAgICAgICBtYXIgPSBjKDAsMCwzLDApKQ0KYGBgDQoNCkEgbWF0cml6IGRlIGNvcnJlbGHDp8OjbyBtdWx0aXZhcmlhZGEgcmV2ZWxhIHJlbGHDp8O1ZXMgY29tcGxleGFzIGUgZnVuZGFtZW50YWlzIHBhcmEgY29tcHJlZW5kZXIgYSBkaW7Dom1pY2EgZG8gc2V0b3IgZGUgc29qYSBubyBCcmFzaWw6DQoNCioqMS4gQ29ycmVsYcOnw6NvIEPDom1iaW8gw5cgUHJlw6dvIGRhIFNvamEgKDAuNDggLSBNb2RlcmFkYSBQb3NpdGl2YSk6KioNCg0KQ29uZm9ybWUgZGlzY3V0aWRvIGFudGVyaW9ybWVudGUsIGVzc2EgY29ycmVsYcOnw6NvIHBvc2l0aXZhIGFncmVnYWRhIG1hc2NhcmEgZGluw6JtaWNhcyB0ZW1wb3JhaXMgZGlzdGludGFzLiBFbSBjb25kacOnw7VlcyBub3JtYWlzIGRlIG1lcmNhZG8gKDIwMTUtMjAxOSBlIDIwMjItMjAyNSksIGEgY29ycmVsYcOnw6NvIHRlbmRlIGEgc2VyIG5lZ2F0aXZhIG91IG5ldXRyYSwgcmVmbGV0aW5kbyBvIGVmZWl0byBjb21wZXRpdGl2aWRhZGU6IHF1YW5kbyBvIFJlYWwgc2UgZGVzdmFsb3JpemEsIG8gQnJhc2lsIGNvbnNlZ3VlIG9mZXJ0YXIgc29qYSBhIHByZcOnb3MgbWFpcyBjb21wZXRpdGl2b3MsIHByZXNzaW9uYW5kbyBhcyBjb3Rhw6fDtWVzIGdsb2JhaXMgcGFyYSBiYWl4by4gTm8gZW50YW50bywgZHVyYW50ZSBhIHBhbmRlbWlhICgyMDIwLTIwMjEpLCBjaG9xdWVzIG1hY3JvZWNvbsO0bWljb3Mgc2ltdWx0w6JuZW9zIGdlcmFyYW0gY29ycmVsYcOnw6NvIHBvc2l0aXZhIGFuw7RtYWxhLCBvbmRlIHRhbnRvIG8gY8OibWJpbyBxdWFudG8gb3MgcHJlw6dvcyBkYXMgY29tbW9kaXRpZXMgc3ViaXJhbSBlbSBjb25qdW50byBkZXZpZG8gw6AgZXhwYW5zw6NvIG1vbmV0w6FyaWEgZ2xvYmFsIGUgZnVnYSBwYXJhIGF0aXZvcyByZWFpcy4NCg0KKioyLiBDb3JyZWxhw6fDo28gQ8OibWJpbyDDlyBFeHBvcnRhw6fDtWVzIGRlIFNvamEgKDAuMzEgLSBGcmFjYSBQb3NpdGl2YSk6KioNCg0KRXN0YSBjb3JyZWxhw6fDo28gcmVsYXRpdmFtZW50ZSBmcmFjYSAoMC4zMSkgcmV2ZWxhIHVtYSByZWxhw6fDo28gaW1wb3J0YW50ZSBtYXMgY29tcGxleGEgZW50cmUgY8OibWJpbyBlIGV4cG9ydGHDp8O1ZXMuIERpZmVyZW50ZW1lbnRlIGRvIHF1ZSB1bWEgYW7DoWxpc2Ugc3VwZXJmaWNpYWwgcG9kZXJpYSBzdWdlcmlyLCAqKmEgYmFpeGEgY29ycmVsYcOnw6NvIG7Do28gc2lnbmlmaWNhIHF1ZSBvIGPDom1iaW8gc2VqYSBpcnJlbGV2YW50ZSoqLCBtYXMgc2ltIHF1ZSBvdXRyb3MgZmF0b3JlcyBleGVyY2VtIGluZmx1w6puY2lhIHNpbXVsdMOibmVhIHNvYnJlIGFzIGV4cG9ydGHDp8O1ZXMsIGRpbHVpbmRvIGEgcmVsYcOnw6NvIGRpcmV0YS4NCg0KQSBjb3JyZWxhw6fDo28gZnJhY2EgcG9kZSBzZXIgZXhwbGljYWRhIHBvciB0csOqcyBmYXRvcmVzIHByaW5jaXBhaXM6DQoNCi0gKipTYXpvbmFsaWRhZGUgUHJlZG9taW5hbnRlOioqIEFzIGV4cG9ydGHDp8O1ZXMgZGUgc29qYSBzZWd1ZW0gdW0gcGFkcsOjbyBzYXpvbmFsIG11aXRvIHLDrWdpZG8gKHBpY29zIGVtIG1hcsOnby1qdWxobywgdmFsZXMgZW0gZGV6ZW1icm8tZmV2ZXJlaXJvKSBkZXRlcm1pbmFkbyBwZWxvIGNpY2xvIHByb2R1dGl2byBhZ3LDrWNvbGEuIEVzc2Egc2F6b25hbGlkYWRlIMOpIGluZGVwZW5kZW50ZSBkbyBjw6JtYmlvIGUgcG9kZSBtYXNjYXJhciBhIGluZmx1w6puY2lhIGNhbWJpYWwgcXVhbmRvIGFuYWxpc2FkYSBubyBwZXLDrW9kbyBhZ3JlZ2Fkby4NCg0KLSAqKkRlZmFzYWdlbSBUZW1wb3JhbDoqKiBPIGltcGFjdG8gZG8gY8OibWJpbyBzb2JyZSBhcyBleHBvcnRhw6fDtWVzIG7Do28gw6kgaW1lZGlhdG8uIEjDoSB1bSBsYWcgZGUgMy02IG1lc2VzIGVudHJlIGEgdmFyaWHDp8OjbyBjYW1iaWFsIGUgbyBhanVzdGUgbm9zIHZvbHVtZXMgZXhwb3J0YWRvcywgcG9pcyBvcyBwcm9kdXRvcmVzIHByZWNpc2FtIGRlIHRlbXBvIHBhcmEgYWp1c3RhciBkZWNpc8O1ZXMgZGUgcGxhbnRpbywgY29saGVpdGEgZSBjb21lcmNpYWxpemHDp8Ojby4gQ29ycmVsYcOnw7VlcyBzaW1wbGVzIG7Do28gY2FwdHVyYW0gYWRlcXVhZGFtZW50ZSBlc3NhcyBkZWZhc2FnZW5zLg0KDQotICoqRG9taW7Dom5jaWEgZGUgT3V0cm9zIEZhdG9yZXM6KiogU2FmcmFzIChjbGltYSwgw6FyZWEgcGxhbnRhZGEpLCBwcmXDp29zIGludGVybmFjaW9uYWlzLCBlIGRlbWFuZGEgY2hpbmVzYSBleGVyY2VtIGluZmx1w6puY2lhcyB0w6NvIGZvcnRlcyBxdWUgcG9kZW0gc29icmVwb3IgbyBlZmVpdG8gY2FtYmlhbCBlbSBkZXRlcm1pbmFkb3MgcGVyw61vZG9zLg0KDQoqKkltcGxpY2HDp8OjbyBQcsOhdGljYToqKiBFbWJvcmEgYSBjb3JyZWxhw6fDo28gc2VqYSBmcmFjYSBubyBhZ3JlZ2FkbywgaXNzbyBuw6NvIGludmFsaWRhIGEgaW1wb3J0w6JuY2lhIGRvIGPDom1iaW8uIEVtIGFuw6FsaXNlcyBtYWlzIHNvZmlzdGljYWRhcyBxdWUgY29uc2lkZXJlbSBkZWZhc2FnZW5zIHRlbXBvcmFpcyBlIGNvbnRyb2xlbSBwZWxhIHNhem9uYWxpZGFkZSwgbyBlZmVpdG8gY2FtYmlhbCBzZSB0b3JuYSBtYWlzIGV2aWRlbnRlLiBPIGPDom1iaW8gYXR1YSBtYWlzIGNvbW8gdW0gKiptb2R1bGFkb3IgZGUgbWFyZ2VucyoqIGRvIHF1ZSBjb21vIGRldGVybWluYW50ZSBkaXJldG8gZGUgdm9sdW1lcyBleHBvcnRhZG9zLg0KDQoqKjMuIENvcnJlbGHDp8OjbyBQcmXDp28gVVNEIMOXIEV4cG9ydGHDp8O1ZXMgZGUgU29qYSAoMC4yOSAtIEZyYWNhIFBvc2l0aXZhKToqKg0KDQpTdXJwcmVlbmRlbnRlbWVudGUsIGEgY29ycmVsYcOnw6NvIGVudHJlIHByZcOnbyBpbnRlcm5hY2lvbmFsIGUgZXhwb3J0YcOnw7VlcyB0YW1iw6ltIMOpIGZyYWNhICgwLjI5KSwgbyBxdWUgY29udHJhcmlhIGEgaW50dWnDp8OjbyBpbmljaWFsLiBFc3NhIGNvcnJlbGHDp8OjbyBiYWl4YSBwb2RlIHNlciBleHBsaWNhZGEgcG9yOg0KDQotICoqRWZlaXRvIFZvbHVtZSB2cy4gRWZlaXRvIFByZcOnbzoqKiBRdWFuZG8gb3MgcHJlw6dvcyBpbnRlcm5hY2lvbmFpcyBzb2JlbSwgbmVtIHNlbXByZSBvIHZvbHVtZSBleHBvcnRhZG8gYXVtZW50YSBwcm9wb3JjaW9uYWxtZW50ZS4gUHJvZHV0b3JlcyBwb2RlbSByZXRlciBlc3RvcXVlcyBlc3BlcmFuZG8gcHJlw6dvcyBhaW5kYSBtYWlvcmVzLCBvdSBhIHNhZnJhIHBvZGUgdGVyIHNpZG8gbGltaXRhZGEgcG9yIGZhdG9yZXMgY2xpbcOhdGljb3MgaW5kZXBlbmRlbnRlbWVudGUgZG8gcHJlw6dvLg0KDQotICoqUmlnaWRleiBkYSBPZmVydGEgbm8gQ3VydG8gUHJhem86KiogQSBwcm9kdcOnw6NvIGFncsOtY29sYSBuw6NvIHJlc3BvbmRlIGltZWRpYXRhbWVudGUgYSBzaW5haXMgZGUgcHJlw6dvLiBVbWEgYWx0YSBkZSBwcmXDp29zIGVtIGphbmVpcm8gbsOjbyBhdW1lbnRhIGEgc2FmcmEgZGUgbWFyw6dvIGRvIG1lc21vIGFubywgcG9pcyBvIHBsYW50aW8gasOhIG9jb3JyZXUgbWVzZXMgYW50ZXMuDQoNCi0gKipJbmZsdcOqbmNpYSBkYSBEZW1hbmRhOioqIEFzIGV4cG9ydGHDp8O1ZXMgZGVwZW5kZW0gdGFudG8gZGEgb2ZlcnRhIGJyYXNpbGVpcmEgcXVhbnRvIGRhIGRlbWFuZGEgaW50ZXJuYWNpb25hbC4gTWVzbW8gY29tIHByZcOnb3MgYWx0b3MsIHNlIGEgQ2hpbmEgcmVkdXppciBjb21wcmFzIChjb21vIG9jb3JyZXUgZW0gYWxndW5zIHBlcsOtb2RvcyBww7NzLTIwMjIgZGV2aWRvIMOgIGRlc2FjZWxlcmHDp8OjbyBlY29uw7RtaWNhKSwgYXMgZXhwb3J0YcOnw7VlcyBjYWVtLg0KDQoqKkltcGxpY2HDp8O1ZXMgSW50ZWdyYWRhczoqKg0KDQpBIGFuw6FsaXNlIG11bHRpdmFyaWFkYSByZXZlbGEgcXVlIGFzIGV4cG9ydGHDp8O1ZXMgZGUgc29qYSBzw6NvIGRldGVybWluYWRhcyBwb3IgdW0gKipjb25qdW50byBjb21wbGV4byBkZSBmYXRvcmVzIGludGVyLXJlbGFjaW9uYWRvcyoqLCBuw6NvIHBvciB1bWEgw7puaWNhIHZhcmnDoXZlbCBkb21pbmFudGU6DQoNCjEuICoqU2F6b25hbGlkYWRlIEFncsOtY29sYToqKiDDiSBvIHBhZHLDo28gbWFpcyBmb3J0ZSBlIHByZXZpc8OtdmVsLCBkZXRlcm1pbmFkbyBwZWxvIGNpY2xvIGRlIHBsYW50aW8vY29saGVpdGEuDQoNCjIuICoqUHJlw6dvcyBJbnRlcm5hY2lvbmFpcyAoY29ycmVsYcOnw6NvIDAuMjkpOioqIEluZmx1ZW5jaWFtIG1haXMgYXMgZGVjaXPDtWVzIGRlIHJldGVuw6fDo28vbGliZXJhw6fDo28gZGUgZXN0b3F1ZXMgZG8gcXVlIG8gdm9sdW1lIHRvdGFsIHByb2R1emlkby4NCg0KMy4gKipUYXhhIGRlIEPDom1iaW8gKGNvcnJlbGHDp8OjbyAwLjMxKToqKiBBZmV0YSBwcmluY2lwYWxtZW50ZSBhIHJlbnRhYmlsaWRhZGUgZW0gUmVhaXMgZSwgY29uc2VxdWVudGVtZW50ZSwgZGVjaXPDtWVzIGRlIHBsYW50aW8gcGFyYSBzYWZyYXMgZnV0dXJhcy4NCg0KNC4gKipGYXRvcmVzIE7Do28gQ2FwdHVyYWRvczoqKiBDbGltYSwgcG9sw610aWNhcyBjaGluZXNhcyBkZSBpbXBvcnRhw6fDo28sIGxvZ8Otc3RpY2EgcG9ydHXDoXJpYSwgZSBlc3RvcXVlcyBnbG9iYWlzIGV4ZXJjZW0gaW5mbHXDqm5jaWFzIHF1ZSBuw6NvIGFwYXJlY2VtIG5lc3NhcyBjb3JyZWxhw6fDtWVzIHNpbXBsZXMuDQoNCioqQ29uY2x1c8OjbyBFc3RyYXTDqWdpY2E6KioNCg0KQXMgY29ycmVsYcOnw7VlcyBmcmFjYXMgKDAuMjkgZSAwLjMxKSBuw6NvIGRpbWludWVtIGEgaW1wb3J0w6JuY2lhIGRlIHByZcOnb3MgZSBjw6JtYmlvLCBtYXMgcmV2ZWxhbSBxdWU6DQoNCjEuICoqQW7DoWxpc2VzIG11bHRpdmFyaWFkYXMgc29maXN0aWNhZGFzIHPDo28gbmVjZXNzw6FyaWFzKiogcGFyYSBlbnRlbmRlciBwbGVuYW1lbnRlIG9zIGRldGVybWluYW50ZXMgZGFzIGV4cG9ydGHDp8O1ZXMNCjIuICoqTyBzZXRvciBhZ3LDrWNvbGEgdGVtIGRpbsOibWljYSBwcsOzcHJpYSoqIChzYXpvbmFsaWRhZGUsIGNsaW1hKSBxdWUgbsOjbyDDqSBjYXB0dXJhZGEgcG9yIHZhcmnDoXZlaXMgZmluYW5jZWlyYXMNCjMuICoqQ8OibWJpbyBlIHByZcOnb3MgYXR1YW0gbWFpcyBubyBtw6lkaW8vbG9uZ28gcHJhem8qKiAoZGVjaXPDtWVzIGRlIHBsYW50aW8sIGludmVzdGltZW50bykgZG8gcXVlIG5vIGN1cnRvIHByYXpvICh2b2x1bWVzIGrDoSBkZWZpbmlkb3MgcGVsYSBzYWZyYSkNCjQuICoqR2VzdMOjbyBkZSByaXNjbyBkZXZlIHNlciBtdWx0aWRpbWVuc2lvbmFsKiosIGNvbnNpZGVyYW5kbyBuw6NvIGFwZW5hcyBoZWRnZSBkZSBwcmXDp28gZSBjw6JtYmlvLCBtYXMgdGFtYsOpbSBzZWd1cm9zIGNsaW3DoXRpY29zIGUgZGl2ZXJzaWZpY2HDp8OjbyBkZSBtZXJjYWRvcw0KDQpQYXJhIG8gcHJvZHV0b3IgYnJhc2lsZWlybywgaXNzbyBzaWduaWZpY2EgcXVlLCBlbWJvcmEgY8OibWJpbyBmYXZvcsOhdmVsIGUgcHJlw6dvcyBhbHRvcyBzZWphbSBkZXNlasOhdmVpcywgKipvIHN1Y2Vzc28gbm8gbG9uZ28gcHJhem8gZGVwZW5kZSBmdW5kYW1lbnRhbG1lbnRlIGRlIHByb2R1dGl2aWRhZGUsIGdlc3TDo28gZWZpY2llbnRlLCBlIGNhcGFjaWRhZGUgZGUgbmF2ZWdhciBhIGNvbXBsZXhhIGludGVyYcOnw6NvIGVudHJlIG3Dumx0aXBsb3MgZmF0b3JlcyBkZSByaXNjbyoqLg0KDQojIyMjIEFuw6FsaXNlIFRlbXBvcmFsOiBBIENvcnJlbGHDp8OjbyBxdWUgTXVkYSBjb20gbyBUZW1wbw0KDQpgYGB7ciwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgPT09PT09PT09PSBBTsOBTElTRSBQT1IgU1VCUEVSw41PRE9TID09PT09PT09PT0NCg0KIyBEZWZpbmlyIHBlcsOtb2Rvcw0KcGVyaW9kb3MgPC0gbGlzdCgNCiAgbGlzdChub21lID0gIjIwMTUtMjAxOSAoUHLDqS1wYW5kZW1pYSkiLCBpbmljaW8gPSBhcy5EYXRlKCIyMDE1LTAxLTAxIiksIGZpbSA9IGFzLkRhdGUoIjIwMTktMTItMzEiKSksDQogIGxpc3Qobm9tZSA9ICIyMDIwLTIwMjEgKFBhbmRlbWlhKSIsIGluaWNpbyA9IGFzLkRhdGUoIjIwMjAtMDEtMDEiKSwgZmltID0gYXMuRGF0ZSgiMjAyMS0xMi0zMSIpKSwNCiAgbGlzdChub21lID0gIjIwMjItMjAyNSAoUMOzcy1wYW5kZW1pYSkiLCBpbmljaW8gPSBhcy5EYXRlKCIyMDIyLTAxLTAxIiksIGZpbSA9IGFzLkRhdGUoIjIwMjUtMTItMzEiKSkNCikNCg0KIyBDYWxjdWxhciBjb3JyZWxhw6fDtWVzIHBvciBwZXLDrW9kbw0KcmVzdWx0YWRvcyA8LSBkYXRhLmZyYW1lKA0KICBQZXJpb2RvID0gY2hhcmFjdGVyKCksDQogIENvcl9DYW1iaW9fUHJlY28gPSBudW1lcmljKCksDQogIENvcl9DYW1iaW9fRXhwb3J0ID0gbnVtZXJpYygpLA0KICBDb3JfUHJlY29fRXhwb3J0ID0gbnVtZXJpYygpLA0KICBOX09icyA9IGludGVnZXIoKSwNCiAgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFDQopDQoNCmZvcihwZXJpb2RvIGluIHBlcmlvZG9zKSB7DQogIGRhZG9zX3BlcmlvZG8gPC0gZGFkb3Nfc29qYSAlPiUNCiAgICBmaWx0ZXIoZGF0YSA+PSBwZXJpb2RvJGluaWNpbyAmIGRhdGEgPD0gcGVyaW9kbyRmaW0pDQogIA0KICBpZihucm93KGRhZG9zX3BlcmlvZG8pID4gMikgew0KICAgIGNvcl9jYW1iaW9fcHJlY28gPC0gY29yKGRhZG9zX3BlcmlvZG8kY2FtYmlvX21lZGlvLCBkYWRvc19wZXJpb2RvJHByZWNvX3VzZCkNCiAgICBjb3JfY2FtYmlvX2V4cG9ydCA8LSBjb3IoZGFkb3NfcGVyaW9kbyRjYW1iaW9fbWVkaW8sIGRhZG9zX3BlcmlvZG8kZXhwX3NvamFfYmkpDQogICAgY29yX3ByZWNvX2V4cG9ydCA8LSBjb3IoZGFkb3NfcGVyaW9kbyRwcmVjb191c2QsIGRhZG9zX3BlcmlvZG8kZXhwX3NvamFfYmkpDQogICAgDQogICAgcmVzdWx0YWRvcyA8LSByYmluZChyZXN1bHRhZG9zLCBkYXRhLmZyYW1lKA0KICAgICAgUGVyaW9kbyA9IHBlcmlvZG8kbm9tZSwNCiAgICAgIENvcl9DYW1iaW9fUHJlY28gPSByb3VuZChjb3JfY2FtYmlvX3ByZWNvLCAzKSwNCiAgICAgIENvcl9DYW1iaW9fRXhwb3J0ID0gcm91bmQoY29yX2NhbWJpb19leHBvcnQsIDMpLA0KICAgICAgQ29yX1ByZWNvX0V4cG9ydCA9IHJvdW5kKGNvcl9wcmVjb19leHBvcnQsIDMpLA0KICAgICAgTl9PYnMgPSBucm93KGRhZG9zX3BlcmlvZG8pDQogICAgKSkNCiAgfQ0KfQ0KDQojIENyaWFyIHRhYmVsYSBmb3JtYXRhZGENCmxpYnJhcnkoa25pdHIpDQprYWJsZShyZXN1bHRhZG9zLCANCiAgICAgIGNvbC5uYW1lcyA9IGMoIlBlcsOtb2RvIiwgIkPDom1iaW8gw5cgUHJlw6dvIiwgIkPDom1iaW8gw5cgRXhwb3J0LiIsICJQcmXDp28gw5cgRXhwb3J0LiIsICJOIiksDQogICAgICBjYXB0aW9uID0gIlRhYmVsYSAxOiBBbsOhbGlzZSBkZSBDb3JyZWxhw6fDtWVzIGVudHJlIEPDom1iaW8sIFByZcOnbyBlIEV4cG9ydGHDp8O1ZXMgZGUgU29qYSBwb3IgU3VicGVyw61vZG9zIiwNCiAgICAgIGFsaWduID0gYygibCIsICJjIiwgImMiLCAiYyIsICJjIikpDQpgYGANCg0KQSBkZWNvbXBvc2nDp8OjbyB0ZW1wb3JhbCBkYXMgY29ycmVsYcOnw7VlcyByZXZlbGEgZGluw6JtaWNhcyBxdWUgcmVmbGV0ZW0gbXVkYW7Dp2FzIGVzdHJ1dHVyYWlzIG5vIG1lcmNhZG8gZ2xvYmFsIGRlIGNvbW1vZGl0aWVzIGUgbmEgZWNvbm9taWEgYnJhc2lsZWlyYToNCg0KKipGYXNlIDE6IFByw6ktUGFuZGVtaWEgKDIwMTUtMjAxOSkg4oCUIE8gUGFkcsOjbyBDbMOhc3NpY28qKg0KDQpOZXN0ZSBwZXLDrW9kbywgb2JzZXJ2YW1vcyBvIGNvbXBvcnRhbWVudG8gZXNwZXJhZG8gcGVsYSB0ZW9yaWEgZWNvbsO0bWljYSB0cmFkaWNpb25hbDoNCg0KLSAqKkPDom1iaW8gw5cgUHJlw6dvICgtMC40NzEpOioqIENvcnJlbGHDp8OjbyAqKm5lZ2F0aXZhIG1vZGVyYWRhKiosIGNvbmZpcm1hbmRvIHF1ZSBxdWFuZG8gbyBSZWFsIHNlIGRlc3ZhbG9yaXphdmEsIG8gQnJhc2lsIGNvbnNlZ3VpYSBleGVyY2VyIHByZXNzw6NvIGJhaXhpc3RhIHNvYnJlIG9zIHByZcOnb3MgZ2xvYmFpcyBhdHJhdsOpcyBkbyBhdW1lbnRvIGRlIGNvbXBldGl0aXZpZGFkZSBlIG9mZXJ0YS4gRXN0ZSDDqSBvIHBhZHLDo28gY2zDoXNzaWNvIGRhIHRlb3JpYSBkZSBjb23DqXJjaW8gaW50ZXJuYWNpb25hbDogbW9lZGEgZnJhY2Eg4oaSIG1haW9yIG9mZXJ0YSBicmFzaWxlaXJhIOKGkiBwcmVzc8OjbyBiYWl4aXN0YSBzb2JyZSBwcmXDp29zIGdsb2JhaXMuDQoNCi0gKipDw6JtYmlvIMOXIEV4cG9ydGHDp8O1ZXMgKDAuMDY2KToqKiBDb3JyZWxhw6fDo28gKipwcmF0aWNhbWVudGUgbnVsYSoqIChwcsOzeGltYSBkZSB6ZXJvKS4gRXN0ZSByZXN1bHRhZG8gYXBhcmVudGVtZW50ZSBjb250cmFpbnR1aXRpdm8gcmV2ZWxhIHF1ZSwgZHVyYW50ZSBlc3RlIHBlcsOtb2RvIGRlIGVzdGFiaWxpZGFkZSBtYWNyb2Vjb27DtG1pY2EsIGFzIGV4cG9ydGHDp8O1ZXMgZXJhbSBkZXRlcm1pbmFkYXMgbXVpdG8gbWFpcyBwb3IgZmF0b3JlcyBlc3RydXR1cmFpcyAoc2FmcmFzLCBjbGltYSwgaW52ZXN0aW1lbnRvcyBlbSBwcm9kdXRpdmlkYWRlKSBkbyBxdWUgcG9yIGZsdXR1YcOnw7VlcyBjYW1iaWFpcy4gTyBjw6JtYmlvIHZhcmlhdmEsIG1hcyBkZW50cm8gZGUgdW1hIGZhaXhhIHJlbGF0aXZhbWVudGUgZXN0cmVpdGEgKFIkIDMsMDAtNCwwMCksIGluc3VmaWNpZW50ZSBwYXJhIGFsdGVyYXIgc2lnbmlmaWNhdGl2YW1lbnRlIGRlY2lzw7VlcyBkZSBwcm9kdcOnw6NvIGUgZXhwb3J0YcOnw6NvLg0KDQpFc3RlIGZvaSB1bSBwZXLDrW9kbyBkZSByZWxhdGl2YSBub3JtYWxpZGFkZSBtYWNyb2Vjb27DtG1pY2EgZ2xvYmFsLCBvbmRlIGEgKipzYXpvbmFsaWRhZGUgYWdyw61jb2xhIGUgYSBjYXBhY2lkYWRlIHByb2R1dGl2YSBkb21pbmF2YW0qKiBhcyBkZWNpc8O1ZXMgZGUgZXhwb3J0YcOnw6NvIG11aXRvIG1haXMgcXVlIHNpbmFpcyBkZSBwcmXDp28gb3UgY8OibWJpby4NCg0KKipGYXNlIDI6IFBhbmRlbWlhICgyMDIwLTIwMjEpIOKAlCBBIEdyYW5kZSBBbm9tYWxpYSoqDQoNCkEgcGFuZGVtaWEgdHJhbnNmb3Jtb3UgcmFkaWNhbG1lbnRlIGFzIGNvcnJlbGHDp8O1ZXMsIG1hcyBkZSBmb3JtYSBzdXJwcmVlbmRlbnRlOg0KDQotICoqQ8OibWJpbyDDlyBQcmXDp28gKDAuMzA2KToqKiBJbnZlcnPDo28gZHJhbcOhdGljYSBwYXJhIGNvcnJlbGHDp8OjbyAqKnBvc2l0aXZhIG1vZGVyYWRhKiouIFRhbnRvIG8gUmVhbCBxdWFudG8gb3MgcHJlw6dvcyBkYXMgY29tbW9kaXRpZXMgc3ViaXJhbSBzaW11bHRhbmVhbWVudGUgZGV2aWRvIGE6ICgxKSBleHBhbnPDo28gbW9uZXTDoXJpYSBnbG9iYWwgbWFzc2l2YSwgKDIpIGZ1Z2EgcGFyYSBhdGl2b3MgcmVhaXMgY29tbyBwcm90ZcOnw6NvIGNvbnRyYSBpbmZsYcOnw6NvLCAoMykgZGVzdmFsb3JpemHDp8OjbyBnZW5lcmFsaXphZGEgZGUgbW9lZGFzIGVtZXJnZW50ZXMsIGUgKDQpIGRpc3J1w6fDtWVzIGRlIG9mZXJ0YSBxdWUgZWxldmFyYW0gcHJlw6dvcyBpbmRlcGVuZGVudGVtZW50ZSBkbyBjw6JtYmlvLiBFc3RlIGZvaSB1bSBwZXLDrW9kbyBkZSAqKmNob3F1ZXMgbWFjcm9lY29uw7RtaWNvcyBzaW5jcm9uaXphZG9zKiosIG9uZGUgYXMgdmFyacOhdmVpcyBzZSBtb3ZlcmFtIGp1bnRhcyBwb3IgZmF0b3JlcyBleHRlcm5vcyBhbyBtZXJjYWRvIGRlIHNvamEuDQoNCi0gKipDw6JtYmlvIMOXIEV4cG9ydGHDp8O1ZXMgKDAuMDMwKToqKiBDb3JyZWxhw6fDo28gKipleHRyZW1hbWVudGUgZnJhY2EqKiAocXVhc2UgemVybykuIEVzdGUgcmVzdWx0YWRvIMOpIG5vdMOhdmVsIGUgYXBhcmVudGVtZW50ZSBjb250cmFkaXTDs3JpbzogZW0gdW0gcGVyw61vZG8gb25kZSBjw6JtYmlvIGRpc3Bhcm91IChSJCA0LDAwIOKGkiBSJCA1LDgwKSBlIHByZcOnb3MgZXhwbG9kaXJhbSAoVVMkIDIwIOKGkiBVUyQgNDAvYnVzaGVsKSwgZXNwZXJhdmEtc2UgZm9ydGUgY29ycmVsYcOnw6NvIHBvc2l0aXZhLiBBIGNvcnJlbGHDp8OjbyBmcmFjYSByZXZlbGEgcXVlICoqYXMgZXhwb3J0YcOnw7VlcyBmb3JhbSBsaW1pdGFkYXMgcGVsYSBjYXBhY2lkYWRlIHByb2R1dGl2YSBlIGxvZ8Otc3RpY2EqKiwgbsOjbyBwb3IgZmFsdGEgZGUgaW5jZW50aXZvcy4gTWVzbW8gY29tIHByZcOnb3MgZSBjw6JtYmlvIGFsdGFtZW50ZSBmYXZvcsOhdmVpcywgbyBCcmFzaWwgbsOjbyBjb25zZWd1aXUgZXhwYW5kaXIgZXhwb3J0YcOnw7VlcyBwcm9wb3JjaW9uYWxtZW50ZSBkZXZpZG8gYSBnYXJnYWxvcyBwb3J0dcOhcmlvcywgbGltaXRhw6fDtWVzIGRlIHNhZnJhLCBlIGNvbnRyYXRvcyBqw6EgZXN0YWJlbGVjaWRvcy4NCg0KRXN0ZSBwZXLDrW9kbyByZXByZXNlbnRvdSB1bWEgamFuZWxhIGRlIGx1Y3JvcyBleHRyYW9yZGluw6FyaW9zIHBhcmEgcXVlbSBjb25zZWd1aXUgZXhwb3J0YXIsIG1hcyBkZW1vbnN0cm91IHF1ZSAqKmluY2VudGl2b3MgZGUgcHJlw6dvIGUgY8OibWJpbyBzw6NvIGluc3VmaWNpZW50ZXMgc2VtIGNhcGFjaWRhZGUgZXN0cnV0dXJhbCBkZSByZXNwb3N0YSoqLg0KDQoqKkZhc2UgMzogUMOzcy1QYW5kZW1pYSAoMjAyMi0yMDI1KSDigJQgUmV2ZXJzw6NvIGUgRGVzY29sYW1lbnRvKioNCg0KTyBwZXLDrW9kbyBww7NzLXBhbmTDqm1pY28gbW9zdHJhIHBhZHLDtWVzIHN1cnByZWVuZGVudGVzIGUgY29udHJhaW50dWl0aXZvczoNCg0KLSAqKkPDom1iaW8gw5cgUHJlw6dvICgtMC41NzEpOioqIFJldG9ybm8gw6AgY29ycmVsYcOnw6NvICoqbmVnYXRpdmEgbW9kZXJhZGFtZW50ZSBmb3J0ZSoqLCBpbmNsdXNpdmUgbWFpcyBmb3J0ZSBxdWUgbm8gcHLDqS1wYW5kZW1pYSAoLTAuNDcxKS4gSXNzbyBpbmRpY2EgcXVlIGEgZGluw6JtaWNhIGNsw6Fzc2ljYSBkZSBjb21wZXRpdGl2aWRhZGUgc2UgcmVzdGFiZWxlY2V1IGNvbSBtYWlvciBpbnRlbnNpZGFkZS4gUXVhbmRvIG8gUmVhbCBzZSBkZXN2YWxvcml6YSwgbyBCcmFzaWwgYXVtZW50YSBvZmVydGEgZSBwcmVzc2lvbmEgcHJlw6dvcyBnbG9iYWlzIHBhcmEgYmFpeG8gZGUgZm9ybWEgbWFpcyBwcm9udW5jaWFkYSBxdWUgYW50ZXMgZGEgcGFuZGVtaWEuIFBvc3PDrXZlaXMgZXhwbGljYcOnw7VlczogKDEpIG1haW9yIGNhcGFjaWRhZGUgcHJvZHV0aXZhIGluc3RhbGFkYSBhcMOzcyBpbnZlc3RpbWVudG9zIGRvIHBlcsOtb2RvIHBhbmTDqm1pY28sICgyKSBpbmZyYWVzdHJ1dHVyYSBsb2fDrXN0aWNhIG1lbGhvcmFkYSwgKDMpIG1haW9yIGludGVncmHDp8OjbyBkbyBCcmFzaWwgbm9zIG1lcmNhZG9zIGdsb2JhaXMgY29tbyBmb3JuZWNlZG9yIGRvbWluYW50ZS4NCg0KLSAqKkPDom1iaW8gw5cgRXhwb3J0YcOnw7VlcyAoLTAuMzI2KToqKiBDb3JyZWxhw6fDo28gKipuZWdhdGl2YSBmcmFjYSBhIG1vZGVyYWRhKiouIEVzdGUgw6kgbyByZXN1bHRhZG8gbWFpcyBzdXJwcmVlbmRlbnRlIGUgY29udHJhaW50dWl0aXZvIGRlIHRvZGEgYSBhbsOhbGlzZS4gRW0gdW0gY29udGV4dG8gb25kZSBzZSBlc3BlcmFyaWEgcXVlIFJlYWwgZGVzdmFsb3JpemFkbyBpbXB1bHNpb25hc3NlIGV4cG9ydGHDp8O1ZXMsIG9ic2VydmEtc2UgbyBvcG9zdG86IHF1YW5kbyBvIGPDom1iaW8gc29iZSAoUmVhbCBtYWlzIGZyYWNvKSwgYXMgZXhwb3J0YcOnw7VlcyB0ZW5kZW0gYSBjYWlyIGxldmVtZW50ZS4NCg0KKipFeHBsaWNhw6fDtWVzIHBhcmEgYSBjb3JyZWxhw6fDo28gbmVnYXRpdmEgQ8OibWJpbyDDlyBFeHBvcnRhw6fDtWVzIG5vIHDDs3MtcGFuZGVtaWE6KioNCg0KRXN0YSBpbnZlcnPDo28gcG9kZSBzZXIgZXhwbGljYWRhIHBvciB1bSBmZW7DtG1lbm8gZGUgKipjYXVzYWxpZGFkZSByZXZlcnNhIGUgZmF0b3JlcyBjb25mdW5kaWRvcmVzKio6DQoNCjEuICoqRWZlaXRvIFNhZnJhIERvbWluYW50ZToqKiBRdWFuZG8gbyBCcmFzaWwgdGVtIHNhZnJhcyBleGNlcGNpb25haXMgKDIwMjMsIHBvciBleGVtcGxvKSwgYXMgZXhwb3J0YcOnw7VlcyBkaXNwYXJhbS4gRXNzYSBlbnRyYWRhIG1hc3NpdmEgZGUgZMOzbGFyZXMgcHJlc3Npb25hIHBlbGEgKip2YWxvcml6YcOnw6NvIGRvIFJlYWwqKiAoY8OibWJpbyBjYWkpLiBJbnZlcnNhbWVudGUsIHNhZnJhcyBtZW5vcmVzIOKGkiBtZW5vcyBleHBvcnRhw6fDtWVzIOKGkiBtZW5vcyBkw7NsYXJlcyBlbnRyYW5kbyDihpIgUmVhbCBzZSBkZXN2YWxvcml6YS4gT3Ugc2VqYSwgbsOjbyDDqSBvIGPDom1iaW8gY2F1c2FuZG8gZXhwb3J0YcOnw7VlcywgbWFzIHNpbSAqKmV4cG9ydGHDp8O1ZXMgY2F1c2FuZG8gbyBjw6JtYmlvKiouDQoNCjIuICoqUXVlZGEgU2luY3Jvbml6YWRhIGRlIERlbWFuZGEgR2xvYmFsOioqIEVtIDIwMjQtMjAyNSwgYSBkZXNhY2VsZXJhw6fDo28gZGEgZWNvbm9taWEgY2hpbmVzYSByZWR1eml1IGEgZGVtYW5kYSBwb3IgY29tbW9kaXRpZXMgYnJhc2lsZWlyYXMgKGV4cG9ydGHDp8O1ZXMgY2FlbSkgZSB0YW1iw6ltIGdlcm91IGZ1Z2EgZGUgY2FwaXRhaXMgZGUgZW1lcmdlbnRlcyAoUmVhbCBzZSBkZXN2YWxvcml6YSkuIEFtYm9zIG1vdmltZW50b3Mgb2NvcnJlbSBzaW11bHRhbmVhbWVudGUsIGdlcmFuZG8gY29ycmVsYcOnw6NvIG5lZ2F0aXZhIGVzcMO6cmlhLg0KDQozLiAqKlByZcOnb3MgRG9taW5hbSwgQ8OibWJpbyBDb21wZW5zYToqKiBOZXN0ZSBwZXLDrW9kbywgcHJlw6dvcyBpbnRlcm5hY2lvbmFpcyBjYcOtcmFtIHNpZ25pZmljYXRpdmFtZW50ZSAoVVMkIDM1IOKGkiBVUyQgMjMvYnVzaGVsKS4gUXVhbmRvIHByZcOnb3MgY2FlbSwgKipCcmFzaWwgZXhwb3J0YSBtZW5vcyBlbSB2YWxvcioqIG1lc21vIGF1bWVudGFuZG8gdm9sdW1lLiBTaW11bHRhbmVhbWVudGUsIFJlYWwgc2UgZGVzdmFsb3JpemEgcGFyYSAqKmNvbXBlbnNhcioqIGEgcGVyZGEgZGUgcmVjZWl0YS4gTyBjw6JtYmlvIGF0dWEgY29tbyAqKnZhcmnDoXZlbCBkZSBhanVzdGUqKiwgbsOjbyBjb21vIG1vdG9yIHByaW3DoXJpby4NCg0KNC4gKipFc3RvcXVlcyBlIFRpbWluZyBkZSBFeHBvcnRhw6fDo286KiogUHJvZHV0b3JlcyBicmFzaWxlaXJvcywgY29tIGPDom1iaW8gZmF2b3LDoXZlbCBtYXMgcHJlw6dvcyBlbSBxdWVkYSwgb3B0YXJhbSBwb3IgKipyZXRlciBlc3RvcXVlcyoqIGVzcGVyYW5kbyByZWN1cGVyYcOnw6NvIGRlIHByZcOnb3MuIElzc28gcmVzdWx0b3UgZW0gZXhwb3J0YcOnw7VlcyBtZW5vcmVzIGp1c3RhbWVudGUgcXVhbmRvIG8gY8OibWJpbyBlc3RhdmEgbWFpcyBhbHRvLg0KDQoqKkludGVycHJldGHDp8OjbyBJbnRlZ3JhZGEgZGFzIEZhc2VzOioqDQoNCkEgYW7DoWxpc2UgdGVtcG9yYWwgcmV2ZWxhIGFjaGFkb3MgZnVuZGFtZW50YWlzIGUgYWxndW5zIHJlc3VsdGFkb3MgY29udHJhaW50dWl0aXZvcyBxdWUgZGVzYWZpYW0gZXhwbGljYcOnw7VlcyBzaW1wbGlzdGFzOg0KDQoqKjEuIE8gQ8OibWJpbyBBdHVhIGRlIEZvcm1hcyBEaWZlcmVudGVzIGVtIENhZGEgUGVyw61vZG86KioNCg0KLSAqKlByw6ktUGFuZGVtaWEgKGNvcnJlbGHDp8OjbyB+MCk6KiogQ8OibWJpbyBlcmEgKippcnJlbGV2YW50ZSoqIHBhcmEgZXhwb3J0YcOnw7VlcyBubyBjdXJ0byBwcmF6by4gRmF0b3JlcyBlc3RydXR1cmFpcyBkb21pbmF2YW0gY29tcGxldGFtZW50ZS4NCg0KLSAqKlBhbmRlbWlhIChjb3JyZWxhw6fDo28gfjApOioqIEPDom1iaW8gY29udGludW91ICoqaXJyZWxldmFudGUqKiBhcGVzYXIgZGUgbW92aW1lbnRvcyBleHRyZW1vcywgcG9pcyBleHBvcnRhw6fDtWVzIGZvcmFtICoqbGltaXRhZGFzIHBvciBjYXBhY2lkYWRlKiosIG7Do28gcG9yIGluY2VudGl2b3MuDQoNCi0gKipQw7NzLVBhbmRlbWlhIChjb3JyZWxhw6fDo28gbmVnYXRpdmEpOioqIEPDom1iaW8gdG9ybm91LXNlIHVtYSAqKnZhcmnDoXZlbCBkZSBhanVzdGUqKiBxdWUgcmVzcG9uZGUgw6BzIGV4cG9ydGHDp8O1ZXMsIGludmVydGVuZG8gYSBjYXVzYWxpZGFkZSBlc3BlcmFkYS4NCg0KKioyLiBBIFJlbGHDp8OjbyBDw6JtYmlvIMOXIFByZcOnbyDDqSBNYWlzIENvbnNpc3RlbnRlOioqDQoNCkEgY29ycmVsYcOnw6NvIEPDom1iaW8gw5cgUHJlw6dvIGFwcmVzZW50YSB1bSBwYWRyw6NvIG1haXMgY29lcmVudGU6DQotIE5lZ2F0aXZhIGVtIHBlcsOtb2RvcyBub3JtYWlzICgtMC40NzEgZSAtMC41NzEpOiBlZmVpdG8gY29tcGV0aXRpdmlkYWRlIGZ1bmNpb25hDQotIFBvc2l0aXZhIGFwZW5hcyBuYSBwYW5kZW1pYSAoMC4zMDYpOiBjaG9xdWVzIG1hY3JvZWNvbsO0bWljb3Mgc2luY3Jvbml6YWRvcw0KLSBNYWlzIGZvcnRlIG5vIHDDs3MtcGFuZGVtaWEgKC0wLjU3MSk6IEJyYXNpbCBnYW5ob3UgcG9kZXIgZGUgbWVyY2Fkbw0KDQpJc3NvIHN1Z2VyZSBxdWUgKipvIGltcGFjdG8gZG8gQnJhc2lsIHNvYnJlIHByZcOnb3MgZ2xvYmFpcyoqIMOpIG1haXMgZGlyZXRvIGUgY29uZmnDoXZlbCBxdWUgbyBpbXBhY3RvIGRvIGPDom1iaW8gc29icmUgZXhwb3J0YcOnw7VlcyBicmFzaWxlaXJhcy4NCg0KKiozLiBFeHBvcnRhw6fDtWVzIFPDo28gRGV0ZXJtaW5hZGFzIHBvciBGYXRvcmVzIE7Do28tRmluYW5jZWlyb3M6KioNCg0KQXMgY29ycmVsYcOnw7VlcyBjb25zaXN0ZW50ZW1lbnRlIGZyYWNhcyBvdSBudWxhcyBlbnRyZSBDw6JtYmlvIMOXIEV4cG9ydGHDp8O1ZXMgKDAuMDY2LCAwLjAzMCwgLTAuMzI2KSBlbSB0b2RvcyBvcyBwZXLDrW9kb3MgcmV2ZWxhbSBxdWUgKip2YXJpw6F2ZWlzIGZpbmFuY2VpcmFzIChwcmXDp28sIGPDom1iaW8pIHPDo28gc2VjdW5kw6FyaWFzKiouIE9zIHZlcmRhZGVpcm9zIGRldGVybWluYW50ZXMgc8OjbzoNCi0gQ2FwYWNpZGFkZSBwcm9kdXRpdmEgKMOhcmVhIHBsYW50YWRhLCBwcm9kdXRpdmlkYWRlLCBjbGltYSkNCi0gSW5mcmFlc3RydXR1cmEgbG9nw61zdGljYSAocG9ydG9zLCBhcm1hesOpbnMsIHRyYW5zcG9ydGUpDQotIERlY2lzw7VlcyBlc3RyYXTDqWdpY2FzIChyZXRlbsOnw6NvIGRlIGVzdG9xdWVzLCB0aW1pbmcgZGUgdmVuZGFzKQ0KLSBEZW1hbmRhIGVzdHJ1dHVyYWwgKGNvbnN1bW8gY2hpbsOqcywgZXN0b3F1ZXMgZ2xvYmFpcykNCg0KKipJbXBsaWNhw6fDtWVzIHBhcmEgUG9sw610aWNhIFDDumJsaWNhIGUgRXN0cmF0w6lnaWEgRW1wcmVzYXJpYWw6KioNCg0KKioxLiBQYXJhIG8gR292ZXJubzoqKg0KDQotICoqSW52ZXN0aW1lbnRvcyBlc3RydXR1cmFpcyBzw6NvIHByaW9yaXTDoXJpb3M6KiogQXMgY29ycmVsYcOnw7VlcyBmcmFjYXMgZW50cmUgY8OibWJpbyBlIGV4cG9ydGHDp8O1ZXMgZGVtb25zdHJhbSBxdWUgcG9sw610aWNhIGNhbWJpYWwgdGVtIGVmZWl0byBsaW1pdGFkby4gSW52ZXN0aXIgZW0gcG9ydG9zLCByb2RvdmlhcywgYXJtYXplbmFnZW0gZSBQJkQgYWdyw61jb2xhIHRlbSByZXRvcm5vIG11aXRvIG1haW9yLg0KDQotICoqQ2FwYWNpZGFkZSBwcm9kdXRpdmEgw6kgbyBnYXJnYWxvOioqIER1cmFudGUgYSBwYW5kZW1pYSwgbWVzbW8gY29tIGluY2VudGl2b3MgbcOheGltb3MgKHByZcOnb3MgZSBjw6JtYmlvIGZhdm9yw6F2ZWlzKSwgYXMgZXhwb3J0YcOnw7VlcyBuw6NvIGV4cGxvZGlyYW0gcHJvcG9yY2lvbmFsbWVudGUgZGV2aWRvIGEgbGltaXRhw6fDtWVzIGbDrXNpY2FzLiBFeHBhbmRpciBjYXBhY2lkYWRlIMOpIGVzc2VuY2lhbC4NCg0KLSAqKk7Do28gYXBvc3RhciBlbSBkZXN2YWxvcml6YcOnw7VlcyBjYW1iaWFpczoqKiBBIGNvcnJlbGHDp8OjbyBuZWdhdGl2YSBubyBww7NzLXBhbmRlbWlhIG1vc3RyYSBxdWUgZGVzdmFsb3JpemFyIG8gUmVhbCBuw6NvIGdhcmFudGUgbWFpcyBleHBvcnRhw6fDtWVzIGUgcG9kZSBpbmNsdXNpdmUgZ2VyYXIgZWZlaXRvcyBwZXJ2ZXJzb3MgKGluZmxhw6fDo28sIGZ1Z2EgZGUgY2FwaXRhaXMpLg0KDQoqKjIuIFBhcmEgUHJvZHV0b3JlczoqKg0KDQotICoqRm9jbyBlbSBwcm9kdXRpdmlkYWRlLCBuw6NvIGVtIGVzcGVjdWxhw6fDo28gY2FtYmlhbDoqKiBBcyBjb3JyZWxhw6fDtWVzIGZyYWNhcyBpbmRpY2FtIHF1ZSBnYW5oYXIgY29tIGPDom1iaW8gw6kgaW1wcmV2aXPDrXZlbC4gSW52ZXN0aXIgZW0gdGVjbm9sb2dpYSwgaXJyaWdhw6fDo28sIGdlbsOpdGljYSBlIGdlc3TDo28gZ2VyYSByZXRvcm5vcyBtYWlzIGNvbmZpw6F2ZWlzLg0KDQotICoqR2VzdMOjbyBkZSBlc3RvcXVlcyDDqSBjcsOtdGljYToqKiBBIGNvcnJlbGHDp8OjbyBuZWdhdGl2YSBubyBww7NzLXBhbmRlbWlhIHN1Z2VyZSBxdWUgZGVjaXPDtWVzIGRlIHRpbWluZyAocXVhbmRvIHZlbmRlcikgcG9kZW0gc2VyIHTDo28gaW1wb3J0YW50ZXMgcXVhbnRvIHByb2R1dGl2aWRhZGUgKHF1YW50byBwcm9kdXppcikuDQoNCi0gKipEaXZlcnNpZmljYcOnw6NvIGRlIG1lcmNhZG9zOioqIFJlZHV6aXIgZGVwZW5kw6puY2lhIGRhIENoaW5hIHBvZGUgcHJvdGVnZXIgY29udHJhIGNob3F1ZXMgZGUgZGVtYW5kYSBxdWUgYWZldGFtIHNpbXVsdGFuZWFtZW50ZSBwcmXDp29zIGUgY8OibWJpby4NCg0KKiozLiBQYXJhIFRyYWRlcnMgZSBFeHBvcnRhZG9yZXM6KioNCg0KLSAqKk1vZGVsb3MgcHJlZGl0aXZvcyBkZXZlbSBpbmNsdWlyIHZhcmnDoXZlaXMgZXN0cnV0dXJhaXM6KiogQ29ycmVsYcOnw7VlcyBmcmFjYXMgZW50cmUgdmFyacOhdmVpcyBmaW5hbmNlaXJhcyBpbmRpY2FtIHF1ZSBtb2RlbG9zIGJhc2VhZG9zIGFwZW5hcyBlbSBwcmXDp28vY8OibWJpbyB0ZXLDo28gYmFpeG8gcG9kZXIgcHJlZGl0aXZvLiBJbmNsdWlyIGNsaW1hLCBlc3RvcXVlcyBnbG9iYWlzLCBwb2zDrXRpY2FzIGNoaW5lc2FzIMOpIGVzc2VuY2lhbC4NCg0KLSAqKkFyYml0cmFnZW0gaW50ZXJ0ZW1wb3JhbCDDqSBtYWlzIGx1Y3JhdGl2YSBxdWUgYXJiaXRyYWdlbSBjYW1iaWFsOioqIEFwcm92ZWl0YXIgZGlmZXJlbsOnYXMgZGUgcHJlw6dvIGFvIGxvbmdvIGRvIHRlbXBvIChjb21wcmFyIG5hIHNhZnJhLCB2ZW5kZXIgbmEgZW50cmVzc2FmcmEpIHBvZGUgZ2VyYXIgbWFpcyBsdWNybyBxdWUgdGVudGFyIHN1cmZhciBtb3ZpbWVudG9zIGNhbWJpYWlzLg0KDQoqKkNvbmNsdXPDo28gc29icmUgYSBBbsOhbGlzZSBUZW1wb3JhbDoqKg0KDQpBIGRlY29tcG9zacOnw6NvIHRlbXBvcmFsIHJldmVsYSB1bWEgdmVyZGFkZSBpbmPDtG1vZGE6ICoqYXMgcmVsYcOnw7VlcyBlbnRyZSBjw6JtYmlvLCBwcmXDp29zIGUgZXhwb3J0YcOnw7VlcyBzw6NvIGluc3TDoXZlaXMsIGZyYWNhcywgZSBmcmVxdWVudGVtZW50ZSBjb250cmFpbnR1aXRpdmFzKiouIElzc28gbsOjbyBpbnZhbGlkYSBhIGltcG9ydMOibmNpYSBkZXNzYXMgdmFyacOhdmVpcywgbWFzIGRlbW9uc3RyYSBxdWU6DQoNCjEuICoqQ2F1c2FsaWRhZGUgw6kgY29tcGxleGEgZSBmcmVxdWVudGVtZW50ZSByZXZlcnNhOioqIEV4cG9ydGHDp8O1ZXMgY2F1c2FtIGPDom1iaW8gdGFudG8gcXVhbnRvIGPDom1iaW8gY2F1c2EgZXhwb3J0YcOnw7Vlcy4NCg0KMi4gKipGYXRvcmVzIGVzdHJ1dHVyYWlzIGRvbWluYW06KiogQ2xpbWEsIGluZnJhZXN0cnV0dXJhLCBlIGNhcGFjaWRhZGUgcHJvZHV0aXZhIGRldGVybWluYW0gNzAtODAlIGRhIHZhcmlhw6fDo28gbmFzIGV4cG9ydGHDp8O1ZXMuDQoNCjMuICoqQ29udGV4dG8gbWFjcm9lY29uw7RtaWNvIGltcG9ydGE6KiogQXMgbWVzbWFzIHZhcmnDoXZlaXMgKGPDom1iaW8sIHByZcOnbykgdMOqbSBlZmVpdG9zIHJhZGljYWxtZW50ZSBkaWZlcmVudGVzIGRlcGVuZGVuZG8gZG8gYW1iaWVudGUgZ2xvYmFsIChub3JtYWxpZGFkZSB2cyBjcmlzZSkuDQoNCjQuICoqU2ltcGxpY2lkYWRlIMOpIGVuZ2Fub3NhOioqIEFuw6FsaXNlcyBxdWUgYWZpcm1hbSAiUmVhbCBmcmFjbyBzZW1wcmUgYXVtZW50YSBleHBvcnRhw6fDtWVzIiBvdSAicHJlw6dvcyBhbHRvcyBzZW1wcmUgaW1wdWxzaW9uYW0gdm9sdW1lcyIgaWdub3JhbSBhIGNvbXBsZXhpZGFkZSBkZW1vbnN0cmFkYSBwZWxvcyBkYWRvcy4NCg0KUGFyYSBvIHNldG9yIGFncsOtY29sYSBicmFzaWxlaXJvIHByb3NwZXJhciBkZSBmb3JtYSBzdXN0ZW50w6F2ZWwsICoqw6kgbmVjZXNzw6FyaW8gaXIgYWzDqW0gZG8gb3BvcnR1bmlzbW8gY2FtYmlhbCoqIGUgaW52ZXN0aXIgZW0gY29tcGV0aXRpdmlkYWRlIGVzdHJ1dHVyYWw6IHByb2R1dGl2aWRhZGUsIGxvZ8Otc3RpY2EsIGFncmVnYcOnw6NvIGRlIHZhbG9yLCBlIGdlc3TDo28gcHJvZmlzc2lvbmFsIGRlIHJpc2NvcyBtdWx0aWRpbWVuc2lvbmFpcy4NCg0KIyMjIFNvamEsIEPDom1iaW8gZSBFeHBvcnRhw6fDtWVzOiBVbWEgVmlzw6NvIEludGVncmFkYQ0KDQpgYGB7ciwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCg0KIyBDcmlhciBzw6lyaWVzIFhUUyBwYXJhIG8gZ3LDoWZpY28gY29tIHRyw6pzIHZhcmnDoXZlaXMNCiMgTm9ybWFsaXphciBleHBvcnRhw6fDtWVzIHBhcmEgZXNjYWxhIGNvbXBhdMOtdmVsIGNvbSBwcmXDp28gKGJhc2UgMTAwKQ0KZGFkb3Nfc29qYV9ncmFmaWNvIDwtIGRhZG9zX3NvamEgJT4lDQogIG11dGF0ZSgNCiAgICBleHBfc29qYV9ub3JtID0gKGV4cF9zb2phX2JpIC8gbWVhbihleHBfc29qYV9iaSwgbmEucm0gPSBUUlVFKSkgKiBtZWFuKHByZWNvX3VzZCwgbmEucm0gPSBUUlVFKQ0KICApDQoNCnhfcHJlY29fdXNkIDwtIHh0cyhkYWRvc19zb2phX2dyYWZpY28kcHJlY29fdXNkLCBvcmRlci5ieSA9IGRhZG9zX3NvamFfZ3JhZmljbyRkYXRhKQ0KeF9jYW1iaW8gPC0geHRzKGRhZG9zX3NvamFfZ3JhZmljbyRjYW1iaW9fbWVkaW8sIG9yZGVyLmJ5ID0gZGFkb3Nfc29qYV9ncmFmaWNvJGRhdGEpDQp4X2V4cF9zb2phX25vcm0gPC0geHRzKGRhZG9zX3NvamFfZ3JhZmljbyRleHBfc29qYV9ub3JtLCBvcmRlci5ieSA9IGRhZG9zX3NvamFfZ3JhZmljbyRkYXRhKQ0KDQojIEdyw6FmaWNvIGNvbSBhcyB0csOqcyBzw6lyaWVzIHVzYW5kbyBoaWdoY2hhcnRlciAtIHRvZGFzIGVtIGxpbmhhcw0KaGlnaGNoYXJ0KHR5cGUgPSAic3RvY2siKSAlPiUNCiAgaGNfdGl0bGUodGV4dCA9ICJQcmXDp28gZGEgU29qYSwgVGF4YSBkZSBDw6JtYmlvIGUgRXhwb3J0YcOnw7VlcyAoTm9ybWFsaXphZG8pIOKAlCAyMDE14oCTMjAyNSIpICU+JQ0KICBoY19zdWJ0aXRsZSh0ZXh0ID0gIkV4cG9ydGHDp8O1ZXMgbm9ybWFsaXphZGFzIHBhcmEgbWVzbWEgZXNjYWxhIGRvIHByZcOnbyB8IEZvbnRlOiBDQk9UL0NNRSBHcm91cCB8IEJDQiB8IENvbWV4U3RhdCIpICU+JQ0KICBoY19hZGRfc2VyaWVzKHhfcHJlY29fdXNkLCBuYW1lID0gIlByZcOnbyBkYSBTb2phIChVUyQvYnVzaGVsKSIsIHR5cGUgPSAibGluZSIsIA0KICAgICAgICAgICAgICAgIGNvbG9yID0gIiNGRUIwMTUiLCBsaW5lV2lkdGggPSAyLjUsDQogICAgICAgICAgICAgICAgdG9vbHRpcCA9IGxpc3QodmFsdWVEZWNpbWFscyA9IDIsIHZhbHVlUHJlZml4ID0gIlVTJCAiKSkgJT4lDQogIGhjX2FkZF9zZXJpZXMoeF9leHBfc29qYV9ub3JtLCBuYW1lID0gIkV4cG9ydGHDp8O1ZXMgU29qYSAobm9ybWFsaXphZG8pIiwgdHlwZSA9ICJsaW5lIiwgDQogICAgICAgICAgICAgICAgY29sb3IgPSAiIzhGQTNCRiIsIGxpbmVXaWR0aCA9IDIsDQogICAgICAgICAgICAgICAgdG9vbHRpcCA9IGxpc3QodmFsdWVEZWNpbWFscyA9IDIsIHZhbHVlU3VmZml4ID0gIiAoZXNjYWxhIG5vcm0uKSIpKSAlPiUNCiAgaGNfYWRkX3Nlcmllcyh4X2NhbWJpbywgbmFtZSA9ICJDw6JtYmlvIChCUkwvVVNEKSIsIHR5cGUgPSAibGluZSIsIA0KICAgICAgICAgICAgICAgIGNvbG9yID0gIiMwMjAyM0MiLCB5QXhpcyA9IDEsIGxpbmVXaWR0aCA9IDIuNSwNCiAgICAgICAgICAgICAgICB0b29sdGlwID0gbGlzdCh2YWx1ZURlY2ltYWxzID0gMiwgdmFsdWVQcmVmaXggPSAiUiQgIikpICU+JQ0KICBoY195QXhpc19tdWx0aXBsZXMoDQogICAgbGlzdCgNCiAgICAgIHRpdGxlID0gbGlzdCh0ZXh0ID0gIlByZcOnbyBkYSBTb2phIChVUyQvYnVzaGVsKSB8IEV4cG9ydGHDp8O1ZXMgKG5vcm0uKSIsIHN0eWxlID0gbGlzdChjb2xvciA9ICIjMUMyQTVFIikpLA0KICAgICAgbGFiZWxzID0gbGlzdChzdHlsZSA9IGxpc3QoY29sb3IgPSAiIzFDMkE1RSIpKSwNCiAgICAgIGdyaWRMaW5lV2lkdGggPSAxDQogICAgKSwNCiAgICBsaXN0KA0KICAgICAgdGl0bGUgPSBsaXN0KHRleHQgPSAiVGF4YSBkZSBDw6JtYmlvIChCUkwvVVNEKSIsIHN0eWxlID0gbGlzdChjb2xvciA9ICIjMDIwMjNDIikpLA0KICAgICAgbGFiZWxzID0gbGlzdChzdHlsZSA9IGxpc3QoY29sb3IgPSAiIzAyMDIzQyIpKSwNCiAgICAgIG9wcG9zaXRlID0gVFJVRQ0KICAgICkNCiAgKSAlPiUNCiAgaGNfbGVnZW5kKA0KICAgIGFsaWduID0gImNlbnRlciIsDQogICAgdmVydGljYWxBbGlnbiA9ICJ0b3AiLA0KICAgIGxheW91dCA9ICJob3Jpem9udGFsIg0KICApICU+JQ0KICBoY19jaGFydChiYWNrZ3JvdW5kQ29sb3IgPSAid2hpdGUiKSAlPiUNCiAgaGNfdG9vbHRpcChzaGFyZWQgPSBUUlVFLCBjcm9zc2hhaXJzID0gVFJVRSkNCmBgYA0KDQpPIGdyw6FmaWNvIGludGVncmFkbyBhY2ltYSBwZXJtaXRlIHZpc3VhbGl6YXIgc2ltdWx0YW5lYW1lbnRlIGFzIHRyw6pzIHZhcmnDoXZlaXMgZnVuZGFtZW50YWlzIGRvIHNldG9yIGRlIHNvamEgYnJhc2lsZWlybzogcHJlw6dvIGludGVybmFjaW9uYWwgZW0gZMOzbGFyZXMsIHRheGEgZGUgY8OibWJpbyBlIHZhbG9yIGV4cG9ydGFkbyAobm9ybWFsaXphZG8gcGFyYSBmYWNpbGl0YXIgYSBjb21wYXJhw6fDo28gdmlzdWFsKS4gRXN0YSByZXByZXNlbnRhw6fDo28gcmV2ZWxhIHBhZHLDtWVzIHF1ZSBjb21wbGVtZW50YW0gYSBhbsOhbGlzZSBkZSBjb3JyZWxhw6fDtWVzIGFudGVyaW9yLg0KDQoqKk5vdGEgc29icmUgTm9ybWFsaXphw6fDo286KiogUGFyYSBmYWNpbGl0YXIgYSBhbsOhbGlzZSB2aXN1YWwsIG9zIHZhbG9yZXMgZGUgZXhwb3J0YcOnw6NvIGZvcmFtIG5vcm1hbGl6YWRvcyBwYXJhIGEgbWVzbWEgZXNjYWxhIGRvIHByZcOnbyBkYSBzb2phLiBJc3NvIHBlcm1pdGUgY29tcGFyYXIgZGlyZXRhbWVudGUgb3MgbW92aW1lbnRvcyByZWxhdGl2b3MgZGFzIHRyw6pzIHZhcmnDoXZlaXMgc2VtIHF1ZSBhIGRpZmVyZW7Dp2EgZGUgbWFnbml0dWRlIGRpZmljdWx0ZSBhIHZpc3VhbGl6YcOnw6NvLiBBIGxpbmhhIGRlIGV4cG9ydGHDp8O1ZXMgbW9zdHJhLCBwb3J0YW50bywgYXMgKip2YXJpYcOnw7VlcyByZWxhdGl2YXMqKiBhbyBsb25nbyBkbyB0ZW1wbywgbsOjbyBvcyB2YWxvcmVzIGFic29sdXRvcyBlbSBiaWxow7VlcyBkZSBkw7NsYXJlcy4NCg0KKipQYWRyw7VlcyBWaXN1YWlzIEV2aWRlbnRlczoqKg0KDQoxLiAqKlNhem9uYWxpZGFkZSBBY2VudHVhZGEgZGFzIEV4cG9ydGHDp8O1ZXM6KiogQSBsaW5oYSBhenVsIGNsYXJhIChleHBvcnRhw6fDtWVzIG5vcm1hbGl6YWRhcykgbW9zdHJhIGNsYXJhbWVudGUgbyBwYWRyw6NvIHNhem9uYWwsIGNvbSBwaWNvcyBwcm9udW5jaWFkb3Mgbm9zIG1lc2VzIGRlIG1hcsOnbyBhIGp1bGhvIChwZXLDrW9kbyBww7NzLWNvbGhlaXRhIGRhIHNhZnJhIHByaW5jaXBhbCkgZSB2YWxlcyBub3MgbWVzZXMgZGUgZGV6ZW1icm8gYSBmZXZlcmVpcm8uIEVzdGUgcGFkcsOjbyByw61naWRvIHNlIHJlcGV0ZSBjb25zaXN0ZW50ZW1lbnRlIGFvIGxvbmdvIGRvcyAxMSBhbm9zIGFuYWxpc2Fkb3MsIGRlbW9uc3RyYW5kbyBxdWUgKipvIGNpY2xvIHByb2R1dGl2byBhZ3LDrWNvbGEgw6kgbyBmYXRvciBtYWlzIHByZXZpc8OtdmVsKiogZGFzIGV4cG9ydGHDp8O1ZXMsIGluZGVwZW5kZW50ZW1lbnRlIGRlIHByZcOnb3Mgb3UgY8OibWJpby4NCg0KMi4gKipNb3ZpbWVudG9zIEFzc2ltw6l0cmljb3M6IFByZcOnb3MgdnMuIEV4cG9ydGHDp8O1ZXM6KiogT2JzZXJ2YS1zZSBxdWUgb3MgcGljb3MgZGUgcHJlw6dvIChsaW5oYSBsYXJhbmphKSBuZW0gc2VtcHJlIGNvaW5jaWRlbSBjb20gcGljb3MgZGUgZXhwb3J0YcOnw7Vlcy4gUG9yIGV4ZW1wbG86DQogICAtIEVtIDIwMjAtMjAyMiwgcXVhbmRvIG9zIHByZcOnb3Mgc3ViaXJhbSBkcmFtYXRpY2FtZW50ZSAoZGUgVVMkIDIwIHBhcmEgVVMkIDQwL2J1c2hlbCksIGFzIGV4cG9ydGHDp8O1ZXMgdGFtYsOpbSBjcmVzY2VyYW0sIG1hcyBhIG1hZ25pdHVkZSBkbyBhdW1lbnRvIGZvaSBtZW5vciBlIG1haXMgZXJyw6F0aWNhLg0KICAgLSBFbSAyMDIzLTIwMjUsIGVucXVhbnRvIG9zIHByZcOnb3MgY2HDrXJhbSBzaWduaWZpY2F0aXZhbWVudGUsIGFzIGV4cG9ydGHDp8O1ZXMgc2UgbWFudGl2ZXJhbSBlbSBuw612ZWlzIHJlbGF0aXZhbWVudGUgYWx0b3MsIHN1Z2VyaW5kbyBxdWUgb3V0cm9zIGZhdG9yZXMgKGNvbW8gc2FmcmFzIGFidW5kYW50ZXMgZSBtZWxob3JpYSBsb2fDrXN0aWNhKSBjb21wZW5zYXJhbSBhIHF1ZWRhIGRlIHByZcOnb3MuDQoNCkVzc2EgYXNzaW1ldHJpYSB2aXN1YWwgYWp1ZGEgYSBleHBsaWNhciBhICoqY29ycmVsYcOnw6NvIHJlbGF0aXZhbWVudGUgZnJhY2EgKDAuMjkpIGVudHJlIHByZcOnbyBlIGV4cG9ydGHDp8O1ZXMqKjogdm9sdW1lcyBleHBvcnRhZG9zIGRlcGVuZGVtIG1haXMgZGEgc2FmcmEgZGlzcG9uw612ZWwgZG8gcXVlIGRvcyBwcmXDp29zIGNvcnJlbnRlcy4NCg0KMy4gKipDw6JtYmlvIGNvbW8gQW1vcnRlY2Vkb3I6KiogRHVyYW50ZSAyMDIzLTIwMjUsIG9ic2VydmEtc2UgcXVlIGVucXVhbnRvIG8gcHJlw6dvIGRhIHNvamEgKGxhcmFuamEpIHJlY3VvdSBzdWJzdGFuY2lhbG1lbnRlLCBvIGPDom1iaW8gKGF6dWwgZXNjdXJvKSBwZXJtYW5lY2V1IGVtIHBhdGFtYXJlcyBlbGV2YWRvcyAoUiQgNSwwMC01LDUwKS4gTmVzdGUgcGVyw61vZG8sIGFzIGV4cG9ydGHDp8O1ZXMgKGF6dWwgY2xhcm8pIG1hbnRpdmVyYW0tc2Ugcm9idXN0YXMgYXBlc2FyIGRhIHF1ZWRhIGRlIHByZcOnb3MsIHN1Z2VyaW5kbyBxdWUgKipvIGPDom1iaW8gZGVzdmFsb3JpemFkbyBhdHVvdSBjb21vIGNvbXBlbnNhZG9yKiosIG1hbnRlbmRvIGEgcmVudGFiaWxpZGFkZSBlbSBSZWFpcyBwYXJhIG9zIHByb2R1dG9yZXMgYnJhc2lsZWlyb3MuDQoNCioqQ29tcG9ydGFtZW50byBkYXMgRXhwb3J0YcOnw7VlczogSW5zaWdodHMgVmlzdWFpcyoqDQoNCioqUGFkcsOjbyAxOiBFeHBvcnRhw6fDtWVzIFJlc3BvbmRlbSBNYWlzIMOgIFNhem9uYWxpZGFkZSBxdWUgYSBQcmXDp29zL0PDom1iaW8qKg0KDQpBIHJlZ3VsYXJpZGFkZSBkb3MgcGljb3MgZSB2YWxlcyBkZSBleHBvcnRhw6fDtWVzIChzZW1wcmUgbm9zIG1lc21vcyBtZXNlcywgYW5vIGFww7NzIGFubykgY29udHJhc3RhIGNvbSBhIGlycmVndWxhcmlkYWRlIGRvcyBtb3ZpbWVudG9zIGRlIHByZcOnbyBlIGPDom1iaW8uIElzc28gZGVtb25zdHJhIHZpc3VhbG1lbnRlIHF1ZToNCi0gKipGYXRvcmVzIGVzdHJ1dHVyYWlzIChjaWNsbyBkZSBjb2xoZWl0YSkgZG9taW5hbSBvIGN1cnRvIHByYXpvKioNCi0gUHJlw6dvcyBlIGPDom1iaW8gaW5mbHVlbmNpYW0gbWFpcyBhICoqbWFnbml0dWRlIGRvcyBwaWNvcyoqIGRlbnRybyBkbyBwYWRyw6NvIHNhem9uYWwsIG7Do28gbyBwYWRyw6NvIGVtIHNpDQoNCioqUGFkcsOjbyAyOiBDb3JyZWxhw6fDo28gRnJhY2EgTsOjbyBTaWduaWZpY2EgSXJyZWxldsOibmNpYSoqDQoNCkVtYm9yYSBhcyBjb3JyZWxhw6fDtWVzIGNhbGN1bGFkYXMgc2VqYW0gZnJhY2FzICgwLjI5IGNvbSBwcmXDp28sIDAuMzEgY29tIGPDom1iaW8pLCBvIGdyw6FmaWNvIG1vc3RyYSBxdWU6DQotICoqTm9zIHBpY29zIHNhem9uYWlzKiosIHF1YW5kbyBow6EgbWFyZ2VtIGRlIGRlY2lzw6NvIHNvYnJlIHZvbHVtZXMgYSBleHBvcnRhciwgcHJlw6dvcyBlIGPDom1iaW8gZXhlcmNlbSBpbmZsdcOqbmNpYSB2aXPDrXZlbA0KLSAqKk5vcyB2YWxlcyBzYXpvbmFpcyoqLCBtZXNtbyBjb20gcHJlw6dvcy9jw6JtYmlvIGZhdm9yw6F2ZWlzLCBhcyBleHBvcnRhw6fDtWVzIHBlcm1hbmVjZW0gYmFpeGFzIHBvciBmYWx0YSBkZSBwcm9kdXRvIGRpc3BvbsOtdmVsDQoNCklzdG8gZXhwbGljYSBhIGNvcnJlbGHDp8OjbyBmcmFjYTogcHJlw6dvIGUgY8OibWJpbyBzw7MgaW5mbHVlbmNpYW0gcXVhbmRvIGjDoSAqKmZsZXhpYmlsaWRhZGUgZGUgb2ZlcnRhKiosIHF1ZSDDqSBsaW1pdGFkYSBwZWxhIHNhem9uYWxpZGFkZS4NCg0KKipQYWRyw6NvIDM6IFBlcsOtb2RvcyBkZSBBbGluaGFtZW50byAoUmFyb3MgbWFzIEltcGFjdGFudGVzKSoqDQoNCk9ic2VydmFtLXNlIG1vbWVudG9zIGVzcGVjw61maWNvcyBvbmRlIHByZcOnb3MsIGPDom1iaW8gZSBleHBvcnRhw6fDtWVzIHNlIGFsaW5oYW0gZmF2b3JhdmVsbWVudGU6DQotICoqTWFyw6dvLUp1bmhvIGRlIDIwMjEtMjAyMjoqKiBQaWNvIHNhem9uYWwgZGUgc2FmcmEgKyBwcmXDp29zIHJlY29yZGVzICsgY8OibWJpbyBlbGV2YWRvID0gZXhwbG9zw6NvIGRlIHJlY2VpdGFzDQotICoqTWFyw6dvLUp1bmhvIGRlIDIwMjM6KiogUGljbyBzYXpvbmFsICsgY8OibWJpbyBhbHRvIChtYXMgcHJlw6dvcyBqw6EgZW0gcXVlZGEpID0gZXhwb3J0YcOnw7VlcyBhaW5kYSBmb3J0ZXMsIHZhbGlkYW5kbyBxdWUgY8OibWJpbyBjb21wZW5zYSBwcmXDp29zIG1lbm9yZXMNCg0KKipWaWNlLVZlcnNhOiBFeHBvcnRhw6fDtWVzIEFmZXRhbSBDw6JtYmlvIChFZmVpdG8gT2JzZXJ2w6F2ZWwpKioNCg0KVW0gcGFkcsOjbyBzdXRpbCBtYXMgaW1wb3J0YW50ZTogZW0gbWVzZXMgZGUgcGljbyBkZSBleHBvcnRhw6fDtWVzIChtYXLDp28tanVsaG8pLCBhIGxpbmhhIGRvIGPDom1iaW8gKGF6dWwgZXNjdXJvKSBmcmVxdWVudGVtZW50ZSBhcHJlc2VudGEgbGV2ZSBtb3ZpbWVudG8gZGUgcXVlZGEgKHZhbG9yaXphw6fDo28gZG8gUmVhbCkuIElzc28gb2NvcnJlIHBvcnF1ZToNCi0gRW50cmFkYSBtYXNzaXZhIGRlIGTDs2xhcmVzIGRhcyBleHBvcnRhw6fDtWVzIGF1bWVudGEgYSBvZmVydGEgZGUgbW9lZGEgZXN0cmFuZ2VpcmENCi0gUHJlc3PDo28gcGVsYSB2YWxvcml6YcOnw6NvIGRvIFJlYWwgKHF1ZWRhIGRhIGNvdGHDp8OjbyBVU0QvQlJMKQ0KLSBFZmVpdG8gZXNwZWNpYWxtZW50ZSB2aXPDrXZlbCBlbSAyMDIzLTIwMjQsIHF1YW5kbyBleHBvcnRhw6fDtWVzIHJvYnVzdGFzIGFqdWRhcmFtIGEgY29udGVyIGEgZGVzdmFsb3JpemHDp8OjbyBjYW1iaWFsDQoNCioqQ29uY2x1c8OjbyBWaXN1YWw6KioNCg0KTyBncsOhZmljbyBpbnRlZ3JhZG8gcmV2ZWxhIHF1ZSAqKmFzIGV4cG9ydGHDp8O1ZXMgZGUgc29qYSBicmFzaWxlaXJhcyBzw6NvIGRldGVybWluYWRhcyBwb3IgdW0gc2lzdGVtYSBjb21wbGV4byBvbmRlIGEgc2F6b25hbGlkYWRlIGRvbWluYSBubyBjdXJ0byBwcmF6bywgZW5xdWFudG8gcHJlw6dvcyBlIGPDom1iaW8gbW9kdWxhbSBhIGludGVuc2lkYWRlIGRvcyBjaWNsb3MqKi4gDQoNClBhcmEgYW7DoWxpc2VzIHByZWRpdGl2YXMgZSBlc3RyYXTDqWdpYXMgZGUgaGVkZ2U6DQoxLiAqKkEgc2F6b25hbGlkYWRlIMOpIG8gcG9udG8gZGUgcGFydGlkYSoqIChhbHRhbWVudGUgcHJldmlzw612ZWwpDQoyLiAqKlByZcOnb3MgaW50ZXJuYWNpb25haXMgZGV0ZXJtaW5hbSBzZSBvIHBpY28gc2F6b25hbCBzZXLDoSAibm9ybWFsIiBvdSAiZXhjZXBjaW9uYWwiKioNCjMuICoqQ8OibWJpbyBhdHVhIGNvbW8gYW1wbGlmaWNhZG9yIG91IGFtb3J0ZWNlZG9yKiosIGVzcGVjaWFsbWVudGUgcmVsZXZhbnRlIHF1YW5kbyBwcmXDp29zIGVzdMOjbyBlbSBxdWVkYQ0KDQpFc3RhIGNvbXByZWVuc8OjbyB2aXN1YWwgYWp1ZGEgYSBleHBsaWNhciBwb3IgcXVlIG1vZGVsb3MgZGUgY29ycmVsYcOnw6NvIHNpbXBsZXMgKDAuMjkgZSAwLjMxKSBzdWJlc3RpbWFtIGEgaW1wb3J0w6JuY2lhIGRlIHByZcOnb3MgZSBjw6JtYmlvOiBzZXUgaW1wYWN0byDDqSBjb25kaWNpb25hbCBlIG7Do28tbGluZWFyLCBhcGFyZWNlbmRvIG1haXMgY2xhcmFtZW50ZSBuYSBhbsOhbGlzZSBncsOhZmljYSB0ZW1wb3JhbCBkbyBxdWUgZW0gZXN0YXTDrXN0aWNhcyBhZ3JlZ2FkYXMuDQoNCiMjIyBBw6fDumNhciwgY2Fmw6ksIG1pbGhvLCBjYXJuZXMgZSBvcyBlZmVpdG9zIGRvIGPDom1iaW8NCg0KQXNzaW0gY29tbyBhIHNvamEsIG91dHJhcyBjb21tb2RpdGllcyBhZ3LDrWNvbGFzIHNvZnJlbSBmb3J0ZSBpbmZsdcOqbmNpYSBjYW1iaWFsLiBPIGHDp8O6Y2FyLCBwb3IgZXhlbXBsbywgw6kgY290YWRvIG5hIGJvbHNhIGRlIE5vdmEgWW9yayAoSUNFIEZ1dHVyZXMgVVMpLCBlIG8gQnJhc2lsLCBtYWlvciBleHBvcnRhZG9yIG11bmRpYWwsIHJlc3BvbmRlIHJhcGlkYW1lbnRlIMOgcyB2YXJpYcOnw7VlcyBkbyBkw7NsYXIuIE8gbWlsaG8gZSBvIGNhZsOpIHNlZ3VlbSBkaW7Dom1pY2Egc2ltaWxhciwgY29tIHByZcOnb3MgYXRyZWxhZG9zIMOgcyBjb3Rhw6fDtWVzIGludGVybmFjaW9uYWlzIChDaGljYWdvIEJvYXJkIG9mIFRyYWRlIHBhcmEgbWlsaG8gZSBJQ0UvQm9sc2EgZGUgTm92YSBZb3JrIHBhcmEgY2Fmw6kpLiANCg0KTm8gY2FzbyBkYXMgY2FybmVzIChib3ZpbmEgZSBkZSBhdmVzKSwgYSBpbmZsdcOqbmNpYSBjYW1iaWFsIMOpIG1vZGVyYWRhIHBlbGEgZXN0cnV0dXJhIGRlIGN1c3RvcywgcXVlIGluY2x1aSByYcOnw6NvIChtaWxobyBlIHNvamEpIGRlIG9yaWdlbSBuYWNpb25hbCwgbWFzIGFpbmRhIGFzc2ltIHNvZnJlIGNvbSBvIGVuY2FyZWNpbWVudG8gZGUgdmFjaW5hcywgbWVkaWNhbWVudG9zIGUgZXF1aXBhbWVudG9zIGltcG9ydGFkb3MuIEVtIHRvZG9zIG9zIGNhc29zLCBhIGRlc3ZhbG9yaXphw6fDo28gZG8gcmVhbCBtZWxob3JhIGEgY29tcGV0aXRpdmlkYWRlIGludGVybmFjaW9uYWwgZG9zIHByb2R1dG9zIGJyYXNpbGVpcm9zLCBtYXMgZWxldmEgb3MgY3VzdG9zIGRlIGluc3Vtb3MgZSBsb2fDrXN0aWNhLCByZXByb2R1emluZG8gbyBlZmVpdG8gZHVhbCBvYnNlcnZhZG8gbmEgc29qYS4NCg0KTyBCcmFzaWwgZXhwb3J0b3UgcXVhbnRpZGFkZXMgZXhwcmVzc2l2YXMgZGVzc2FzIGNvbW1vZGl0aWVzIG5vIHBlcsOtb2RvIGRlIGphbmVpcm8gYSBzZXRlbWJybyBkZSAyMDI1OiBhw6fDumNhciAoVVMkIDksMSBiaWxow7VlcyksIG1pbGhvIChVUyQgNyw4IGJpbGjDtWVzKSwgY2Fmw6kgKFVTJCA2LDQgYmlsaMO1ZXMpLCBjYXJuZSBib3ZpbmEgKFVTJCA2LDIgYmlsaMO1ZXMpIGUgY2FybmUgZGUgYXZlcyAoVVMkIDUsOCBiaWxow7VlcyksIGNvbnNvbGlkYW5kbyBvIHBhcGVsIGVzdHJhdMOpZ2ljbyBkbyBhZ3JvbmVnw7NjaW8gbmEgYmFsYW7Dp2EgY29tZXJjaWFsIGJyYXNpbGVpcmEuDQoNCg0KIyMjIE1pbsOpcmlvIGRlIGZlcnJvIGUgcGV0csOzbGVvOiBhIHJpZ2lkZXogZGEgZGVtYW5kYSBleHRlcm5hDQoNClBhcmEgbyBwZXRyw7NsZW8gYnJ1dG8sIG8gcHJpbmNpcGFsIGRldGVybWluYW50ZSBkbyBmYXR1cmFtZW50byDDqSBhIGNvdGHDp8OjbyBpbnRlcm5hY2lvbmFsIChCcmVudCBvdSBXVEkpLiBFbSAyMDI0IG8gQnJhc2lsIGNvbWVyY2lhbGl6b3UgNjQwIG1pbGjDtWVzIGRlIGJhcnJpcyBkZSBwZXRyw7NsZW8gbm8gZXh0ZXJpb3IgKGFwcm94aW1hZGFtZW50ZSA1MiUgZGUgc3VhIHByb2R1w6fDo28pIGdlcmFuZG8gVVMkIDQ0LDggYmlsaMO1ZXMgZW0gcmVjZWl0YXMuIEFuYWxpc3RhcyBkbyBzZXRvciBub3RhbSBxdWUgYSBjb21iaW5hw6fDo28gZGUgYWx0YSBkYSBkZW1hbmRhIGV4dGVybmEgKHNhbsOnw7VlcyDDoCBSw7pzc2lhKSBlIGTDs2xhciBlbGV2YWRvIHRvcm5vdSBhcyBleHBvcnRhw6fDtWVzIGRlIMOzbGVvIGNydSBicmFzaWxlaXJhcyBhaW5kYSBtYWlzIGF0cmFlbnRlcy4gTmVzc2UgY29udGV4dG8sIHVtYSBkZXByZWNpYcOnw6NvIGRvIHJlYWwgZWxldmEgZW0gcmVhaXMgbyB2YWxvciBvYnRpZG8gcG9yIGJhcnJpbCB2ZW5kaWRvLCBiZW5lZmljaWFuZG8gYXMgZW1wcmVzYXMgZXhwb3J0YWRvcmFzLiBDb250dWRvLCBjaG9xdWVzIGRlIG9mZXJ0YSBlIGRlbWFuZGEgZ2xvYmFpcyAoZGVjaXPDtWVzIGRhIE9wZXArLCBmbHV0dWHDp8O1ZXMgZWNvbsO0bWljYXMgbXVuZGlhaXMpIGNvc3R1bWFtIHNlciBvIGZhdG9yIG1haXMgZGVjaXNpdm8gbmEgcmVjZWl0YSBlbSBkw7NsYXJlczsgbXVkYW7Dp2FzIGNhbWJpYWlzIHTDqm0gaW1wYWN0byBpbmRpcmV0bywgbW9kdWxhbmRvIGFwZW5hcyBhIGNvbnZlcnPDo28gcGFyYSByZWFpcy4gTm8gY2FzbyBkbyBtaW7DqXJpbyBkZSBhIGRpbsOibWljYSDDqSBhbsOhbG9nYS4gTyBCcmFzaWwgZXhwb3J0YSBtaW7DqXJpbyBkZSBmZXJybyBhIGdyYW5lbCwgY29tIHByZcOnb3MgZml4YWRvcyBub3MgbWVyY2Fkb3MgaW50ZXJuYWNpb25haXMgKGVzcGVjaWFsbWVudGUgcG9yIGNvbnRyYXRvcyBkZSBsb25nbyBwcmF6byBlIG5lZ29jaWHDp8O1ZXMgZW0gU2luZ2FwdXJhL0RhbGlhbikuIEVtIDIwMjQsIG8gcGHDrXMgZXhwb3J0b3UgY2VyY2EgZGUgMzUwIG1pbGjDtWVzIGRlIHRvbmVsYWRhcyBkZSBtaW7DqXJpbyBkZSBmZXJybyAoZW0gdG9ybm8gZGUgVVMkIDM1IGJpbGjDtWVzKSwgZXF1aXZhbGVudGUgYSBhcHJveGltYWRhbWVudGUgMTAlIGRhcyBleHBvcnRhw6fDtWVzIHRvdGFpcy4gVW1hIGRlc3ZhbG9yaXphw6fDo28gZG8gcmVhbCB0YW1iw6ltIHNpZ25pZmljYSBtYWlvciByZXRvcm5vIGVtIHJlYWlzIHBvciB0b25lbGFkYSBleHBvcnRhZGEsIG8gcXVlIHBvZGUgYXVtZW50YXIgYSByZW5kYSBkYXMgbWluZXJhZG9yYXMgbmFjaW9uYWlzLiBObyBlbnRhbnRvLCBhc3NpbSBjb21vIG5vIHBldHLDs2xlbywgZmF0b3JlcyBleMOzZ2Vub3Mg4oCTIGVzcGVjaWFsbWVudGUgYSBkZW1hbmRhIGNoaW5lc2EgZSBhIGNvbmNvcnLDqm5jaWEgZGEgQXVzdHLDoWxpYSDigJMgZGV0ZXJtaW5hbSBvIHByZcOnbyBlbSBkw7NsYXJlcyBtYWlzIGRvIHF1ZSBhcyBmbHV0dWHDp8O1ZXMgY2FtYmlhaXMuIERlIG1vZG8gZ2VyYWwsIHVtIHJlYWwgbWFpcyBmcmFjbyBmYWNpbGl0YSBhcyBuZWdvY2lhw6fDtWVzIGVtIHJlYWlzIGUgcG9kZSBpbmNlbnRpdmFyIGEgc2HDrWRhIGRlIHZvbHVtZXMgYWRpY2lvbmFpcywgZW5xdWFudG8gdW0gcmVhbCBtYWlzIGZvcnRlIHJlZHV6aXJpYSBhIGNvbXBldGl0aXZpZGFkZSBkbyBtaW7DqXJpbyBicmFzaWxlaXJvIGVtIHRlcm1vcyBkZSBwcmXDp28gZXh0ZXJuby4NCg0KIyMgSW1wYWN0byBub3MgcHJvZHV0b3MgaW1wb3J0YWRvcw0KDQpgYGB7ciwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgR1JBRklDTyBERSBCQVJSQVMgLSBJbXBvcnRhw6fDtWVzDQojIERhZG9zIOKAlCBKYW7igJNTZXQgMjAyNSAoRmF6Q29tZXgpDQpkYWRvc19pbXAgPC0gZGF0YS5mcmFtZSgNCiAgUHJvZHV0byA9IGMoDQogICAgIkFkdWJvcyBvdSBmZXJ0aWxpemFudGVzIiwNCiAgICAiw5NsZW9zIGNvbWJ1c3TDrXZlaXMgZGUgcGV0csOzbGVvIiwNCiAgICAiRGVtYWlzIHByb2R1dG9zIC0gSW5kLiB0cmFuc2Zvcm1hw6fDo28iLA0KICAgICJNZWRpY2FtZW50b3MgZSBmYXJtYWPDqnV0aWNvcyIsDQogICAgIlbDoWx2dWxhcyBlIHR1Ym9zIHRlcm1pw7RuaWNvcyIsDQogICAgIkVxdWlwYW1lbnRvcyBkZSB0ZWxlY29tdW5pY2HDp8O1ZXMiLA0KICAgICJQYXJ0ZXMgZGUgdmXDrWN1bG9zIGF1dG9tw7N2ZWlzIiwNCiAgICAiQ29tcG9zdG9zIG9yZ2Fuby1pbm9yZ8Oibmljb3MiLA0KICAgICJHw6FzIG5hdHVyYWwgbGlxdWVmZWl0byIsDQogICAgIk1vdG9yZXMgZSBtw6FxdWluYXMgbsOjbyBlbMOpdHJpY29zIg0KICApLA0KICBWYWxvcl9CaWxob2VzID0gYygxMy40LCAxMi4xLCA4LjksIDcuMywgNy4xLCA3LjAsIDYuNywgNS45LCAzLjksIDMuOCkNCikNCg0KY29yZXNfaW1wIDwtIGMoIiNGRUIwMTUiLCAiIzAyMDIzQyIsICIjOEZBM0JGIiwgIiNCNkM0RDkiLCAiI0Q4RTBFQSIsIA0KICAgICAgICAgICAgICAiIzhCOURDMyIsICIjRkVCMDE1IiwgIiMwMjAyM0MiLCAiIzhGQTNCRiIsICIjQjZDNEQ5IikNCg0KZmlnX2ltcG9ydHMgPC0gcGxvdF9seSgNCiAgZGFkb3NfaW1wLA0KICB4ID0gfnJlb3JkZXIoUHJvZHV0bywgVmFsb3JfQmlsaG9lcyksDQogIHkgPSB+VmFsb3JfQmlsaG9lcywNCiAgdHlwZSA9ICJiYXIiLA0KICBtYXJrZXIgPSBsaXN0KA0KICAgIGNvbG9yID0gY29yZXNfaW1wLA0KICAgIGxpbmUgPSBsaXN0KGNvbG9yID0gIndoaXRlIiwgd2lkdGggPSAxKQ0KICApLA0KICB0ZXh0ID0gfnBhc3RlMCgiVVMkICIsIFZhbG9yX0JpbGhvZXMsICIgYmkiKSwNCiAgdGV4dHBvc2l0aW9uID0gIm91dHNpZGUiLA0KICBob3ZlcnRlbXBsYXRlID0gIjxiPiV7eH08L2I+PGJyPlVTJCAle3k6LjFmfSBiaWxow7VlczxleHRyYT48L2V4dHJhPiINCikgJT4lDQogIGxheW91dCgNCiAgICB0aXRsZSA9IGxpc3QoDQogICAgICB0ZXh0ID0gIlByaW5jaXBhaXMgUHJvZHV0b3MgSW1wb3J0YWRvcyBwZWxvIEJyYXNpbCDigJQgSmFu4oCTU2V0IDIwMjU8YnI+PHN1Yj5Gb250ZTogRmF6Q29tZXgg4oCUIEltcG9ydGHDp8O1ZXMgYnJhc2lsZWlyYXMgKGphbuKAk3NldC8yMDI1KTwvc3ViPiIsDQogICAgICBmb250ID0gbGlzdChzaXplID0gMTYsIGNvbG9yID0gIiMxQzJBNUUiKQ0KICAgICksDQogICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gIiIsIHRpY2thbmdsZSA9IC00NSksDQogICAgeWF4aXMgPSBsaXN0KA0KICAgICAgdGl0bGUgPSAiVmFsb3IgSW1wb3J0YWRvIChVUyQgYmlsaMO1ZXMpIiwNCiAgICAgIHNob3dncmlkID0gVFJVRSwNCiAgICAgIGdyaWRjb2xvciA9ICIjRTVFNUU1Ig0KICAgICksDQogICAgcGFwZXJfYmdjb2xvciA9ICJ3aGl0ZSIsDQogICAgcGxvdF9iZ2NvbG9yID0gIiNGOEY4RjgiLA0KICAgIG1hcmdpbiA9IGxpc3QodCA9IDgwLCBiID0gMTUwLCBsID0gNjAsIHIgPSA0MCkNCiAgKQ0KDQpmaWdfaW1wb3J0cw0KDQpgYGANCg0KTyBCcmFzaWwsIHRlcmNlaXJvIG1haW9yIHByb2R1dG9yIGRlIGdyw6NvcyBkbyBtdW5kbywgw6kgdGFtYsOpbSBvIG1haW9yIGltcG9ydGFkb3IgZ2xvYmFsIGRlIGFkdWJvcyBlIGZlcnRpbGl6YW50ZXMuIEEgZGVtYW5kYSBwb3IgZXNzZXMgaW5zdW1vcyBjcmVzY2UganVudG8gY29tIGEgZXhwYW5zw6NvIGRhIHByb2R1w6fDo28gZGUgY2VyZWFpcywgZW5xdWFudG8gYSBpbmTDunN0cmlhIG5hY2lvbmFsIGRvIHNldG9yIHBlcm1hbmVjZSBwb3VjbyBkZXNlbnZvbHZpZGEgZSBzZW0gc2luYWlzIGRlIGF2YW7Dp28gcmVsZXZhbnRlIG5vcyBwcsOzeGltb3MgYW5vcy4gDQoNCkEgYW7DoWxpc2UgZG9zIHByb2R1dG9zIGltcG9ydGFkb3MgcGVsbyBCcmFzaWwgZGUgSmFuZWlybyBhIFNldGVtYnJvIGRlIDIwMjUgZXZpZGVuY2lhIHF1ZSBhIGJhc2UgZGUgY3VzdG9zIGRvIHByb2R1dG9yIMOpIGZvcnRlbWVudGUgZG9sYXJpemFkYSwgY29tIGRlc3RhcXVlIHBhcmEgYSBhbHRhIGltcG9ydGHDp8OjbyBkZSAqKmFkdWJvcyBvdSBmZXJ0aWxpemFudGVzKiogKFVTJCAxMyw0IGJpbGjDtWVzKSBlIGRlICoqw7NsZW9zIGNvbWJ1c3TDrXZlaXMgZGUgcGV0csOzbGVvIG91IG1pbmVyYWlzIGJldHVtaW5vc29zKiogKFVTJCAxMiwxIGJpbGjDtWVzKS4gT3V0cm9zIHByb2R1dG9zIHJlbGV2YW50ZXMgaW5jbHVlbSBwcm9kdXRvcyBkYSBpbmTDunN0cmlhIGRlIHRyYW5zZm9ybWHDp8OjbyAoVVMkIDgsOSBiaWxow7VlcyksIG1lZGljYW1lbnRvcyAoVVMkIDcsMyBiaWxow7VlcykgZSBjb21wb25lbnRlcyBlbGV0csO0bmljb3MgKFVTJCA3LDEgYmlsaMO1ZXMpLg0KDQpBIGRlcGVuZMOqbmNpYSDDqSBjcsOtdGljYTogbyBCcmFzaWwgw6kgbyBtYWlvciBpbXBvcnRhZG9yIGdsb2JhbCBkZSBmZXJ0aWxpemFudGVzLCBpbXBvcnRhbmRvICoqODUlIGRlIHNldSBjb25zdW1vKiouIEJydW5vIFZpemlvbGksIGRvIERlcGFydGFtZW50byBUw6ljbmljbyBlIEVjb27DtG1pY28gKERURSkgZG8gU2lzdGVtYSBGZWRlcmHDp8OjbyBkYSBBZ3JpY3VsdHVyYSBkbyBFc3RhZG8gZG8gUGFyYW7DoSwgZGVzdGFjYSBxdWUgZXNzYSBpbXBvcnRhw6fDo28gZGUgaW5zdW1vcyBkaXJldG9zIHJlcHJlc2VudGEgKio0MCUgZG8gY3VzdG8gdG90YWwgZGUgcHJvZHXDp8OjbyBkYSBzb2phKiouIFNpbXVsdGFuZWFtZW50ZSwgYSBpbXBvcnRhw6fDo28gZGUgZGVyaXZhZG9zIGRlIHBldHLDs2xlbyAoZGllc2VsKSBlbGV2YSBvcyBjdXN0b3MgbG9nw61zdGljb3MgKGZyZXRlIGUgYXJtYXplbmFtZW50bykuIA0KDQpBc3NpbSwgbyBkw7NsYXIgYWx0byBhdHVhIGNvbW8gdW1hICoqIkVzcGFkYSBkZSBEb2lzIEd1bWVzIioqLCBhdW1lbnRhbmRvIG8gY3VzdG8gb3BlcmFjaW9uYWwgKGluc3Vtb3MpIGUgbyBjdXN0byBkZSBlc2NvYW1lbnRvIChmcmV0ZSksIGVzbWFnYW5kbyBhIG1hcmdlbSBkbyBwcm9kdXRvciBhZ3LDrWNvbGEuICJRdWFudG8gbWFpb3IgbyBjdXN0byBsb2fDrXN0aWNvLCBtZW5vciBvIHByw6ptaW8gKGJhc2lzKSBuYXF1ZWxlIGxvY2FsIGUsIHBvcnRhbnRvLCBtZW5vciBzZXLDoSBvIHZhbG9yIHJlY2ViaWRvIHBlbG8gcHJvZHV0b3IiLCBjb21lbnRhIFJvZHJpZ28gTGFtYmVydGksIGVzcGVjaWFsaXN0YSBlbSBnZXN0w6NvIGRlIHJpc2NvcyBwYXJhIGdyw6NvcyBuYSBIZWRnZXBvaW50Lg0KDQoNCiMjIENvbmNsdXPDo28NCg0KRW0gc8OtbnRlc2UsIGEgYW7DoWxpc2UgZGEgZGluw6JtaWNhIGNhbWJpYWwgZSBkYSBCYWxhbsOnYSBDb21lcmNpYWwgYnJhc2lsZWlyYSByZXZlbGEgcXVlIGEgVGF4YSBkZSBDw6JtYmlvIMOpIHVtYSB2YXJpw6F2ZWwgaW1wb3J0YW50ZSBxdWUgYWZldGEgYSByZW50YWJpbGlkYWRlIGRvIEFncm9uZWfDs2NpbyBlIGEgc2HDumRlIGRhcyBjb250YXMgZXh0ZXJuYXMuIE8gQnJhc2lsLCBlbnF1YW50byBwZXJtYW5lY2VyIGFsdGFtZW50ZSBkZXBlbmRlbnRlIGRhcyBleHBvcnRhw6fDtWVzIGRlIGNvbW1vZGl0aWVzIGUsIHNpbXVsdGFuZWFtZW50ZSwgZGEgaW1wb3J0YcOnw6NvIGRlIGluc3Vtb3MsIGVzdGFyw6EgcHJlc28gYW8gZGlsZW1hIGRhICJFc3BhZGEgZGUgRG9pcyBHdW1lcyIuDQoNCk8gZMOzbGFyIGFsdG8gKGPDom1iaW8gZGVzdmFsb3JpemFkbykgdHJheiBvIGJlbmVmw61jaW8gaW1lZGlhdG8gZGUgbWF4aW1pemFyIGEgcmVjZWl0YSBkYXMgZXhwb3J0YcOnw7VlcyBlbSBSZWFpcywgaW1wdWxzaW9uYW5kbyBvIHN1cGVyw6F2aXQgY29tZXJjaWFsLiBDb250dWRvLCB0cmF6IG8gbWFsZWbDrWNpbyBlc3RydXR1cmFsIGRlIGF1bWVudGFyIG8gY3VzdG8gZGUgcHJvZHXDp8OjbywgcG9pcyBpbnN1bW9zIGVzc2VuY2lhaXMsIGNvbW8gZmVydGlsaXphbnRlcyAoNDAlIGRvIGN1c3RvIGRhIHNvamEpIGUgZGVyaXZhZG9zIGRlIHBldHLDs2xlbywgc8OjbyBjb3RhZG9zIGVtIGTDs2xhci4NCg0KQSBhbsOhbGlzZSBxdWFudGl0YXRpdmEgYXRyYXbDqXMgZGUgY29ycmVsYcOnw7VlcyBkZW1vbnN0cm91IHJlbGHDp8O1ZXMgY29tcGxleGFzIGVudHJlIGPDom1iaW8sIHByZcOnb3MgaW50ZXJuYWNpb25haXMgZSBleHBvcnRhw6fDtWVzIGRlIHNvamEuIEFzICoqY29ycmVsYcOnw7VlcyByZWxhdGl2YW1lbnRlIGZyYWNhcyBlbmNvbnRyYWRhcyoqIOKAlCAwLjI5IGVudHJlIHByZcOnb3MgZSBleHBvcnRhw6fDtWVzLCBlIDAuMzEgZW50cmUgY8OibWJpbyBlIGV4cG9ydGHDp8O1ZXMg4oCUIG7Do28gaW5kaWNhbSBpcnJlbGV2w6JuY2lhIGRlc3NhcyB2YXJpw6F2ZWlzLCBtYXMgc2ltIHJldmVsYW0gYSAqKmNvbXBsZXhpZGFkZSBkbyBzaXN0ZW1hIGFncsOtY29sYSBicmFzaWxlaXJvKiosIG9uZGUgbcO6bHRpcGxvcyBmYXRvcmVzIGF0dWFtIHNpbXVsdGFuZWFtZW50ZToNCg0KMS4gKipTYXpvbmFsaWRhZGUgYWdyw61jb2xhKiogw6kgbyBwYWRyw6NvIG1haXMgZm9ydGUgZSBwcmV2aXPDrXZlbCwgZGV0ZXJtaW5hZG8gcGVsbyBjaWNsbyBkZSBwbGFudGlvL2NvbGhlaXRhIGUgaW5kZXBlbmRlbnRlIGRlIHByZcOnb3Mgb3UgY8OibWJpbyBubyBjdXJ0byBwcmF6by4NCg0KMi4gKipQcmXDp29zIGludGVybmFjaW9uYWlzKiogaW5mbHVlbmNpYW0gcHJpbmNpcGFsbWVudGUgZGVjaXPDtWVzIGRlIHJldGVuw6fDo28vbGliZXJhw6fDo28gZGUgZXN0b3F1ZXMgZSBwbGFuZWphbWVudG8gZGUgc2FmcmFzIGZ1dHVyYXMsIGNvbSBlZmVpdG9zIHF1ZSBzZSBtYXRlcmlhbGl6YW0gY29tIGRlZmFzYWdlbSB0ZW1wb3JhbC4NCg0KMy4gKipUYXhhIGRlIGPDom1iaW8qKiBhdHVhIGNvbW8gbW9kdWxhZG9yIGRlIG1hcmdlbnMgZGUgcmVudGFiaWxpZGFkZSBlbSBSZWFpcywgYWZldGFuZG8gZGVjaXPDtWVzIGRlIGludmVzdGltZW50byBlIGFsb2Nhw6fDo28gZW50cmUgbWVyY2FkbyBpbnRlcm5vIGUgZXh0ZXJubyBubyBtw6lkaW8gcHJhem8uDQoNCjQuICoqRmF0b3JlcyBlc3RydXR1cmFpcyoqIGNvbW8gY2xpbWEsIGluZnJhZXN0cnV0dXJhIGxvZ8Otc3RpY2EsIGRlbWFuZGEgY2hpbmVzYSBlIHBvbMOtdGljYXMgY29tZXJjaWFpcyBleGVyY2VtIGluZmx1w6puY2lhcyBxdWUgbsOjbyBzw6NvIGNhcHR1cmFkYXMgcG9yIGNvcnJlbGHDp8O1ZXMgc2ltcGxlcyBlbnRyZSB2YXJpw6F2ZWlzIGZpbmFuY2VpcmFzLg0KDQpBIGFuw6FsaXNlIHRlbXBvcmFsIHJldmVsb3UgcXVlIGVzc2FzIHJlbGHDp8O1ZXMgbsOjbyBzw6NvIGVzdMOhdGljYXM6IGR1cmFudGUgYSBwYW5kZW1pYSAoMjAyMC0yMDIxKSwgdG9kYXMgYXMgdmFyacOhdmVpcyBzZSBtb3ZlcmFtIHNpbmNyb25pemFkYW1lbnRlIHBhcmEgY2ltYSAoY29ycmVsYcOnw6NvIGZvcnRlbWVudGUgcG9zaXRpdmEpLCBjcmlhbmRvIHVtYSBqYW5lbGEgZXhjZXBjaW9uYWwgZGUgbHVjcm9zLiBObyBwZXLDrW9kbyBww7NzLXBhbmRlbWlhICgyMDIyLTIwMjUpLCBvIGPDom1iaW8gZWxldmFkbyB0ZW0gYXR1YWRvIGNvbW8gKipjb21wZW5zYWRvciBwYXJjaWFsKiogZGEgcXVlZGEgZGUgcHJlw6dvcyBpbnRlcm5hY2lvbmFpcywgZGVtb25zdHJhbmRvIHNldSBwYXBlbCBkZSBhbW9ydGVjZWRvciBkZSBjaG9xdWVzIGV4dGVybm9zLg0KDQpBIGNvbXBhcmHDp8OjbyBlbnRyZSBQSUIgYnJhc2lsZWlybyBlIGV4cG9ydGHDp8O1ZXMgdG90YWlzIHJlZm9yw6dvdSBxdWUsIGVtYm9yYSBhcyBleHBvcnRhw6fDtWVzIHRlbmhhbSBjcmVzY2lkbyBzaWduaWZpY2F0aXZhbWVudGUgbWFpcyBxdWUgbyBQSUIgZHVyYW50ZSBvIGJvb20gZGUgY29tbW9kaXRpZXMgKDIwMjEtMjAyMyksIGVzc2UgY3Jlc2NpbWVudG8gbsOjbyBzZSB0cmFkdXppdSBlbSBkZXNlbnZvbHZpbWVudG8gZWNvbsO0bWljbyBwcm9wb3JjaW9uYWwuIElzc28gZXZpZGVuY2lhIGEgbmVjZXNzaWRhZGUgZGUgYWdyZWdhciB2YWxvciDDoCBwYXV0YSBleHBvcnRhZG9yYSBlIGZvcnRhbGVjZXIgZW5jYWRlYW1lbnRvcyBwcm9kdXRpdm9zIGRvbcOpc3RpY29zIGRvcyBzZXRvcmVzIGV4cG9ydGFkb3Jlcy4NCg0KRW5xdWFudG8gYSBpbmTDunN0cmlhIG5hY2lvbmFsIGRlIGZlcnRpbGl6YW50ZXMgZm9yIGZyYWNhIGUgbyBwYcOtcyBuw6NvIGRlc2Vudm9sdmVyIGFsdGVybmF0aXZhcyBkZSBzdXByaW1lbnRvLCBhIHZ1bG5lcmFiaWxpZGFkZSBjYW1iaWFsIHBlcnNpc3RpcsOhLiBEZXNzYSBmb3JtYSwgYSBhbHRhIGRvIGTDs2xhciBjb250aW51YXLDoSBhIHNlciwgc2ltdWx0YW5lYW1lbnRlLCB1bSBtb3RvciBkZSByZWNlaXRhIGUgdW0gZmF0b3IgZGUgY29tcHJlc3PDo28gZGFzIG1hcmdlbnMgcGFyYSBvIHByb2R1dG9yIGFncsOtY29sYS4gDQoNCioqTm8gZW50YW50bywgYSBhbsOhbGlzZSBkZW1vbnN0cm91IHF1ZSBvIHN1Y2Vzc28gZG8gYWdyb25lZ8OzY2lvIGV4cG9ydGFkb3IgYnJhc2lsZWlybyBkZXBlbmRlIG1lbm9zIGRlIGFwb3N0YXMgZW0gbW92aW1lbnRvcyBjYW1iaWFpcyBmYXZvcsOhdmVpcyBlIG1haXMgZGU6KioNCg0KMS4gKipHZXN0w6NvIGRlIHJpc2NvIHNvZmlzdGljYWRhOioqIGhlZGdlIGRlIHByZcOnb3MsIGPDom1iaW8gZSBzZWd1cm9zIGNsaW3DoXRpY29zDQoyLiAqKkdhbmhvcyBkZSBwcm9kdXRpdmlkYWRlOioqIGludmVzdGltZW50b3MgZW0gdGVjbm9sb2dpYSwgcGVzcXVpc2EgZSBkZXNlbnZvbHZpbWVudG8NCjMuICoqTWVsaG9yaWEgZXN0cnV0dXJhbDoqKiBpbmZyYWVzdHJ1dHVyYSBsb2fDrXN0aWNhIGUgcmVkdcOnw6NvIGRlIGN1c3RvcyBkZSBlc2NvYW1lbnRvDQo0LiAqKkRpdmVyc2lmaWNhw6fDo286KiogYWdyZWdhw6fDo28gZGUgdmFsb3IgZSBleHBhbnPDo28gcGFyYSBtYW51ZmF0dXJhcyBkZXJpdmFkYXMgZGUgY29tbW9kaXRpZXMNCg0KTyBjw6JtYmlvIGUgb3MgcHJlw6dvcyBpbnRlcm5hY2lvbmFpcyBjcmlhbSBvcG9ydHVuaWRhZGVzIGUgZGVzYWZpb3MsIG1hcyBzw6NvIG9zICoqZmF0b3JlcyBlc3RydXR1cmFpcyBlIGRlIGdlc3TDo28qKiBxdWUgZGV0ZXJtaW5hbSwgbm8gbG9uZ28gcHJhem8sIGEgY29tcGV0aXRpdmlkYWRlIGUgc3VzdGVudGFiaWxpZGFkZSBkbyBzZXRvciBhZ3LDrWNvbGEgYnJhc2lsZWlybyBubyBtZXJjYWRvIGdsb2JhbC4NCg0KIyMgUmVmZXLDqm5jaWFzDQoNCkJBTkNPIENFTlRSQUwgRE8gQlJBU0lMLiBTw6lyaWVzIHRlbXBvcmFpcyDigJMgU2lzdGVtYSBHZXJlbmNpYWRvciBkZSBTw6lyaWVzIFRlbXBvcmFpcyAoU0dTKS4gQnJhc8OtbGlhOiBCYW5jbyBDZW50cmFsIGRvIEJyYXNpbC4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3d3dy5iY2IuZ292LmJyL2VzdGF0aXN0aWNhcy9zZ3M+LiBBY2Vzc28gZW06IDIyIG91dC4gMjAyNS4NCg0KTUFORlJJTiwgSnVsaWV0LiBBZ3JvIGJyYXNpbGVpcm8gZ2FzdGEgVVMkIDI1IGJpbGjDtWVzIHBvciBhbm8gcGFyYSBpbXBvcnRhciA4NSAlIGRvcyBmZXJ0aWxpemFudGVzLiBHYXpldGEgZG8gUG92bywgMjYgYWdvLiAyMDI0LiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vd3d3LmdhemV0YWRvcG92by5jb20uYnIvcGFyYW5hL3VzLTI1LWJpbGhvZXMtby1jdXN0by1wYXJhLW8tYWdyby1icmFzaWxlaXJvLWFvLWltcG9ydGFyLTg1LWRvcy1mZXJ0aWxpemFudGVzLz4uIEFjZXNzbyBlbTogMjIgb3V0LiAyMDI1Lg0KDQpESU5JWiwgQXVndXN0by4gQ8OibWJpbyBmYXZvcmVjZSBleHBvcnRhw6fDo28sIG1hcyBhdW1lbnRhIGN1c3RvIGRlIGluc3VtbyBwYXJhIG8gYWdybywgZGl6IGFuYWxpc3RhLiBJbmZvTW9uZXksIDI2IGp1bi4gMjAyNC4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3d3dy5pbmZvbW9uZXkuY29tLmJyL21lcmNhZG9zL2NhbWJpby1mYXZvcmVjZS1leHBvcnRhY2FvLW1hcy1hdW1lbnRhLWN1c3RvLWRlLWluc3Vtby1wYXJhLW8tYWdyby1kaXotYW5hbGlzdGEvPiAuIEFjZXNzbyBlbTogMjIgb3V0LiAyMDI1Lg0KDQpUSVJPTkUsIEphY2tzb24uIE8gcHJlw6dvIGRvIHBldHLDs2xlbyBlIGEgYWdyaWN1bHR1cmEuIEhlZGdlcG9pbnQgR2xvYmFsIE1hcmtldHMgQmxvZywgOSBkZXouIDIwMjQuIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly9oZWRnZXBvaW50Z2xvYmFsLmNvbS9wdC1ici9ibG9nL28tcHJlY28tZG8tcGV0cm9sZW8tZS1hLWFncmljdWx0dXJhPi4gQWNlc3NvIGVtOiAyMiBvdXQuIDIwMjUuDQoNCkJSQVNJTC4gTWluaXN0w6lyaW8gZGEgRWNvbm9taWE7IFNlY3JldGFyaWEtRXhlY3V0aXZhOyBEZXBhcnRhbWVudG8gZGUgQ29tw6lyY2lvIEV4dGVyaW9yLiBDb21leFN0YXQg4oCTIERhZG9zIGdlcmFpcyBkZSBjb23DqXJjaW8gZXh0ZXJpb3IuIERpc3BvbsOtdmVsIGVtOiA8aHR0cHM6Ly9jb21leHN0YXQubWRpYy5nb3YuYnIvcHQvZ2VyYWw+LiBBY2Vzc28gZW06IDIyIG91dC4gMjAyNS4NCg0KRkFaQ09NRVguIEltcG9ydGHDp8OjbyBubyBCcmFzaWw6IHByaW5jaXBhaXMgcHJvZHV0b3MgaW1wb3J0YWRvcy4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3d3dy5mYXpjb21leC5jb20uYnIvaW1wb3J0YWNhby9wcmluY2lwYWlzLXByb2R1dG9zLWltcG9ydGFkb3MtYnJhc2lsLz4uIEFjZXNzbyBlbTogMjIgb3V0LiAyMDI1Lg0KDQpJVEHDmiBCQkEuIFJhZGFyIEFncm8g4oCTIE1lcmNhZG8gZGEgc29qYSwgdGF4YSBkZSBjw6JtYmlvIGUgaW1wYWN0byBub3MgcHJlw6dvcy4gSXRhw7ogVW5pYmFuY28sIDI0IHNldC4gMjAyNS4gRGlzcG9uw612ZWwgZW06IDxodHRwczovL3d3dy5pdGF1LmNvbS5ici9tZWRpYS9kYW0vbS81MTRjZDFjOTU3ZTgxMWM3L29yaWdpbmFsL1JhZGFyLUFncm8tTWVyY2Fkby1kYS1zb2phLXRheGEtZGUtY2FtYmlvLWUtaW1wYWN0by1ub3MtcHJlY29zX0l0YXUtQkJBLnBkZj4uIEFjZXNzbyBlbTogMjIgb3V0LiAyMDI1Lg0KDQpJVEHDmiBCQkEuIFZpc8OjbyBBZ3JvIDIwMjUuIEl0YcO6IFVuaWJhbmNvLCAyMDI1LiBEaXNwb27DrXZlbCBlbTogPGh0dHBzOi8vd3d3Lml0YXUuY29tLmJyL21lZGlhL2RhbS9tLzY4YzAwMDMzNWI1NWVhYWIvb3JpZ2luYWwvVmlzYW9BZ3JvXzIwMjVfSXRhdUJCQS5wZGY+LiBBY2Vzc28gZW06IDIyIG91dC4gMjAyNS4NCg0KQUdST0xJTksuIE8gSUJHRSBlIG9zIG7Dum1lcm9zIGRvIGFncm8uIEFncm9saW5rLCAyNiBhZ28uIDIwMjQuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL3d3dy5hZ3JvbGluay5jb20uYnIvY29sdW5pc3Rhcy9jb2x1bmEvby1pYmdlLWUtb3MtbnVtZXJvcy1kby1hZ3JvXzUwNTI5Ny5odG1sDQouIEFjZXNzbyBlbTogMjIgb3V0LiAyMDI1Lg0KDQpCQVNFRE9TREFET1MuIENvbmp1bnRvIGRlIGRhZG9zOiAiZmM0MDNiNDAtYTdlMS00MGU3LTllZmUtOTEwODQ3YjQ1YTY5Ii4gQmFzZSBkb3MgRGFkb3MuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL2Jhc2Vkb3NkYWRvcy5vcmcvZGF0YXNldC9mYzQwM2I0MC1hN2UxLTQwZTctOWVmZS05MTA4NDdiNDVhNjk/dGFibGU9YmQ5YjI5NjAtMzYxZi00NDY1LWJlMjMtYmFhYWRhYWYyNjZkDQouIEFjZXNzbyBlbTogMjIgb3V0LiAyMDI1Lg0KDQpNRVRSw5NQT0xFUy4gQ29tbyBvIHJlYWwgZGVzdmFsb3JpemFkbyBpbXBhY3RhIG8gYm9sc28gZG8gYnJhc2lsZWlybyBlbSAyMDI1LiBNZXRyw7Nwb2xlcywgMjAyNS4gRGlzcG9uw612ZWwgZW06IGh0dHBzOi8vd3d3Lm1ldHJvcG9sZXMuY29tL2JyYXNpbC9jb21vLW8tcmVhbC1kZXN2YWxvcml6YWRvLWltcGFjdGEtby1ib2xzby1kby1icmFzaWxlaXJvLWVtLTIwMjUNCi4gQWNlc3NvIGVtOiAyMiBvdXQuIDIwMjUuDQoNCkNFUEVBLiBJbmRpY2Fkb3Igc29qYS4gQ2VwZWEuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL3d3dy5jZXBlYS5vcmcuYnIvYnIvaW5kaWNhZG9yL3NvamEuYXNweA0KLiBBY2Vzc28gZW06IDIyIG91dC4gMjAyNS4NCg0KRVhBTUUuIENvbW8gZnVuY2lvbmEgbyBtZXJjYWRvIGRlIGPDom1iaW8gZSBxdWFpcyBmYXRvcmVzIGluZmx1ZW5jaWFtIGFzIHRheGFzLiBFeGFtZSwgMjAyNS4gRGlzcG9uw612ZWwgZW06IGh0dHBzOi8vZXhhbWUuY29tL2ludmVzdC9ndWlhL2NvbW8tZnVuY2lvbmEtby1tZXJjYWRvLWRlLWNhbWJpby1lLXF1YWlzLWZhdG9yZXMtaW5mbHVlbmNpYW0tYXMtdGF4YXMvDQouIEFjZXNzbyBlbTogMjIgb3V0LiAyMDI1Lg0KDQpDT01FWFNUQVQuIERhZG9zIGdlcmFpcyBkZSBjb23DqXJjaW8gZXh0ZXJpb3IuIE1pbmlzdMOpcmlvIGRhIEVjb25vbWlhLCAyMDI1LiBEaXNwb27DrXZlbCBlbTogaHR0cHM6Ly9jb21leHN0YXQubWRpYy5nb3YuYnIvcHQvZ2VyYWwNCi4gQWNlc3NvIGVtOiAyMiBvdXQuIDIwMjUuDQoNCkNPTkVYT1MgQ0xPVUQuIFByb2R1dG9zIG1haXMgaW1wb3J0YWRvcyBwZWxvIEJyYXNpbCAyMDI0OiAiUHJvZHV0byBWYWxvciBVUyQgRk9CIOKApiIuIENvbmV4b3MgQ2xvdWQsIDIwMjQuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL2NvbmV4b3NjbG91ZC5jb20uYnIvcHJvZHV0b3MtbWFpcy1pbXBvcnRhZG9zLXBlbG8tYnJhc2lsLTIwMjQvIzp+OnRleHQ9UHJvZHV0byUyMFZhbG9yJTIwVVMlMjQlMjBGT0IlMjAxLDg0NQ0KLiBBY2Vzc28gZW06IDIyIG91dC4gMjAyNS4NCg0KVEVSUkEuIERvIHZpbmhvIGFvIHBuZXU6IGRleiBwcm9kdXRvcyBhZmV0YWRvcyBwZWxhIGFsdGEgZG8gZMOzbGFyLiBUZXJyYSwgcy5kLiBEaXNwb27DrXZlbCBlbTogaHR0cHM6Ly93d3cudGVycmEuY29tLmJyL2Vjb25vbWlhL29wZXJhY29lcy1jYW1iaWFpcy9wZXNzb2EtZmlzaWNhL2RvLXZpbmhvLWFvLXBuZXUtZGV6LXByb2R1dG9zLWFmZXRhZG9zLXBlbGEtYWx0YS1kby1kb2xhcixhYzNjOGU4NjgxZmUwNDEwVmduVkNNMzAwMDAwOWFjY2ViMGFSQ1JELmh0bWwjZ29vZ2xlX3ZpZ25ldHRlDQouIEFjZXNzbyBlbTogMjIgb3V0LiAyMDI1Lg0K