Reservas Internacionais: Como elas podem ajudar em momentos de
crise?
As reservas internacionais são ativos externos do país (moedas
conversíveis, títulos, depósitos e ouro). Sua função primordial é atuar
como um seguro de liquidez, garantindo a capacidade do país de honrar
pagamentos externos e amortecer choques econômicos, como crises cambiais
e interrupções abruptas nos fluxos de capital. No Brasil, onde vigora o
regime de câmbio flutuante, a gestão dessas reservas cabe ao Banco
Central do Brasil (BCB). Elas desempenham um papel crucial para manter o
funcionamento do mercado, pois permitem suavizar movimentos bruscos do
Real frente ao Dólar, aumentando a previsibilidade para os agentes
econômicos.
“Existem poucas certezas na economia, mas sempre haverá outra
crise financeira.” - Linda Yueh, “The Great Crashes”, 2023.
Crises são, por definição, inesperadas, o que reforça o papel das
reservas como um seguro de liquidez e um instrumento de estabilização.
Elas servem como colchão para prover dólares ao mercado, reduzir a
volatilidade cambial, ancorar expectativas e manter os pagamentos
externos. O Banco Central pode vender dólares na hora, emprestar dólares
aos bancos, e usar swap cambial para gerenciar riscos futuros. Essas
ferramentas cobrem os choques que atingem o balanço de pagamentos do
país. Este relatório visa analisar como as reservas do Brasil funcionam
para mitigar os efeitos de crises utilizando como exemplo 2008 e 2020,
destacando os diferentes instrumentos e decisões do Banco Central em
cada episódio.
Crise de 2008
A Crise Financeira Global de 2008, desencadeada pela quebra do banco
americano Lehman Brothers em setembro, gerando um choque de confiança no
sistema financeiro global. Essa desconfiança paralisou os mercados
interbancários, resultando no congelamento do crédito em escala mundial
e na interrupção abrupta das linhas externas de financiamento. Para o
Brasil, esse pânico se traduziu em uma intensa corrida por dólares e uma
forte depreciação cambial do real.
O Gráfico 1 [Variação do Dólar entre 2007 e 2009] mostra que, antes
do choque de setembro de 2008, o Real estava em um processo de
valorização frente ao Dólar. Com a crise, o dólar aumenta drasticamente
de preço, resultando em uma forte depreciação cambial do Real.
O Gráfico 2 [Variação das Reservas entre 2007 e 2009] contextualiza a
ação do Banco Central (BC): ao longo de 2007 e 2008, o país construiu um
robusto colchão, que sofreu uma queda pontual e temporária no ápice da
crise.
Por fim, o Gráfico 3 [Reservas Internacionais vs. Dólar] fornece o
foco central: a linha do dólar em seu ponto mais alto corresponde ao
momento em que as reservas estavam caindo, evidenciando o uso do estoque
como amortecedor.
A intervenção do Banco Central na Crise de 2008 foi uma defesa focada
em resolver a falta de dólares no mercado, utilizando-se do estoque de
reservas internacionais para injetar liquidez no sistema. A principal
tática foi o uso de vendas com compromisso de recompra. O BC ofereceu
dólares aos bancos com a garantia de que os compraria de volta em uma
data futura, uma medida que sanou a escassez de liquidez, assegurando
simultaneamente que o estoque de reservas seria devolvido. De forma
complementar, as reservas foram usadas como lastro para aliviar a falta
de moeda estrangeira no financiamento de operações de comércio exterior,
crucial para o setor de exportação. Além da liquidez física, o BC
utilizou o Swap Cambial, um contrato que oferece proteção cambial
(hedge) sem o desembolso imediato de dólar físico, sendo essencial para
acalmar o pânico no mercado futuro, ancorando as expectativas e
estabilizando o câmbio.
O Gráfico 2 evidencia que, a partir de abril de 2009, o volume de
reservas internacionais voltou a crescer, demonstrando a reversão das
medidas temporárias de empréstimo e a rápida capacidade de recuperação
da economia brasileira.
Crise de 2020
As reservas internacionais brasileiras, que posicionaram o Brasil
como o décimo maior detentor mundial , atuaram como um “seguro contra
crises” essencial durante a turbulência econômica da COVID-19 em 2020. O
manejo dessas reservas pelo Banco Central (BC) foi crucial para mitigar
a volatilidade cambial e garantir a liquidez do mercado.
A atuação do BC foi desencadeada pelo cenário de “flight to quality”
global, que gerou forte pressão cambial, sendo março de 2020 o período
de maior choque agudo. Para conter a pressão desordenada e prover
liquidez, o BC interveio no mercado à vista, mobilizando US$24,24
bilhões em dólares das reservas entre março e novembro de 2020. As
operações foram vitais para suavizar a valorização excessiva do dólar,
prevenindo impactos inflacionários mais severos e facilitando o ajuste
de liquidez do mercado. A intervenção foi complementada pelo uso de
instrumentos derivados, como o swap cambial, que oferecem cobertura
cambial ao mercado sem drenar imediatamente o estoque de reservas. Em
leilões combinados, o BC chegou a vender 1 bilhão de dólares à vista e 1
bilhão de dólares em contratos de swap. Adicionalmente, a ativação da
linha temporária de swap com o Federal Reserve (Fed) dos EUA, com limite
de US$ 60 bilhões, serviu como um backstop de credibilidade, garantindo
o acesso a liquidez em dólar para o Sistema Financeiro Nacional
(SFN).
Apesar da venda considerável, o Brasil encerrou 2020 com o estoque de
reservas praticamente intacto, próximo ao patamar de US$356,9 bilhões.
Esse paradoxo é explicado pela composição das reservas, que prioriza
segurança e liquidez. A crise global, ao impulsionar o flight to quality
e a queda das taxas de juros globais, resultou em um ganho de capital
que compensou integralmente as vendas operacionais.
A manutenção desse estoque robusto é aceita, apesar do custo de
oportunidade financeiro. O custo de oportunidade é medido pela diferença
entre o retorno que o capital geraria domesticamente e o baixo retorno
dos ativos de reserva. Contudo, o custo é justificado pelo benefício
sistêmico de reduzir o Risco País (limitando o spread da dívida
externa). O choque de 2020 validou o custo desse “seguro”. Em linha com
a tendência global, o Brasil, assim como a maioria das Economias de
Mercados Emergentes (EMEs), utilizou suas reservas com equilíbrio,
permitindo que a desvalorização cambial fosse a principal variável de
ajuste para absorver o choque, reafirmando o Brasil como um credor
internacional (reservas líquidas superiores à dívida externa bruta).
Tesouro Nacional e Tesouro Americano
A gestão da Dívida Pública Federal (DPF), que totaliza 7,939 trilhões
de reais, opera sob forte dependência da política monetária externa.
Essa vulnerabilidade nasce da própria composição das Reservas
Internacionais (RI), cujo estoque, em torno de US$345,7 bilhões, é
majoritariamente aplicado em títulos de baixo risco do Tesouro dos
Estados Unidos. Quando o Federal Reserve (Fed) eleva suas taxas de
juros, o cenário global se transforma, ocorrendo um aumento da
atratividade dos ativos americanos e reversão dos fluxos de capital,
pressionando o real e elevando o custo de financiamento externo para o
Brasil. Internamente, o Banco Central é forçado a manter a taxa Selic em
patamares elevados para conter a desvalorização cambial e o avanço da
inflação. Contudo, essa taxa alta também encarece a remuneração da
dívida interna usada para operações de esterilização cambial, ampliando
o custo de carregamento (carry cost) das reservas internacionais. Nesse
contexto, as reservas atuam como o principal “seguro soberano” do país.
Elas servem para amortecer choques de liquidez e garantir a
credibilidade junto às agências de classificação de risco.
Historicamente, o papel estabilizador das reservas ficou evidente em
períodos de crise. Em 2008, durante o colapso financeiro global, parte
delas foi utilizada para garantir liquidez ao sistema financeiro e
evitar desvalorizações abruptas do real. Já em 2020, diante da pandemia
de Covid-19, o Banco Central voltou a recorrer às reservas para conter a
volatilidade cambial e assegurar a confiança dos investidores em meio à
fuga global de capitais. Apesar do elevado custo fiscal de manter esse
colchão de segurança especialmente num cenário de juros domésticos
altos, a ausência de reservas significativas poderia expor o país a
crises cambiais mais severas e perda de credibilidade internacional. O
desafio, portanto, é equilibrar a sustentabilidade da dívida com a
proteção da estabilidade macroeconômica e financeira.
O gráfico 5 [Tesouro Nacional e Tesouro Americano] ilustra a
interação entre dívida pública, reservas internacionais e taxa de juros
dos Estados Unidos, destacando como as mudanças na política monetária
global afetam diretamente a dinâmica fiscal e cambial brasileira.
Observa-se que a variação da dívida líquida é proporcional à variação
dos juros nos EUA.
Composição das Reservas
As Reservas Internacionais do Brasil conferem uma robusta garantia de
solvência e um bom instrumento de estabilização. Conforme evidenciado no
Gráfico 6, a decisão de manter a reserva majoritariamente em Dólar
Americano (US$) baseia-se na busca pela liquidez máxima, pois o dólar é
a moeda dominante das finanças e do comércio globais. Contudo, a
estratégia de gestão inclui a diversificação em moedas como o Euro, a
Libra Esterlina e também em Ouro. Essa diversificação não apenas protege
o estoque contra a desvalorização de uma única divisa, mas também
garante que o BC possa atender a diferentes demandas de liquidez global.
Em momentos de crise, o grande estoque em moeda forte funciona como um
agente tranquilizador, garantindo aos credores internacionais que o
Brasil pode honrar seus compromissos. Além disso, o Gráfico 7 demonstra
que a maior parte dos ativos está em títulos soberanos, títulos de
dívida emitidos por governos de outros países (principalmente o Tesouro
Americano). Essa classe de ativo representa o menor risco de crédito
global, uma vez que um governo soberano pode agir para liquidar sua
dívida, seja aumentando impostos, vendendo outros ativos, ou até
emitindo moeda física, e é fundamental para preservar o valor do colchão
de reservas. Ao focar em segurança e liquidez, o BC assegura que o seu
poder para intervir na estabilidade cambial e amortecer choques seja
mantido.
Conclusão
A análise das crises de 2008 e 2020 evidencia que as reservas
internacionais desempenham um papel estratégico fundamental na
estabilidade macroeconômica do Brasil. Elas funcionam como um verdadeiro
seguro soberano, permitindo ao Banco Central atuar de forma rápida e
eficaz para conter a volatilidade cambial, garantir liquidez ao mercado
e preservar a confiança dos investidores. Em ambos os episódios, o uso
prudente e coordenado das reservas demonstrou a capacidade do país de
enfrentar choques externos sem comprometer sua solvência, destacando a
importância de manter um estoque robusto mesmo diante do custo fiscal
associado. A política de gestão das reservas, concentrada em ativos de
alta liquidez e baixo risco, principalmente títulos do Tesouro
americano, reforça a credibilidade do Brasil perante os mercados
internacionais e assegura a continuidade de suas operações externas em
contextos adversos. Assim, o desafio que se impõe à política econômica
brasileira é o de equilibrar a necessidade de proteger o país contra
choques financeiros globais com a sustentabilidade fiscal interna.
Manter reservas elevadas implica custos, mas a ausência delas teria
custos muito maiores: perda de credibilidade, instabilidade cambial e
risco de crise de confiança. Nesse sentido, as reservas internacionais
se consolidam como um pilar essencial da política econômica e da
resiliência financeira do Brasil frente às incertezas do cenário
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: 6
out. 2025.
BANCO CENTRAL DO BRASIL. Relatório Anual 2008. Boletim do Banco
Central do Brasil, v. 44, 2008. Brasília: BCB. Disponível em: https://www.bcb.gov.br/pec/boletim/banual2008/rel2008p.pdf.
Acesso em: 6 out. 2025. Banco Central do Brasil
BANCO CENTRAL DO BRASIL. Relatório de Gestão das Reservas
Internacionais. v. 17. Brasília: BCB, mar. 2025. Disponível em: https://www.bcb.gov.br/content/publicacoes/relgestaoreservas/GESTAORESERVAS202503-relatorio_anual_reservas_internacionais_2025.pdf.
Acesso em: 6 out. 2025. Banco Central do Brasil
MESQUITA, Mário; TORÓS, Mário. Considerações sobre a Atuação do Banco
Central na Crise de 2008. Trabalhos para Discussão, n. 202. Brasília:
Banco Central do Brasil, mar. 2010. Disponível em: https://www.bcb.gov.br/pec/wps/port/wps202.pdf. Acesso
em: 6 out. 2025. Banco Central do Brasil
PELLEGRINI, Josué. Custo de carregamento e nível das reservas
internacionais. Nota Técnica n. 39. Brasília: Senado Federal,
Instituição Fiscal Independente, 28 out. 2019. Disponível em: https://www2.senado.leg.br/bdsf/bitstream/handle/id/563834/NT39_Custo_carregamento_nivel_reservas_internacionais.pdf.
Acesso em: 6 out. 2025. Senado
RODRIGUES DE OLIVEIRA, Cinthia; LEONARDO DE ARAUJO, Victor. Excesso?
O debate sobre o nível das reservas internacionais no Brasil. Brazilian
Keynesian Review, v. 7, n. 1, p. 107–154, 2021. DOI:
10.33834/bkr.v7i1.245. Disponível em: https://braziliankeynesianreview.org/BKR/article/view/245.
Acesso em: 6 out. 2025. braziliankeynesianreview.org
SAMPAIO, Adriano Vilela; WEISS, Mauricio Andrade; VAN NOIJE, Paulo.
Pandemia da Covid-19 e pressão cambial: uma análise dos países
emergentes. Economia e Sociedade, Campinas, v. 31, n. 1, p. 159-189,
2022. Disponível em: https://periodicos.sbu.unicamp.br/ojs/index.php/ecos/article/view/8681097.
Acesso em: 6 out. 2025.
UNIVERSIDADE DE SÃO PAULO. Manual de Macroeconomia Básico e
Intermediário. São Paulo: USP, s.d.
LS0tDQp0aXRsZTogIkJQTTY6IFJlc2VydmFzIEludGVybmFjaW9uYWlzIg0KYXV0aG9yOiAiT3TDoXZpbyBNb3VyYSBlIFJvYmVydGEgTG9iYXRvIg0KZGF0ZTogIjA3LTEwLTIwMjUiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdGhlbWU6IGx1bWVuDQogICAgaGlnaGxpZ2h0OiB0YW5nbw0KICAgIGNvZGVfZm9sZGluZzogc2hvdw0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUgDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRSkNCg0KIyBDYXJyZWdhciBwYWNvdGVzDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KGhpZ2hjaGFydGVyKQ0KbGlicmFyeShxdWFudG1vZCkNCmxpYnJhcnkoc2NhbGVzKQ0KbGlicmFyeShyYmNiKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeSh6b28pDQpsaWJyYXJ5KEdldEJDQkRhdGEpDQoNCg0KYGBgDQoNCiMgUmVzZXJ2YXMgSW50ZXJuYWNpb25haXM6IENvbW8gZWxhcyBwb2RlbSBhanVkYXIgZW0gbW9tZW50b3MgZGUgY3Jpc2U/DQoNCkFzIHJlc2VydmFzIGludGVybmFjaW9uYWlzIHPDo28gYXRpdm9zIGV4dGVybm9zIGRvIHBhw61zIChtb2VkYXMgY29udmVyc8OtdmVpcywgdMOtdHVsb3MsIGRlcMOzc2l0b3MgZSBvdXJvKS4gU3VhIGZ1bsOnw6NvIHByaW1vcmRpYWwgw6kgYXR1YXIgY29tbyB1bSBzZWd1cm8gZGUgbGlxdWlkZXosIGdhcmFudGluZG8gYSBjYXBhY2lkYWRlIGRvIHBhw61zIGRlIGhvbnJhciBwYWdhbWVudG9zIGV4dGVybm9zIGUgYW1vcnRlY2VyIGNob3F1ZXMgZWNvbsO0bWljb3MsIGNvbW8gY3Jpc2VzIGNhbWJpYWlzIGUgaW50ZXJydXDDp8O1ZXMgYWJydXB0YXMgbm9zIGZsdXhvcyBkZSBjYXBpdGFsLg0KTm8gQnJhc2lsLCBvbmRlIHZpZ29yYSBvIHJlZ2ltZSBkZSBjw6JtYmlvIGZsdXR1YW50ZSwgYSBnZXN0w6NvIGRlc3NhcyByZXNlcnZhcyBjYWJlIGFvIEJhbmNvIENlbnRyYWwgZG8gQnJhc2lsIChCQ0IpLiBFbGFzIGRlc2VtcGVuaGFtIHVtIHBhcGVsIGNydWNpYWwgcGFyYSBtYW50ZXIgbyBmdW5jaW9uYW1lbnRvIGRvIG1lcmNhZG8sIHBvaXMgcGVybWl0ZW0gc3Vhdml6YXIgbW92aW1lbnRvcyBicnVzY29zIGRvIFJlYWwgZnJlbnRlIGFvIETDs2xhciwgYXVtZW50YW5kbyBhIHByZXZpc2liaWxpZGFkZSBwYXJhIG9zIGFnZW50ZXMgZWNvbsO0bWljb3MuDQoNCj4gKuKAnEV4aXN0ZW0gcG91Y2FzIGNlcnRlemFzIG5hIGVjb25vbWlhLCBtYXMgc2VtcHJlIGhhdmVyw6Egb3V0cmEgY3Jpc2UgZmluYW5jZWlyYS7igJ0qDQogLSBMaW5kYSBZdWVoLCAiVGhlIEdyZWF0IENyYXNoZXMiLCAyMDIzLg0KDQpDcmlzZXMgc8OjbywgcG9yIGRlZmluacOnw6NvLCBpbmVzcGVyYWRhcywgbyBxdWUgcmVmb3LDp2EgbyBwYXBlbCBkYXMgcmVzZXJ2YXMgY29tbyB1bSBzZWd1cm8gZGUgbGlxdWlkZXogZSB1bSBpbnN0cnVtZW50byBkZSBlc3RhYmlsaXphw6fDo28uIEVsYXMgc2VydmVtIGNvbW8gY29sY2jDo28gcGFyYSBwcm92ZXIgZMOzbGFyZXMgYW8gbWVyY2FkbywgcmVkdXppciBhIHZvbGF0aWxpZGFkZSBjYW1iaWFsLCBhbmNvcmFyIGV4cGVjdGF0aXZhcyBlIG1hbnRlciBvcyBwYWdhbWVudG9zIGV4dGVybm9zLiBPIEJhbmNvIENlbnRyYWwgcG9kZSB2ZW5kZXIgZMOzbGFyZXMgbmEgaG9yYSwgZW1wcmVzdGFyIGTDs2xhcmVzIGFvcyBiYW5jb3MsIGUgdXNhciBzd2FwIGNhbWJpYWwgcGFyYSBnZXJlbmNpYXIgcmlzY29zIGZ1dHVyb3MuIEVzc2FzIGZlcnJhbWVudGFzIGNvYnJlbSBvcyBjaG9xdWVzIHF1ZSBhdGluZ2VtIG8gYmFsYW7Dp28gZGUgcGFnYW1lbnRvcyBkbyBwYcOtcy4NCkVzdGUgcmVsYXTDs3JpbyB2aXNhIGFuYWxpc2FyIGNvbW8gYXMgcmVzZXJ2YXMgZG8gQnJhc2lsIGZ1bmNpb25hbSBwYXJhIG1pdGlnYXIgb3MgZWZlaXRvcyBkZSBjcmlzZXMgdXRpbGl6YW5kbyBjb21vIGV4ZW1wbG8gMjAwOCBlIDIwMjAsIGRlc3RhY2FuZG8gb3MgZGlmZXJlbnRlcyBpbnN0cnVtZW50b3MgZSBkZWNpc8O1ZXMgZG8gQmFuY28gQ2VudHJhbCBlbSBjYWRhIGVwaXPDs2Rpby4NCg0KDQojIyAqKkNyaXNlIGRlIDIwMDgqKg0KQSBDcmlzZSBGaW5hbmNlaXJhIEdsb2JhbCBkZSAyMDA4LCBkZXNlbmNhZGVhZGEgcGVsYSBxdWVicmEgZG8gYmFuY28gYW1lcmljYW5vIExlaG1hbiBCcm90aGVycyBlbSBzZXRlbWJybywgZ2VyYW5kbyB1bSBjaG9xdWUgZGUgY29uZmlhbsOnYSBubyBzaXN0ZW1hIGZpbmFuY2Vpcm8gZ2xvYmFsLiBFc3NhIGRlc2NvbmZpYW7Dp2EgcGFyYWxpc291IG9zIG1lcmNhZG9zIGludGVyYmFuY8OhcmlvcywgcmVzdWx0YW5kbyBubyBjb25nZWxhbWVudG8gZG8gY3LDqWRpdG8gZW0gZXNjYWxhIG11bmRpYWwgZSBuYSBpbnRlcnJ1cMOnw6NvIGFicnVwdGEgZGFzIGxpbmhhcyBleHRlcm5hcyBkZSBmaW5hbmNpYW1lbnRvLiBQYXJhIG8gQnJhc2lsLCBlc3NlIHDDom5pY28gc2UgdHJhZHV6aXUgZW0gdW1hIGludGVuc2EgY29ycmlkYSBwb3IgZMOzbGFyZXMgZSB1bWEgZm9ydGUgZGVwcmVjaWHDp8OjbyBjYW1iaWFsIGRvIHJlYWwuDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeSh0aWR5cikNCg0KbGlicmFyeShyYmNiKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KGRwbHlyKQ0KDQpsaWJyYXJ5KHJiY2IpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KHNjYWxlcykNCg0KIyAtLS0gRMOzbGFyIFZhciAtLS0NCmNvZGlnb3NfYmNiIDwtIGMoZG9sYXJWQVIgPSAxMDgxMykNCg0KIyAtLS0gQmFpeGFyIGRhZG9zIC0tLQ0KZGFkb3NfZG9sYXIgPC0gZ2V0X3NlcmllcygNCiAgY29kZSA9IGNvZGlnb3NfYmNiLA0KICBzdGFydF9kYXRlID0gIjIwMDctMDEtMDEiLA0KICBlbmRfZGF0ZSAgID0gIjIwMDktMTItMzEiLA0KICBhcyA9ICJ0aWJibGUiDQopDQoNCiMgLS0tIElkZW50aWZpY2FyIG3DoXhpbW8gZSBtw61uaW1vIC0tLQ0KcGljb3MgPC0gYmluZF9yb3dzKA0KICBzbGljZV9tYXgoZGFkb3NfZG9sYXIsIG9yZGVyX2J5ID0gZG9sYXJWQVIsIG4gPSAxKSwNCiAgc2xpY2VfbWluKGRhZG9zX2RvbGFyLCBvcmRlcl9ieSA9IGRvbGFyVkFSLCBuID0gMSkNCikgJT4lIGRpc3RpbmN0KCkNCg0KIyAtLS0gR3LDoWZpY28gcmVmaW5hZG8gLS0tDQpwIDwtIGdncGxvdChkYWRvc19kb2xhciwgYWVzKHggPSBkYXRlLCB5ID0gZG9sYXJWQVIpKSArDQogIGdlb21fbGluZShjb2xvciA9ICIjMDIwMjNDIiwgbGluZXdpZHRoID0gMSkgKw0KICBnZW9tX3BvaW50KA0KICAgIGRhdGEgPSBwaWNvcywNCiAgICBhZXMoeCA9IGRhdGUsIHkgPSBkb2xhclZBUiksDQogICAgY29sb3IgPSAiI0ZFQjAxNSIsICAgICAgICAgIyBkb3VyYWRvIGluc3RpdHVjaW9uYWwNCiAgICBmaWxsID0gIiNGRkY3RDEiLCAgICAgICAgICAjIGRvdXJhZG8gY2xhcm8NCiAgICBzaGFwZSA9IDIxLA0KICAgIHNpemUgPSAyLjgsICAgICAgICAgICAgICAgICMgbWVub3IgZSBtYWlzIHN1dGlsDQogICAgc3Ryb2tlID0gMQ0KICApICsNCiAgbGFicygNCiAgICB0aXRsZSA9ICJWYXJpYcOnw6NvIGRvIGTDs2xhciBlbnRyZSAyMDA3IGUgMjAwOSIsDQogICAgc3VidGl0bGUgPSAiU8OpcmllIG9yaWdpbmFsIOKAkyBTR1MgMTA4MTMgKGNvbXByYSwgbWVyY2FkbyBsaXZyZSkiLA0KICAgIHggPSAiIiwNCiAgICB5ID0gIlZhbG9yIGRlIGNvbXByYSBkbyBkw7NsYXIgKFIkKSINCiAgKSArDQogIHRoZW1lX21pbmltYWwoYmFzZV9zaXplID0gMTIpICsNCiAgdGhlbWUoDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChmYWNlID0gImJvbGQiLCBzaXplID0gMTMsIGhqdXN0ID0gMC41KSwNCiAgICBwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSwNCiAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEpLA0KICAgIHBsb3QubWFyZ2luID0gbWFyZ2luKDEwLCAyMCwgMjAsIDIwKQ0KICApDQoNCiMgLS0tIENvbnZlcnRlciBwYXJhIHBsb3RseSBjb20gdG9vbHRpcCBiw6FzaWNvIGUgZm9udGUgLS0tDQpmaWcgPC0gZ2dwbG90bHkocCwgdG9vbHRpcCA9IGMoIngiLCAieSIpKSB8Pg0KICBsYXlvdXQoDQogICAgYW5ub3RhdGlvbnMgPSBsaXN0KA0KICAgICAgbGlzdCgNCiAgICAgICAgdGV4dCA9ICJGb250ZTogQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwg4oCTIFNpc3RlbWEgR2VyZW5jaWFkb3IgZGUgU8OpcmllcyBUZW1wb3JhaXMgKFNHUykg4oCTIFPDqXJpZSAxMDgxMyIsDQogICAgICAgIHhyZWYgPSAicGFwZXIiLCB5cmVmID0gInBhcGVyIiwNCiAgICAgICAgeCA9IDAuNSwgeSA9IC0wLjI1LA0KICAgICAgICBzaG93YXJyb3cgPSBGQUxTRSwNCiAgICAgICAgZm9udCA9IGxpc3Qoc2l6ZSA9IDEwLCBjb2xvciA9ICJncmF5NDAiKQ0KICAgICAgKQ0KICAgICksDQogICAgbWFyZ2luID0gbGlzdChiID0gOTApDQogICkNCg0KZmlnDQoNCmBgYA0KDQpPIEdyw6FmaWNvIDEgW1Zhcmlhw6fDo28gZG8gRMOzbGFyIGVudHJlIDIwMDcgZSAyMDA5XSAgbW9zdHJhIHF1ZSwgYW50ZXMgZG8gY2hvcXVlIGRlIHNldGVtYnJvIGRlIDIwMDgsIG8gUmVhbCBlc3RhdmEgZW0gdW0gcHJvY2Vzc28gZGUgdmFsb3JpemHDp8OjbyBmcmVudGUgYW8gRMOzbGFyLiBDb20gYSBjcmlzZSwgbyBkw7NsYXIgYXVtZW50YSBkcmFzdGljYW1lbnRlIGRlIHByZcOnbywgcmVzdWx0YW5kbyBlbSB1bWEgZm9ydGUgZGVwcmVjaWHDp8OjbyBjYW1iaWFsIGRvIFJlYWwuDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyAtLS1SZXNlcnZhc1Zhci0tLQ0KDQpsaWJyYXJ5KHJiY2IpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoc2NhbGVzKQ0KbGlicmFyeShkcGx5cikNCg0KIyAtLS0gU8OpcmllIDM1NDYgKHZhcmlhw6fDo28gbWVuc2FsKSAtLS0NCmRhZG9zX3Jlc2VyIDwtIGdldF9zZXJpZXMoDQogIGNvZGUgPSBjKHJlc2VydmFzVkFSID0gMzU0NiksDQogIHN0YXJ0X2RhdGUgPSAiMjAwNy0wMS0wMSIsDQogIGVuZF9kYXRlICAgPSAiMjAwOS0xMi0zMSIsDQogIGFzID0gInRpYmJsZSINCikgJT4lDQogIG11dGF0ZSgNCiAgICAjIGZvcm1hdGHDp8OjbyBCUiBkb3MgbsO6bWVyb3MgZSBkYXRhIG5ldXRyYSAobW0vYWFhYSkgcC8gbsOjbyBkZXBlbmRlciBkZSBsb2NhbGUNCiAgICB2YXJfZm10ICA9IG51bWJlcihyZXNlcnZhc1ZBUiwgYWNjdXJhY3kgPSAxLCBiaWcubWFyayA9ICIuIiwgZGVjaW1hbC5tYXJrID0gIiwiKSwNCiAgICBkYXRhX2ZtdCA9IGZvcm1hdChkYXRlLCAiJW0vJVkiKSwNCiAgICBob3ZlciAgICA9IHBhc3RlMCgNCiAgICAgICI8Yj5EYXRhOjwvYj4gIiwgZGF0YV9mbXQsICI8YnI+IiwNCiAgICAgICI8Yj5WYXJpYcOnw6NvOjwvYj4gIiwgdmFyX2ZtdCwgIiBtaWxow7VlcyBVUyQiDQogICAgKQ0KICApDQoNCiMgLS0tIEdyw6FmaWNvIChsaW5oYSBhbWFyZWxhLCBlaXhvIFggc8OzIGFubywgdG9vbHRpcCBwcm9maXNzaW9uYWwpIC0tLQ0KcCA8LSBnZ3Bsb3QoZGFkb3NfcmVzZXIsIGFlcyh4ID0gZGF0ZSwgeSA9IHJlc2VydmFzVkFSLCB0ZXh0ID0gaG92ZXIpKSArDQogIGdlb21fbGluZShjb2xvciA9ICIjRkVCMDE1IiwgbGluZXdpZHRoID0gMS4yKSArDQogIGdlb21fcG9pbnQoY29sb3IgPSAiI0ZFQjAxNSIsIHNpemUgPSAxLjMsIGFscGhhID0gMC44NSkgKw0KICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAwLCBsaW5ldHlwZSA9ICJkYXNoZWQiLCBjb2xvciA9ICJncmF5NjAiLCBsaW5ld2lkdGggPSAwLjMpICsNCiAgbGFicygNCiAgICB0aXRsZSA9ICJWYXJpYcOnw6NvIGRhcyBSZXNlcnZhcyBJbnRlcm5hY2lvbmFpcyIsDQogICAgeCA9ICIiLA0KICAgIHkgPSAiVVMkIG1pbGjDtWVzIg0KICApICsNCiAgc2NhbGVfeV9jb250aW51b3VzKA0KICAgIGJyZWFrcyA9IHByZXR0eV9icmVha3MoNiksDQogICAgbGFiZWxzID0gbGFiZWxfbnVtYmVyKGFjY3VyYWN5ID0gMSwgYmlnLm1hcmsgPSAiLiIsIGRlY2ltYWwubWFyayA9ICIsIiksDQogICAgZXhwYW5kID0gZXhwYW5zaW9uKG11bHQgPSBjKDAuMDIsIDAuMDgpKQ0KICApICsNCiAgc2NhbGVfeF9kYXRlKA0KICAgIGRhdGVfYnJlYWtzID0gIjEgeWVhciIsDQogICAgZGF0ZV9sYWJlbHMgPSAiJVkiLA0KICAgIGV4cGFuZCA9IGV4cGFuc2lvbihtdWx0ID0gYygwLjAxLCAwLjAyKSkNCiAgKSArDQogIHRoZW1lX21pbmltYWwoYmFzZV9zaXplID0gMTIpICsNCiAgdGhlbWUoDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChmYWNlID0gImJvbGQiLCBzaXplID0gMTMsIGhqdXN0ID0gMC41KSwNCiAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSksDQogICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2xpbmUoY29sb3IgPSAiI0Y1RjVGNSIpLA0KICAgIHBhbmVsLmdyaWQubWFqb3IueSA9IGVsZW1lbnRfbGluZShjb2xvciA9ICIjRTdFN0U3IiksDQogICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oMTAsIDIwLCA0MCwgMjApDQogICkNCg0KZmlnIDwtIGdncGxvdGx5KHAsIHRvb2x0aXAgPSAidGV4dCIpICU+JQ0KICBsYXlvdXQoDQogICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIlVTJCBtaWxow7VlcyIsIHRpY2tmb3JtYXQgPSAiLC4wZiIpLA0KICAgIHhheGlzID0gbGlzdCh0aWNrZm9ybWF0ID0gIiVZIiksDQogICAgYW5ub3RhdGlvbnMgPSBsaXN0KA0KICAgICAgbGlzdCgNCiAgICAgICAgdGV4dCA9ICJGb250ZTogQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwg4oCTIFNHUyAzNTQ2ICh2YXJpYcOnw6NvIG1lbnNhbCkiLA0KICAgICAgICB4cmVmID0gInBhcGVyIiwgeXJlZiA9ICJwYXBlciIsIHggPSAwLjUsIHkgPSAtMC4yMiwNCiAgICAgICAgc2hvd2Fycm93ID0gRkFMU0UsIGZvbnQgPSBsaXN0KHNpemUgPSAxMCwgY29sb3IgPSAiZ3JheTQwIikNCiAgICAgICkNCiAgICApLA0KICAgIG1hcmdpbiA9IGxpc3QoYiA9IDkwKSwNCiAgICBob3ZlcmxhYmVsID0gbGlzdCgNCiAgICAgIGJnY29sb3IgPSAiI0ZGRkZGRiIsDQogICAgICBib3JkZXJjb2xvciA9ICIjRkVCMDE1IiwNCiAgICAgIGZvbnQgPSBsaXN0KHNpemUgPSAxMiwgY29sb3IgPSAiIzMzMzMzMyIpDQogICAgKSwNCiAgICBob3Zlcm1vZGUgPSAiY2xvc2VzdCIgICMgY2FkYSBwb250byBtb3N0cmEgc2V1IHRvb2x0aXAgY29tIGEgZGF0YSBmb3JtYXRhZGENCiAgKQ0KDQpmaWcNCg0KYGBgDQpPIEdyw6FmaWNvIDIgW1Zhcmlhw6fDo28gZGFzIFJlc2VydmFzIGVudHJlIDIwMDcgZSAyMDA5XSBjb250ZXh0dWFsaXphIGEgYcOnw6NvIGRvIEJhbmNvIENlbnRyYWwgKEJDKTogYW8gbG9uZ28gZGUgMjAwNyBlIDIwMDgsIG8gcGHDrXMgY29uc3RydWl1IHVtIHJvYnVzdG8gY29sY2jDo28sIHF1ZSBzb2ZyZXUgdW1hIHF1ZWRhIHBvbnR1YWwgZSB0ZW1wb3LDoXJpYSBubyDDoXBpY2UgZGEgY3Jpc2UuDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyAtLS0gUmVzZXJ2YXMgKyBEw7NsYXIgLS0tDQpzdXBwcmVzc1BhY2thZ2VTdGFydHVwTWVzc2FnZXMoew0KICBsaWJyYXJ5KHJiY2IpOyBsaWJyYXJ5KGRwbHlyKTsgbGlicmFyeShwbG90bHkpDQp9KQ0KDQpzdGFydF9kYXRlIDwtIGFzLkRhdGUoIjIwMDgtMDEtMDEiKQ0KZW5kX2RhdGUgICA8LSBhcy5EYXRlKCIyMDA5LTA2LTMwIikNCg0KY29sX3Jlc2VydmFzIDwtICIjRkVCMDE1Ig0KY29sX2RvbGFyICAgIDwtICIjMDIwMjNDIg0KDQpyZXNlcnZhcyA8LSBnZXRfc2VyaWVzKDM1NDYsIHN0YXJ0X2RhdGUgPSBzdGFydF9kYXRlLCBlbmRfZGF0ZSA9IGVuZF9kYXRlKSB8Pg0KICByZW5hbWUoZGF0ZSA9IGRhdGUsIHJlc2VydmFzID0gYDM1NDZgKQ0KDQpkb2xhciA8LSBnZXRfc2VyaWVzKDEwODEzLCBzdGFydF9kYXRlID0gc3RhcnRfZGF0ZSwgZW5kX2RhdGUgPSBlbmRfZGF0ZSkgfD4NCiAgcmVuYW1lKGRhdGUgPSBkYXRlLCB1c2QgPSBgMTA4MTNgKQ0KDQpncmlkX2NvbCA8LSAicmdiYSgwLDAsMCwwLjA4KSIgICMgY2luemEgc3VhdmUgcGFyYSBhIGdyYWRlDQoNCmZpZyA8LSBwbG90X2x5KCkgfD4NCiAgYWRkX2xpbmVzKA0KICAgIGRhdGEgPSByZXNlcnZhcywNCiAgICB4ID0gfmRhdGUsIHkgPSB+cmVzZXJ2YXMsDQogICAgbmFtZSA9ICJSZXNlcnZhcyAoU0dTIDM1NDYsIFVTJCBtaSkiLA0KICAgIGxpbmUgPSBsaXN0KHdpZHRoID0gMiwgY29sb3IgPSBjb2xfcmVzZXJ2YXMpLA0KICAgIHlheGlzID0gInkiDQogICkgfD4NCiAgYWRkX2xpbmVzKA0KICAgIGRhdGEgPSBkb2xhciwNCiAgICB4ID0gfmRhdGUsIHkgPSB+dXNkLA0KICAgIG5hbWUgPSAiVVNEL0JSTCAoU0dTIDEwODEzKSIsDQogICAgbGluZSA9IGxpc3Qod2lkdGggPSAyLCBjb2xvciA9IGNvbF9kb2xhciksDQogICAgeWF4aXMgPSAieTIiDQogICkgfD4NCiAgbGF5b3V0KA0KICAgIHRpdGxlID0gIlJlc2VydmFzICgzNTQ2KSB2cy4gRMOzbGFyICgxMDgxMykg4oCUIEphbi8yMDA4IGEgSnVuLzIwMDkiLA0KICAgIHhheGlzID0gbGlzdCgNCiAgICAgIHRpdGxlID0gIiIsDQogICAgICBzaG93Z3JpZCA9IFRSVUUsICBncmlkY29sb3IgPSBncmlkX2NvbCwgZ3JpZGRhc2ggPSAic29saWQiLA0KICAgICAgemVyb2xpbmUgPSBGQUxTRSwgc2hvd2xpbmUgPSBUUlVFLCBsaW5lY29sb3IgPSAicmdiYSgwLDAsMCwwLjIpIg0KICAgICksDQogICAgIyBHcmlkIHPDsyBubyBlaXhvIHByaW3DoXJpbyAoZXNxdWVyZGEpDQogICAgeWF4aXMgPSBsaXN0KA0KICAgICAgdGl0bGUgPSAiUmVzZXJ2YXMgKFVTJCBtaWxow7VlcykiLA0KICAgICAgc2hvd2dyaWQgPSBUUlVFLCAgZ3JpZGNvbG9yID0gZ3JpZF9jb2wsIGdyaWRkYXNoID0gInNvbGlkIiwNCiAgICAgIHplcm9saW5lID0gRkFMU0UsIHNob3dsaW5lID0gVFJVRSwgbGluZWNvbG9yID0gInJnYmEoMCwwLDAsMC4yKSINCiAgICApLA0KICAgICMgRWl4byBzZWN1bmTDoXJpbyBzZW0gZ3JpZCBwYXJhIG7Do28gcG9sdWlyDQogICAgeWF4aXMyID0gbGlzdCgNCiAgICAgIHRpdGxlID0gIlVTRC9CUkwiLA0KICAgICAgb3ZlcmxheWluZyA9ICJ5IiwNCiAgICAgIHNpZGUgPSAicmlnaHQiLA0KICAgICAgc2hvd2dyaWQgPSBGQUxTRSwNCiAgICAgIHplcm9saW5lID0gRkFMU0UsDQogICAgICBzaG93bGluZSA9IFRSVUUsIGxpbmVjb2xvciA9ICJyZ2JhKDAsMCwwLDAuMikiDQogICAgKSwNCiAgICBsZWdlbmQgPSBsaXN0KG9yaWVudGF0aW9uID0gImgiLCB4ID0gMCwgeSA9IC0wLjE1KSwNCiAgICBtYXJnaW4gPSBsaXN0KHQgPSA1MCwgciA9IDQwLCBiID0gODAsIGwgPSA2MCksDQogICAgYW5ub3RhdGlvbnMgPSBsaXN0KA0KICAgICAgbGlzdCgNCiAgICAgICAgeCA9IDAsIHkgPSAtMC4yMiwgeHJlZiA9ICJwYXBlciIsIHlyZWYgPSAicGFwZXIiLA0KICAgICAgICB4YW5jaG9yID0gImxlZnQiLCB5YW5jaG9yID0gInRvcCIsIHNob3dhcnJvdyA9IEZBTFNFLA0KICAgICAgICB0ZXh0ID0gIkZvbnRlOiBCYW5jbyBDZW50cmFsIGRvIEJyYXNpbCDigJMgU0dTIDM1NDYgZSAxMDgxMyIsDQogICAgICAgIGZvbnQgPSBsaXN0KHNpemUgPSAxMCwgY29sb3IgPSAiZ3JheTQwIikNCiAgICAgICkNCiAgICApDQogICkNCg0KZmlnDQoNCg0KYGBgDQoNClBvciBmaW0sIG8gR3LDoWZpY28gMyBbUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMgdnMuIETDs2xhcl0gZm9ybmVjZSBvIGZvY28gY2VudHJhbDogYSBsaW5oYSBkbyBkw7NsYXIgZW0gc2V1IHBvbnRvIG1haXMgYWx0byBjb3JyZXNwb25kZSBhbyBtb21lbnRvIGVtIHF1ZSBhcyByZXNlcnZhcyBlc3RhdmFtIGNhaW5kbywgZXZpZGVuY2lhbmRvIG8gdXNvIGRvIGVzdG9xdWUgY29tbyBhbW9ydGVjZWRvci4gDQoNCkEgaW50ZXJ2ZW7Dp8OjbyBkbyBCYW5jbyBDZW50cmFsIG5hIENyaXNlIGRlIDIwMDggZm9pIHVtYSBkZWZlc2EgZm9jYWRhIGVtIHJlc29sdmVyIGEgZmFsdGEgZGUgZMOzbGFyZXMgbm8gbWVyY2FkbywgdXRpbGl6YW5kby1zZSBkbyBlc3RvcXVlIGRlIHJlc2VydmFzIGludGVybmFjaW9uYWlzIHBhcmEgaW5qZXRhciBsaXF1aWRleiBubyBzaXN0ZW1hLg0KQSBwcmluY2lwYWwgdMOhdGljYSBmb2kgbyB1c28gZGUgdmVuZGFzIGNvbSBjb21wcm9taXNzbyBkZSByZWNvbXByYS4gTyBCQyBvZmVyZWNldSBkw7NsYXJlcyBhb3MgYmFuY29zIGNvbSBhIGdhcmFudGlhIGRlIHF1ZSBvcyBjb21wcmFyaWEgZGUgdm9sdGEgZW0gdW1hIGRhdGEgZnV0dXJhLCB1bWEgbWVkaWRhIHF1ZSBzYW5vdSBhIGVzY2Fzc2V6IGRlIGxpcXVpZGV6LCBhc3NlZ3VyYW5kbyBzaW11bHRhbmVhbWVudGUgcXVlIG8gZXN0b3F1ZSBkZSByZXNlcnZhcyBzZXJpYSBkZXZvbHZpZG8uDQpEZSBmb3JtYSBjb21wbGVtZW50YXIsIGFzIHJlc2VydmFzIGZvcmFtIHVzYWRhcyBjb21vIGxhc3RybyBwYXJhIGFsaXZpYXIgYSBmYWx0YSBkZSBtb2VkYSBlc3RyYW5nZWlyYSBubyBmaW5hbmNpYW1lbnRvIGRlIG9wZXJhw6fDtWVzIGRlIGNvbcOpcmNpbyBleHRlcmlvciwgY3J1Y2lhbCBwYXJhIG8gc2V0b3IgZGUgZXhwb3J0YcOnw6NvLg0KQWzDqW0gZGEgbGlxdWlkZXogZsOtc2ljYSwgbyBCQyB1dGlsaXpvdSBvIFN3YXAgQ2FtYmlhbCwgdW0gY29udHJhdG8gcXVlIG9mZXJlY2UgcHJvdGXDp8OjbyBjYW1iaWFsIChoZWRnZSkgc2VtIG8gZGVzZW1ib2xzbyBpbWVkaWF0byBkZSBkw7NsYXIgZsOtc2ljbywgc2VuZG8gZXNzZW5jaWFsIHBhcmEgYWNhbG1hciBvIHDDom5pY28gbm8gbWVyY2FkbyBmdXR1cm8sIGFuY29yYW5kbyBhcyBleHBlY3RhdGl2YXMgZSBlc3RhYmlsaXphbmRvIG8gY8OibWJpby4NCg0KTyBHcsOhZmljbyAyIGV2aWRlbmNpYSBxdWUsIGEgcGFydGlyIGRlIGFicmlsIGRlIDIwMDksIG8gdm9sdW1lIGRlIHJlc2VydmFzIGludGVybmFjaW9uYWlzIHZvbHRvdSBhIGNyZXNjZXIsIGRlbW9uc3RyYW5kbyBhIHJldmVyc8OjbyBkYXMgbWVkaWRhcyB0ZW1wb3LDoXJpYXMgZGUgZW1wcsOpc3RpbW8gZSBhIHLDoXBpZGEgY2FwYWNpZGFkZSBkZSByZWN1cGVyYcOnw6NvIGRhIGVjb25vbWlhIGJyYXNpbGVpcmEuDQoNCiMjICoqQ3Jpc2UgZGUgMjAyMCoqDQoNCkFzIHJlc2VydmFzIGludGVybmFjaW9uYWlzIGJyYXNpbGVpcmFzLCBxdWUgcG9zaWNpb25hcmFtIG8gQnJhc2lsIGNvbW8gbyBkw6ljaW1vIG1haW9yIGRldGVudG9yIG11bmRpYWwgLCBhdHVhcmFtIGNvbW8gdW0gInNlZ3VybyBjb250cmEgY3Jpc2VzIiBlc3NlbmNpYWwgZHVyYW50ZSBhIHR1cmJ1bMOqbmNpYSBlY29uw7RtaWNhIGRhIENPVklELTE5IGVtIDIwMjAuIE8gbWFuZWpvIGRlc3NhcyByZXNlcnZhcyBwZWxvIEJhbmNvIENlbnRyYWwgKEJDKSBmb2kgY3J1Y2lhbCBwYXJhIG1pdGlnYXIgYSB2b2xhdGlsaWRhZGUgY2FtYmlhbCBlIGdhcmFudGlyIGEgbGlxdWlkZXogZG8gbWVyY2Fkby4gIA0KQSBhdHVhw6fDo28gZG8gQkMgZm9pIGRlc2VuY2FkZWFkYSBwZWxvIGNlbsOhcmlvIGRlIOKAnGZsaWdodCB0byBxdWFsaXR54oCdIGdsb2JhbCwgcXVlIGdlcm91IGZvcnRlIHByZXNzw6NvIGNhbWJpYWwsIHNlbmRvIG1hcsOnbyBkZSAyMDIwIG8gcGVyw61vZG8gZGUgbWFpb3IgY2hvcXVlIGFndWRvLiBQYXJhIGNvbnRlciBhIHByZXNzw6NvIGRlc29yZGVuYWRhIGUgcHJvdmVyIGxpcXVpZGV6LCBvIEJDIGludGVydmVpbyBubyBtZXJjYWRvIMOgIHZpc3RhLCBtb2JpbGl6YW5kbyBVU1wkMjQsMjQgYmlsaMO1ZXMgZW0gZMOzbGFyZXMgZGFzIHJlc2VydmFzIGVudHJlIG1hcsOnbyBlIG5vdmVtYnJvIGRlIDIwMjAuIEFzIG9wZXJhw6fDtWVzIGZvcmFtIHZpdGFpcyBwYXJhIHN1YXZpemFyIGEgdmFsb3JpemHDp8OjbyBleGNlc3NpdmEgZG8gZMOzbGFyLCBwcmV2ZW5pbmRvIGltcGFjdG9zIGluZmxhY2lvbsOhcmlvcyBtYWlzIHNldmVyb3MgZSBmYWNpbGl0YW5kbyBvIGFqdXN0ZSBkZSBsaXF1aWRleiBkbyBtZXJjYWRvLg0KQSBpbnRlcnZlbsOnw6NvIGZvaSBjb21wbGVtZW50YWRhIHBlbG8gdXNvIGRlIGluc3RydW1lbnRvcyBkZXJpdmFkb3MsIGNvbW8gbyBzd2FwIGNhbWJpYWwsIHF1ZSBvZmVyZWNlbSBjb2JlcnR1cmEgY2FtYmlhbCBhbyBtZXJjYWRvIHNlbSBkcmVuYXIgaW1lZGlhdGFtZW50ZSBvIGVzdG9xdWUgZGUgcmVzZXJ2YXMuIEVtIGxlaWzDtWVzIGNvbWJpbmFkb3MsIG8gQkMgY2hlZ291IGEgdmVuZGVyIDEgYmlsaMOjbyBkZSBkw7NsYXJlcyDDoCB2aXN0YSBlIDEgYmlsaMOjbyBkZSBkw7NsYXJlcyBlbSBjb250cmF0b3MgZGUgc3dhcC4gQWRpY2lvbmFsbWVudGUsIGEgYXRpdmHDp8OjbyBkYSBsaW5oYSB0ZW1wb3LDoXJpYSBkZSBzd2FwIGNvbSBvIEZlZGVyYWwgUmVzZXJ2ZSAoRmVkKSBkb3MgRVVBLCBjb20gbGltaXRlIGRlIFVTJCA2MCBiaWxow7Vlcywgc2Vydml1IGNvbW8gdW0gYmFja3N0b3AgZGUgY3JlZGliaWxpZGFkZSwgZ2FyYW50aW5kbyBvIGFjZXNzbyBhIGxpcXVpZGV6IGVtIGTDs2xhciBwYXJhIG8gU2lzdGVtYSBGaW5hbmNlaXJvIE5hY2lvbmFsIChTRk4pLg0KDQpgYGB7ciwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkocmJjYikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShzY2FsZXMpDQoNCmxpYnJhcnkocmJjYikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShzY2FsZXMpDQoNCiMgLS0tIFPDqXJpZTogUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMgKDM1NDYpIC0tLQ0KZGFkb3NfcmVzZXIgPC0gZ2V0X3NlcmllcygNCiAgY29kZSA9IDM1NDYsDQogIHN0YXJ0X2RhdGUgPSAiMjAyMC0wMS0wMSIsDQogIGVuZF9kYXRlICAgPSAiMjAyMC0xMi0zMSIsDQogIGFzID0gInRpYmJsZSINCikgJT4lDQogIHJlbmFtZShyZXNlcnZhcyA9IGAzNTQ2YCkgJT4lDQogIG11dGF0ZShtZXMgPSBtb250aChkYXRlLCBsYWJlbCA9IFRSVUUsIGFiYnIgPSBUUlVFKSkNCg0KIyAtLS0gR3LDoWZpY28gZGUgbGluaGEgZXN0aWxpemFkbyAtLS0NCmZpZyA8LSBwbG90X2x5KA0KICBkYXRhID0gZGFkb3NfcmVzZXIsDQogIHggPSB+ZGF0ZSwNCiAgeSA9IH5yZXNlcnZhcywNCiAgdHlwZSA9ICJzY2F0dGVyIiwNCiAgbW9kZSA9ICJsaW5lcyttYXJrZXJzIiwNCiAgbGluZSA9IGxpc3QoY29sb3IgPSAiIzAyMDIzQyIsIHdpZHRoID0gMiksDQogIG1hcmtlciA9IGxpc3QoY29sb3IgPSAiI0ZFQjAxNSIsIHNpemUgPSA2KSwNCiAgaG92ZXJ0ZW1wbGF0ZSA9IHBhc3RlMCgNCiAgICAiPGI+JXt4fCVkICViICVZfTwvYj48YnI+IiwNCiAgICAiUmVzZXJ2YXM6IDxiPlVTJCAle3k6LC4wZn0gbWk8L2I+PGV4dHJhPjwvZXh0cmE+Ig0KICApDQopICU+JQ0KICBsYXlvdXQoDQogICAgdGl0bGUgPSBsaXN0KA0KICAgICAgdGV4dCA9ICJSZXNlcnZhcyBJbnRlcm5hY2lvbmFpcyBkbyBCcmFzaWwg4oCUIDIwMjAiLA0KICAgICAgeCA9IDAuNSwNCiAgICAgIGZvbnQgPSBsaXN0KHNpemUgPSAxNiwgZmFtaWx5ID0gIkFyaWFsIiwgY29sb3IgPSAiIzAwMDAwMCIpDQogICAgKSwNCiAgICB4YXhpcyA9IGxpc3QoDQogICAgICB0aXRsZSA9ICIiLA0KICAgICAgdGlja2Zvcm1hdCA9ICIlYiIsDQogICAgICBzaG93Z3JpZCA9IEZBTFNFLA0KICAgICAgdGlja2FuZ2xlID0gMA0KICAgICksDQogICAgeWF4aXMgPSBsaXN0KA0KICAgICAgdGl0bGUgPSAiVVMkIG1pbGjDtWVzIiwNCiAgICAgIHRpY2tmb3JtYXQgPSAiLC4wZiIsDQogICAgICBncmlkY29sb3IgPSAicmdiYSgwLDAsMCwwLjEpIg0KICAgICksDQogICAgaG92ZXJsYWJlbCA9IGxpc3QoDQogICAgICBiZ2NvbG9yID0gInJnYmEoMjU1LDI1NSwyNTUsMC45NCkiLA0KICAgICAgYm9yZGVyY29sb3IgPSAiIzAyMDIzQyIsDQogICAgICBmb250ID0gbGlzdChjb2xvciA9ICIjMDIwMjNDIiwgc2l6ZSA9IDEyKQ0KICAgICksDQogICAgbWFyZ2luID0gbGlzdCh0ID0gNzAsIHIgPSA0MCwgYiA9IDgwLCBsID0gNzApLA0KICAgIGFubm90YXRpb25zID0gbGlzdCgNCiAgICAgIGxpc3QoDQogICAgICAgIHRleHQgPSAiRm9udGU6IEJhbmNvIENlbnRyYWwgZG8gQnJhc2lsIOKAkyBTR1MgMzU0NiIsDQogICAgICAgIHhyZWYgPSAicGFwZXIiLCB5cmVmID0gInBhcGVyIiwNCiAgICAgICAgeCA9IDAuNSwgeSA9IC0wLjI1LA0KICAgICAgICBzaG93YXJyb3cgPSBGQUxTRSwNCiAgICAgICAgZm9udCA9IGxpc3Qoc2l6ZSA9IDEwLCBjb2xvciA9ICJncmF5NDAiKQ0KICAgICAgKQ0KICAgICkNCiAgKQ0KDQpmaWcNCg0KYGBgDQpBcGVzYXIgZGEgdmVuZGEgY29uc2lkZXLDoXZlbCwgbyBCcmFzaWwgZW5jZXJyb3UgMjAyMCBjb20gbyBlc3RvcXVlIGRlIHJlc2VydmFzIHByYXRpY2FtZW50ZSBpbnRhY3RvLCBwcsOzeGltbyBhbyBwYXRhbWFyIGRlIFVTJDM1Niw5IGJpbGjDtWVzLiBFc3NlIHBhcmFkb3hvIMOpIGV4cGxpY2FkbyBwZWxhIGNvbXBvc2nDp8OjbyBkYXMgcmVzZXJ2YXMsIHF1ZSBwcmlvcml6YSBzZWd1cmFuw6dhIGUgbGlxdWlkZXouIEEgY3Jpc2UgZ2xvYmFsLCBhbyBpbXB1bHNpb25hciBvIGZsaWdodCB0byBxdWFsaXR5IGUgYSBxdWVkYSBkYXMgdGF4YXMgZGUganVyb3MgZ2xvYmFpcywgcmVzdWx0b3UgZW0gdW0gZ2FuaG8gZGUgY2FwaXRhbCBxdWUgY29tcGVuc291IGludGVncmFsbWVudGUgYXMgdmVuZGFzIG9wZXJhY2lvbmFpcy4gIA0KQSBtYW51dGVuw6fDo28gZGVzc2UgZXN0b3F1ZSByb2J1c3RvIMOpIGFjZWl0YSwgYXBlc2FyIGRvIGN1c3RvIGRlIG9wb3J0dW5pZGFkZSBmaW5hbmNlaXJvLiBPIGN1c3RvIGRlIG9wb3J0dW5pZGFkZSDDqSBtZWRpZG8gcGVsYSBkaWZlcmVuw6dhIGVudHJlIG8gcmV0b3JubyBxdWUgbyBjYXBpdGFsIGdlcmFyaWEgZG9tZXN0aWNhbWVudGUgZSBvIGJhaXhvIHJldG9ybm8gZG9zIGF0aXZvcyBkZSByZXNlcnZhLiBDb250dWRvLCBvIGN1c3RvIMOpIGp1c3RpZmljYWRvIHBlbG8gYmVuZWbDrWNpbyBzaXN0w6ptaWNvIGRlIHJlZHV6aXIgbyBSaXNjbyBQYcOtcyAobGltaXRhbmRvIG8gc3ByZWFkIGRhIGTDrXZpZGEgZXh0ZXJuYSkuIE8gY2hvcXVlIGRlIDIwMjAgdmFsaWRvdSBvIGN1c3RvIGRlc3NlICJzZWd1cm8iLiBFbSBsaW5oYSBjb20gYSB0ZW5kw6puY2lhIGdsb2JhbCwgbyBCcmFzaWwsIGFzc2ltIGNvbW8gYSBtYWlvcmlhIGRhcyBFY29ub21pYXMgZGUgTWVyY2Fkb3MgRW1lcmdlbnRlcyAoRU1FcyksIHV0aWxpem91IHN1YXMgcmVzZXJ2YXMgY29tIGVxdWlsw61icmlvLCBwZXJtaXRpbmRvIHF1ZSBhIGRlc3ZhbG9yaXphw6fDo28gY2FtYmlhbCBmb3NzZSBhIHByaW5jaXBhbCB2YXJpw6F2ZWwgZGUgYWp1c3RlIHBhcmEgYWJzb3J2ZXIgbyBjaG9xdWUsIHJlYWZpcm1hbmRvIG8gQnJhc2lsIGNvbW8gdW0gY3JlZG9yIGludGVybmFjaW9uYWwgKHJlc2VydmFzIGzDrXF1aWRhcyBzdXBlcmlvcmVzIMOgIGTDrXZpZGEgZXh0ZXJuYSBicnV0YSkuDQoNCiMjICoqVGVzb3VybyBOYWNpb25hbCBlIFRlc291cm8gQW1lcmljYW5vKioNCg0KQSBnZXN0w6NvIGRhIETDrXZpZGEgUMO6YmxpY2EgRmVkZXJhbCAoRFBGKSwgcXVlIHRvdGFsaXphIDcsOTM5IHRyaWxow7VlcyBkZSByZWFpcywgb3BlcmEgc29iIGZvcnRlIGRlcGVuZMOqbmNpYSBkYSBwb2zDrXRpY2EgbW9uZXTDoXJpYSBleHRlcm5hLiBFc3NhIHZ1bG5lcmFiaWxpZGFkZSBuYXNjZSBkYSBwcsOzcHJpYSBjb21wb3Npw6fDo28gZGFzIFJlc2VydmFzIEludGVybmFjaW9uYWlzIChSSSksIGN1am8gZXN0b3F1ZSwgZW0gdG9ybm8gZGUgVVMkMzQ1LDcgYmlsaMO1ZXMsIMOpIG1ham9yaXRhcmlhbWVudGUgYXBsaWNhZG8gZW0gdMOtdHVsb3MgZGUgYmFpeG8gcmlzY28gZG8gVGVzb3VybyBkb3MgRXN0YWRvcyBVbmlkb3MuIFF1YW5kbyBvIEZlZGVyYWwgUmVzZXJ2ZSAoRmVkKSBlbGV2YSBzdWFzIHRheGFzIGRlIGp1cm9zLCBvIGNlbsOhcmlvIGdsb2JhbCBzZSB0cmFuc2Zvcm1hLCBvY29ycmVuZG8gdW0gYXVtZW50byBkYSBhdHJhdGl2aWRhZGUgZG9zIGF0aXZvcyBhbWVyaWNhbm9zIGUgcmV2ZXJzw6NvIGRvcyBmbHV4b3MgZGUgY2FwaXRhbCwgcHJlc3Npb25hbmRvIG8gcmVhbCBlIGVsZXZhbmRvIG8gY3VzdG8gZGUgZmluYW5jaWFtZW50byBleHRlcm5vIHBhcmEgbyBCcmFzaWwuDQpJbnRlcm5hbWVudGUsIG8gQmFuY28gQ2VudHJhbCDDqSBmb3LDp2FkbyBhIG1hbnRlciBhIHRheGEgU2VsaWMgZW0gcGF0YW1hcmVzIGVsZXZhZG9zIHBhcmEgY29udGVyIGEgZGVzdmFsb3JpemHDp8OjbyBjYW1iaWFsIGUgbyBhdmFuw6dvIGRhIGluZmxhw6fDo28uIENvbnR1ZG8sIGVzc2EgdGF4YSBhbHRhIHRhbWLDqW0gZW5jYXJlY2UgYSByZW11bmVyYcOnw6NvIGRhIGTDrXZpZGEgaW50ZXJuYSB1c2FkYSBwYXJhIG9wZXJhw6fDtWVzIGRlIGVzdGVyaWxpemHDp8OjbyBjYW1iaWFsLCBhbXBsaWFuZG8gbyBjdXN0byBkZSBjYXJyZWdhbWVudG8gKGNhcnJ5IGNvc3QpIGRhcyByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcy4NCk5lc3NlIGNvbnRleHRvLCBhcyByZXNlcnZhcyBhdHVhbSBjb21vIG8gcHJpbmNpcGFsIOKAnHNlZ3VybyBzb2JlcmFub+KAnSBkbyBwYcOtcy4gRWxhcyBzZXJ2ZW0gcGFyYSBhbW9ydGVjZXIgY2hvcXVlcyBkZSBsaXF1aWRleiBlIGdhcmFudGlyIGEgY3JlZGliaWxpZGFkZSBqdW50byDDoHMgYWfDqm5jaWFzIGRlIGNsYXNzaWZpY2HDp8OjbyBkZSByaXNjby4gSGlzdG9yaWNhbWVudGUsIG8gcGFwZWwgZXN0YWJpbGl6YWRvciBkYXMgcmVzZXJ2YXMgZmljb3UgZXZpZGVudGUgZW0gcGVyw61vZG9zIGRlIGNyaXNlLiBFbSAyMDA4LCBkdXJhbnRlIG8gY29sYXBzbyBmaW5hbmNlaXJvIGdsb2JhbCwgcGFydGUgZGVsYXMgZm9pIHV0aWxpemFkYSBwYXJhIGdhcmFudGlyIGxpcXVpZGV6IGFvIHNpc3RlbWEgZmluYW5jZWlybyBlIGV2aXRhciBkZXN2YWxvcml6YcOnw7VlcyBhYnJ1cHRhcyBkbyByZWFsLiBKw6EgZW0gMjAyMCwgZGlhbnRlIGRhIHBhbmRlbWlhIGRlIENvdmlkLTE5LCBvIEJhbmNvIENlbnRyYWwgdm9sdG91IGEgcmVjb3JyZXIgw6BzIHJlc2VydmFzIHBhcmEgY29udGVyIGEgdm9sYXRpbGlkYWRlIGNhbWJpYWwgZSBhc3NlZ3VyYXIgYSBjb25maWFuw6dhIGRvcyBpbnZlc3RpZG9yZXMgZW0gbWVpbyDDoCBmdWdhIGdsb2JhbCBkZSBjYXBpdGFpcy4NCkFwZXNhciBkbyBlbGV2YWRvIGN1c3RvIGZpc2NhbCBkZSBtYW50ZXIgZXNzZSBjb2xjaMOjbyBkZSBzZWd1cmFuw6dhIGVzcGVjaWFsbWVudGUgbnVtIGNlbsOhcmlvIGRlIGp1cm9zIGRvbcOpc3RpY29zIGFsdG9zLCBhIGF1c8OqbmNpYSBkZSByZXNlcnZhcyBzaWduaWZpY2F0aXZhcyBwb2RlcmlhIGV4cG9yIG8gcGHDrXMgYSBjcmlzZXMgY2FtYmlhaXMgbWFpcyBzZXZlcmFzIGUgcGVyZGEgZGUgY3JlZGliaWxpZGFkZSBpbnRlcm5hY2lvbmFsLiBPIGRlc2FmaW8sIHBvcnRhbnRvLCDDqSBlcXVpbGlicmFyIGEgc3VzdGVudGFiaWxpZGFkZSBkYSBkw612aWRhIGNvbSBhIHByb3Rlw6fDo28gZGEgZXN0YWJpbGlkYWRlIG1hY3JvZWNvbsO0bWljYSBlIGZpbmFuY2VpcmEuDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyAtLS0gVGVzb3Vyb3MgLS0tDQpsaWJyYXJ5KEdldEJDQkRhdGEpDQpsaWJyYXJ5KHF1YW50bW9kKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkocGxvdGx5KQ0KDQojIC0tLSBTw6lyaWVzIC0tLQ0KZGl2aWRhIDwtIGdiY2JkX2dldF9zZXJpZXMoNDUxMywgZmlyc3QuZGF0ZSA9ICIyMDA4LTAxLTAxIiwgbGFzdC5kYXRlID0gU3lzLkRhdGUoKSkgfD4NCiAgcmVuYW1lKGRhdGUgPSByZWYuZGF0ZSwgZGl2aWRhID0gdmFsdWUpDQoNCmludmlzaWJsZShnZXRTeW1ib2xzKCJER1MxMCIsIHNyYyA9ICJGUkVEIiwgZnJvbSA9ICIyMDA4LTAxLTAxIiwgdG8gPSBTeXMuRGF0ZSgpLCBhdXRvLmFzc2lnbiA9IFRSVUUpKQ0KanVyb3NfZXVhIDwtIGRhdGEuZnJhbWUoZGF0ZSA9IGluZGV4KERHUzEwKSwganVyb3NfMTBhbm9zID0gYXMubnVtZXJpYyhER1MxMCRER1MxMCkpDQoNCiMgLS0tIEp1bnRhIC0tLQ0KZGFkb3MgPC0gZnVsbF9qb2luKGRpdmlkYSwganVyb3NfZXVhLCBieSA9ICJkYXRlIikgfD4NCiAgYXJyYW5nZShkYXRlKSB8Pg0KICB0aWR5cjo6ZHJvcF9uYSgpDQoNCiMgLS0tIENvcmVzIHBhZHJvbml6YWRhcyAtLS0NCmNvbF9kaXZpZGEgPC0gIiMwMjAyM0MiICAjIGF6dWwgZXNjdXJvDQpjb2xfanVyb3MgIDwtICIjRkVCMDE1IiAgIyBhbWFyZWxvIG91cm8NCg0KIyAtLS0gR3LDoWZpY28gY29tIGRvaXMgZWl4b3MsIGxpbmhhcyBzw7NsaWRhcyAtLS0NCmZpZyA8LSBwbG90X2x5KCkNCg0KZmlnIDwtIGZpZyB8Pg0KICBhZGRfbGluZXMoDQogICAgZGF0YSA9IGRhZG9zLA0KICAgIHggPSB+ZGF0ZSwgeSA9IH5kaXZpZGEsDQogICAgbmFtZSA9ICJEw612aWRhIEzDrXF1aWRhICglIGRvIFBJQikiLA0KICAgIGxpbmUgPSBsaXN0KGNvbG9yID0gY29sX2RpdmlkYSwgd2lkdGggPSAxLjIpLA0KICAgIHlheGlzID0gInkiDQogICkgfD4NCiAgYWRkX2xpbmVzKA0KICAgIGRhdGEgPSBkYWRvcywNCiAgICB4ID0gfmRhdGUsIHkgPSB+anVyb3NfMTBhbm9zLA0KICAgIG5hbWUgPSAiSnVyb3MgRVVBICgxMCBhbm9zLCAlKSIsDQogICAgbGluZSA9IGxpc3QoY29sb3IgPSBjb2xfanVyb3MsIHdpZHRoID0gMS44KSwNCiAgICB5YXhpcyA9ICJ5MiINCiAgKSB8Pg0KICBsYXlvdXQoDQogICAgdGl0bGUgPSBsaXN0KA0KICAgICAgdGV4dCA9ICJEw612aWRhIEzDrXF1aWRhIGRvIFNldG9yIFDDumJsaWNvIGUgSnVyb3MgZG9zIEVVQSAoMjAwOCAtIGhvamUpIiwNCiAgICAgIHggPSAwLjUsIHhhbmNob3IgPSAiY2VudGVyIg0KICAgICksDQogICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gIiIpLA0KICAgIHlheGlzID0gbGlzdCgNCiAgICAgIHRpdGxlID0gIkTDrXZpZGEgTMOtcXVpZGEgKCUgZG8gUElCKSIsDQogICAgICB6ZXJvbGluZSA9IEZBTFNFDQogICAgKSwNCiAgICB5YXhpczIgPSBsaXN0KA0KICAgICAgdGl0bGUgPSAiSnVyb3MgRVVBICgxMCBhbm9zLCAlKSIsDQogICAgICBvdmVybGF5aW5nID0gInkiLA0KICAgICAgc2lkZSA9ICJyaWdodCIsDQogICAgICBzaG93Z3JpZCA9IEZBTFNFDQogICAgKSwNCiAgICBsZWdlbmQgPSBsaXN0KA0KICAgICAgb3JpZW50YXRpb24gPSAiaCIsDQogICAgICB4ID0gMC41LCB5ID0gLTAuMTIsDQogICAgICB4YW5jaG9yID0gImNlbnRlciIsDQogICAgICBmb250ID0gbGlzdChzaXplID0gMTEpDQogICAgKSwNCiAgICBtYXJnaW4gPSBsaXN0KGwgPSA3MCwgciA9IDcwLCB0ID0gNjAsIGIgPSAxNDApLA0KICAgIGFubm90YXRpb25zID0gbGlzdCgNCiAgICAgIGxpc3QoDQogICAgICAgIHRleHQgPSAiRm9udGVzOiBCYW5jbyBDZW50cmFsIGRvIEJyYXNpbCAoQkNCIOKAkyBTw6lyaWUgNDUxMykgwrcgRmVkZXJhbCBSZXNlcnZlIChGUkVEOiBER1MxMCkiLA0KICAgICAgICB4cmVmID0gInBhcGVyIiwgeXJlZiA9ICJwYXBlciIsDQogICAgICAgIHggPSAwLjUsIHkgPSAtMC4zMywNCiAgICAgICAgc2hvd2Fycm93ID0gRkFMU0UsDQogICAgICAgIHhhbmNob3IgPSAiY2VudGVyIiwNCiAgICAgICAgZm9udCA9IGxpc3Qoc2l6ZSA9IDEwLCBjb2xvciA9ICJncmF5NDAiKQ0KICAgICAgKQ0KICAgICkNCiAgKQ0KDQpmaWcNCg0KYGBgDQoNCk8gZ3LDoWZpY28gNSBbVGVzb3VybyBOYWNpb25hbCBlIFRlc291cm8gQW1lcmljYW5vXSBpbHVzdHJhIGEgaW50ZXJhw6fDo28gZW50cmUgZMOtdmlkYSBww7pibGljYSwgcmVzZXJ2YXMgaW50ZXJuYWNpb25haXMgZSB0YXhhIGRlIGp1cm9zIGRvcyBFc3RhZG9zIFVuaWRvcywgZGVzdGFjYW5kbyBjb21vIGFzIG11ZGFuw6dhcyBuYSBwb2zDrXRpY2EgbW9uZXTDoXJpYSBnbG9iYWwgYWZldGFtIGRpcmV0YW1lbnRlIGEgZGluw6JtaWNhIGZpc2NhbCBlIGNhbWJpYWwgYnJhc2lsZWlyYS4gT2JzZXJ2YS1zZSBxdWUgYSB2YXJpYcOnw6NvIGRhIGTDrXZpZGEgbMOtcXVpZGEgw6kgcHJvcG9yY2lvbmFsIMOgIHZhcmlhw6fDo28gZG9zIGp1cm9zIG5vcyBFVUEuDQoNCiMjICoqQ29tcG9zacOnw6NvIGRhcyBSZXNlcnZhcyoqDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShwbG90bHkpDQoNCmxpYnJhcnkocGxvdGx5KQ0KDQpkYWRvc18yMDI0IDwtIGRhdGEuZnJhbWUoDQogIG1vZWRhID0gYygiVVMkIiwgIkVVUiIsICJKUFkiLCAiR0JQIiwgIkNBRCIsICJBVUQiLCAiQ05ZIiwgIk91cm8iLCAiT3V0cmFzIiksDQogIHBlcmNlbnR1YWwgPSBjKDc4LjQ1LCA1LjIzLCAxLjczLCAzLjY5LCAxLjA1LCAwLjk5LCA1LjMxLCAzLjU1LCAwLjAwKQ0KKQ0KDQpwbG90X2x5KA0KICBkYXRhID0gZGFkb3NfMjAyNCwNCiAgbGFiZWxzID0gfm1vZWRhLA0KICB2YWx1ZXMgPSB+cGVyY2VudHVhbCwNCiAgdHlwZSA9ICJwaWUiLA0KICB0ZXh0aW5mbyA9ICJub25lIiwgICMg4pyFIHJlbW92ZSBvIHRleHRvIGRlbnRybyBkYSBwaXp6YQ0KICBob3ZlcnRlbXBsYXRlID0gIiV7bGFiZWx9OiAle3ZhbHVlOi4yZn0lPGV4dHJhPjwvZXh0cmE+IiwNCiAgc29ydCA9IEZBTFNFLA0KICBtYXJrZXIgPSBsaXN0KA0KICAgIGNvbG9ycyA9IGMoDQogICAgICAiIzAyMDIzQyIsICMgYXp1bCBlc2N1cm8NCiAgICAgICIjRkVCMDE1IiwgIyBhbWFyZWxvDQogICAgICAiIzZBNUFDRCIsICMgbGlsw6FzDQogICAgICAiIzAwQkZDNCIsICMgY2lhbm8NCiAgICAgICIjRTMxQTFDIiwgIyB2ZXJtZWxobw0KICAgICAgIiMzM0EwMkMiLCAjIHZlcmRlDQogICAgICAiI0ZGN0YwMCIsICMgbGFyYW5qYQ0KICAgICAgIiNCMTU5MjgiLCAjIG1hcnJvbQ0KICAgICAgIiM5OTk5OTkiICAjIGNpbnphDQogICAgKQ0KICApDQopICU+JQ0KICBsYXlvdXQoDQogICAgdGl0bGUgPSBsaXN0KA0KICAgICAgdGV4dCA9ICJEaXN0cmlidWnDp8OjbyBwb3IgbW9lZGFzIGRhcyByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcyDigJQgMjAyNCIsDQogICAgICB4ID0gMC41LA0KICAgICAgZm9udCA9IGxpc3Qoc2l6ZSA9IDE2LCBmYW1pbHkgPSAiQXJpYWwiLCBjb2xvciA9ICIjMDAwMDAwIikNCiAgICApLA0KICAgIG1hcmdpbiA9IGxpc3QodCA9IDcwLCByID0gMjAsIGIgPSAyMCwgbCA9IDIwKSwNCiAgICBzaG93bGVnZW5kID0gVFJVRSwNCiAgICBhbm5vdGF0aW9ucyA9IGxpc3QoDQogICAgICB4ID0gMCwgICAgICAgICAgICAgICAgICAgDQogICAgICB5ID0gLTAuMDUsICAgICAgICAgICAgICAgIA0KICAgICAgdGV4dCA9ICJGb250ZTogUmVsYXTDs3JpbyBkZSBHZXN0w6NvIGRhcyByZXNlcnZhcyBJbnRlcm5hY2lvbmFpcywgQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwiLA0KICAgICAgc2hvd2Fycm93ID0gRkFMU0UsDQogICAgICB4cmVmID0gInBhcGVyIiwNCiAgICAgIHlyZWYgPSAicGFwZXIiLA0KICAgICAgYWxpZ24gPSAibGVmdCIsICAgICAgICAgICMgQWxpbmhlIG8gdGV4dG8gw6AgZXNxdWVyZGENCiAgICAgIGZvbnQgPSBsaXN0KHNpemUgPSAxMCwgY29sb3IgPSAiIzU1NTU1NSIpIA0KICAgICkpDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojLS0tQ2xhc3NlcyBkb3MgQXRpdm9zLS0tDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHNjYWxlcykNCg0KIyAtLS0tIFRhYmVsYSAyMDI0IChVUyQgbWlsaMO1ZXMpIC0tLS0NCmRhZG9zX2F0aXZvc18yMDI0IDwtIHRpYmJsZTo6dGliYmxlKA0KICBjbGFzc2UgPSBjKCJTb2JlcmFub3MiLCAiQWfDqm5jaWFzIiwgIlN1cHJhbmFjaW9uYWlzIiwNCiAgICAgICAgICAgICAiRGVww7NzaXRvcyBiYW5jb3MiLCAiRGVww7NzaXRvcyBzdXByYW5hY2lvbmFpcyIsDQogICAgICAgICAgICAgIsONbmRpY2VzIGRlIEHDp8O1ZXMiLCAiQ29ycG9yYXRlcyIsICJPdXJvIiwgIk91dHJvcyIpLA0KICB2YWxvcl9taSA9IGMoMjU3NTY1Ljg3LCAzNzE5LjU4LCA2MDc5Ljc4LCAxMDUyLjUwLCAxNjg5MS43MiwNCiAgICAgICAgICAgICAgIDMwMzkuNjAsIDM5MjIuNzgsIDEwODc2Ljk4LCAzMTgyLjg0KSAgIyBVUyQgbWlsaMO1ZXMNCikgJT4lDQogIG11dGF0ZSgNCiAgICB0b3RhbF9taSAgID0gc3VtKHZhbG9yX21pKSwNCiAgICBwZXJjZW50dWFsID0gMTAwICogdmFsb3JfbWkgLyB0b3RhbF9taSwNCiAgICB2YWxvcl9mbXQgID0gbnVtYmVyKHZhbG9yX21pLCBhY2N1cmFjeSA9IDAuMDEsDQogICAgICAgICAgICAgICAgICAgICAgICBiaWcubWFyayA9ICIuIiwgZGVjaW1hbC5tYXJrID0gIiwiKSwNCiAgICBob3Zlcl90eHQgID0gcGFzdGUwKA0KICAgICAgIjxiPiIsIGNsYXNzZSwgIjwvYj48YnI+IiwNCiAgICAgICJQYXJ0aWNpcGHDp8OjbzogIiwgc3ByaW50ZigiJS4yZiIsIHBlcmNlbnR1YWwpLCAiJTxicj4iLA0KICAgICAgIlZhbG9yOiAiLCB2YWxvcl9mbXQsICIgbWkgVVMkIg0KICAgICkNCiAgKQ0KDQojIC0tLS0gQ29yZXMgKG1hbnTDqW0gc3VhIHBhbGV0YSkgLS0tLQ0KY29yZXMgPC0gYygiI0ZFQjAxNSIsICIjMDIwMjNDIiwgIiM2QTVBQ0QiLCAiIzAwQkZDNCIsICIjRTMxQTFDIiwNCiAgICAgICAgICAgIiMzM0EwMkMiLCAiI0ZGN0YwMCIsICIjQjE1OTI4IiwgIiM5OTk5OTkiKQ0KDQojIC0tLS0gUGl6emEgMjAyNCAoJSBjb20gdG9vbHRpcCB0cmF6ZW5kbyBvIHZhbG9yKSAtLS0tDQpwbG90X2x5KA0KICBkYXRhID0gZGFkb3NfYXRpdm9zXzIwMjQsDQogIGxhYmVscyA9IH5jbGFzc2UsDQogIHZhbHVlcyA9IH5wZXJjZW50dWFsLA0KICB0eXBlICAgPSAicGllIiwNCiAgdGV4dGluZm8gPSAibm9uZSIsDQogIHNvcnQgPSBGQUxTRSwNCiAgaG92ZXJpbmZvID0gInRleHQiLA0KICB0ZXh0ID0gfmhvdmVyX3R4dCwgICAgICAgICAgIyB0ZXh0byBwcsOpLWZvcm1hdGFkbyBwYXJhIG8gdG9vbHRpcA0KICBtYXJrZXIgPSBsaXN0KGNvbG9ycyA9IGNvcmVzKQ0KKSAlPiUNCiAgbGF5b3V0KA0KICAgIHRpdGxlID0gbGlzdCgNCiAgICAgIHRleHQgPSAiRGlzdHJpYnVpw6fDo28gcG9yIGNsYXNzZXMgZGUgYXRpdm8gZGFzIHJlc2VydmFzIGludGVybmFjaW9uYWlzIOKAlCAyMDI0IiwNCiAgICAgIHggPSAwLjUsDQogICAgICBmb250ID0gbGlzdChzaXplID0gMTYsIGZhbWlseSA9ICJBcmlhbCIsIGNvbG9yID0gIiMwMDAwMDAiKQ0KICAgICksDQogICAgbWFyZ2luID0gbGlzdCh0ID0gNzAsIHIgPSAyMCwgYiA9IDMwLCBsID0gMjApLA0KICAgIHVuaWZvcm10ZXh0ID0gbGlzdChtaW5zaXplID0gMTIsIG1vZGUgPSAiaGlkZSIpLA0KICAgIHNob3dsZWdlbmQgPSBUUlVFLA0KICAgIGFubm90YXRpb25zID0gbGlzdCgNCiAgICAgIHggPSAwLCB5ID0gLTAuMDYsDQogICAgICB0ZXh0ID0gIkZvbnRlOiBSZWxhdMOzcmlvIGRlIEdlc3TDo28gZGFzIFJlc2VydmFzIEludGVybmFjaW9uYWlzLCBCYW5jbyBDZW50cmFsIGRvIEJyYXNpbCIsDQogICAgICBzaG93YXJyb3cgPSBGQUxTRSwgeHJlZiA9ICJwYXBlciIsIHlyZWYgPSAicGFwZXIiLA0KICAgICAgYWxpZ24gPSAibGVmdCIsIGZvbnQgPSBsaXN0KHNpemUgPSAxMCwgY29sb3IgPSAiIzU1NTU1NSIpDQogICAgKQ0KICApDQpgYGANCkFzIFJlc2VydmFzIEludGVybmFjaW9uYWlzIGRvIEJyYXNpbCBjb25mZXJlbSB1bWEgcm9idXN0YSBnYXJhbnRpYSBkZSBzb2x2w6puY2lhIGUgdW0gYm9tIGluc3RydW1lbnRvIGRlIGVzdGFiaWxpemHDp8Ojby4gQ29uZm9ybWUgZXZpZGVuY2lhZG8gbm8gR3LDoWZpY28gNiwgYSBkZWNpc8OjbyBkZSBtYW50ZXIgYSByZXNlcnZhIG1ham9yaXRhcmlhbWVudGUgZW0gRMOzbGFyIEFtZXJpY2FubyAoVVMkKSBiYXNlaWEtc2UgbmEgYnVzY2EgcGVsYSBsaXF1aWRleiBtw6F4aW1hLCBwb2lzIG8gZMOzbGFyIMOpIGEgbW9lZGEgZG9taW5hbnRlIGRhcyBmaW5hbsOnYXMgZSBkbyBjb23DqXJjaW8gZ2xvYmFpcy4gQ29udHVkbywgYSBlc3RyYXTDqWdpYSBkZSBnZXN0w6NvIGluY2x1aSBhIGRpdmVyc2lmaWNhw6fDo28gZW0gbW9lZGFzIGNvbW8gbyBFdXJvLCBhIExpYnJhIEVzdGVybGluYSBlIHRhbWLDqW0gZW0gT3Vyby4gRXNzYSBkaXZlcnNpZmljYcOnw6NvIG7Do28gYXBlbmFzIHByb3RlZ2UgbyBlc3RvcXVlIGNvbnRyYSBhIGRlc3ZhbG9yaXphw6fDo28gZGUgdW1hIMO6bmljYSBkaXZpc2EsIG1hcyB0YW1iw6ltIGdhcmFudGUgcXVlIG8gQkMgcG9zc2EgYXRlbmRlciBhIGRpZmVyZW50ZXMgZGVtYW5kYXMgZGUgbGlxdWlkZXogZ2xvYmFsLiBFbSBtb21lbnRvcyBkZSBjcmlzZSwgbyBncmFuZGUgZXN0b3F1ZSBlbSBtb2VkYSBmb3J0ZSBmdW5jaW9uYSBjb21vIHVtIGFnZW50ZSB0cmFucXVpbGl6YWRvciwgZ2FyYW50aW5kbyBhb3MgY3JlZG9yZXMgaW50ZXJuYWNpb25haXMgcXVlIG8gQnJhc2lsIHBvZGUgaG9ucmFyIHNldXMgY29tcHJvbWlzc29zLiBBbMOpbSBkaXNzbywgbyBHcsOhZmljbyA3IGRlbW9uc3RyYSBxdWUgYSBtYWlvciBwYXJ0ZSBkb3MgYXRpdm9zIGVzdMOhIGVtIHTDrXR1bG9zIHNvYmVyYW5vcywgdMOtdHVsb3MgZGUgZMOtdmlkYSBlbWl0aWRvcyBwb3IgZ292ZXJub3MgZGUgb3V0cm9zIHBhw61zZXMgKHByaW5jaXBhbG1lbnRlIG8gVGVzb3VybyBBbWVyaWNhbm8pLiBFc3NhIGNsYXNzZSBkZSBhdGl2byByZXByZXNlbnRhIG8gbWVub3IgcmlzY28gZGUgY3LDqWRpdG8gZ2xvYmFsLCB1bWEgdmV6IHF1ZSB1bSBnb3Zlcm5vIHNvYmVyYW5vIHBvZGUgYWdpciBwYXJhIGxpcXVpZGFyIHN1YSBkw612aWRhLCBzZWphIGF1bWVudGFuZG8gaW1wb3N0b3MsIHZlbmRlbmRvIG91dHJvcyBhdGl2b3MsIG91IGF0w6kgZW1pdGluZG8gbW9lZGEgZsOtc2ljYSwgZSDDqSBmdW5kYW1lbnRhbCBwYXJhIHByZXNlcnZhciBvIHZhbG9yIGRvIGNvbGNow6NvIGRlIHJlc2VydmFzLiBBbyBmb2NhciBlbSBzZWd1cmFuw6dhIGUgbGlxdWlkZXosIG8gQkMgYXNzZWd1cmEgcXVlIG8gc2V1IHBvZGVyIHBhcmEgaW50ZXJ2aXIgbmEgZXN0YWJpbGlkYWRlIGNhbWJpYWwgZSBhbW9ydGVjZXIgY2hvcXVlcyBzZWphIG1hbnRpZG8uDQoNCiMjICoqQ29uY2x1c8OjbyoqDQpBIGFuw6FsaXNlIGRhcyBjcmlzZXMgZGUgMjAwOCBlIDIwMjAgZXZpZGVuY2lhIHF1ZSBhcyByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcyBkZXNlbXBlbmhhbSB1bSBwYXBlbCBlc3RyYXTDqWdpY28gZnVuZGFtZW50YWwgbmEgZXN0YWJpbGlkYWRlIG1hY3JvZWNvbsO0bWljYSBkbyBCcmFzaWwuIEVsYXMgZnVuY2lvbmFtIGNvbW8gdW0gdmVyZGFkZWlybyBzZWd1cm8gc29iZXJhbm8sIHBlcm1pdGluZG8gYW8gQmFuY28gQ2VudHJhbCBhdHVhciBkZSBmb3JtYSByw6FwaWRhIGUgZWZpY2F6IHBhcmEgY29udGVyIGEgdm9sYXRpbGlkYWRlIGNhbWJpYWwsIGdhcmFudGlyIGxpcXVpZGV6IGFvIG1lcmNhZG8gZSBwcmVzZXJ2YXIgYSBjb25maWFuw6dhIGRvcyBpbnZlc3RpZG9yZXMuDQpFbSBhbWJvcyBvcyBlcGlzw7NkaW9zLCBvIHVzbyBwcnVkZW50ZSBlIGNvb3JkZW5hZG8gZGFzIHJlc2VydmFzIGRlbW9uc3Ryb3UgYSBjYXBhY2lkYWRlIGRvIHBhw61zIGRlIGVuZnJlbnRhciBjaG9xdWVzIGV4dGVybm9zIHNlbSBjb21wcm9tZXRlciBzdWEgc29sdsOqbmNpYSwgZGVzdGFjYW5kbyBhIGltcG9ydMOibmNpYSBkZSBtYW50ZXIgdW0gZXN0b3F1ZSByb2J1c3RvIG1lc21vIGRpYW50ZSBkbyBjdXN0byBmaXNjYWwgYXNzb2NpYWRvLiBBIHBvbMOtdGljYSBkZSBnZXN0w6NvIGRhcyByZXNlcnZhcywgY29uY2VudHJhZGEgZW0gYXRpdm9zIGRlIGFsdGEgbGlxdWlkZXogZSBiYWl4byByaXNjbywgcHJpbmNpcGFsbWVudGUgdMOtdHVsb3MgZG8gVGVzb3VybyBhbWVyaWNhbm8sIHJlZm9yw6dhIGEgY3JlZGliaWxpZGFkZSBkbyBCcmFzaWwgcGVyYW50ZSBvcyBtZXJjYWRvcyBpbnRlcm5hY2lvbmFpcyBlIGFzc2VndXJhIGEgY29udGludWlkYWRlIGRlIHN1YXMgb3BlcmHDp8O1ZXMgZXh0ZXJuYXMgZW0gY29udGV4dG9zIGFkdmVyc29zLg0KQXNzaW0sIG8gZGVzYWZpbyBxdWUgc2UgaW1ww7VlIMOgIHBvbMOtdGljYSBlY29uw7RtaWNhIGJyYXNpbGVpcmEgw6kgbyBkZSBlcXVpbGlicmFyIGEgbmVjZXNzaWRhZGUgZGUgcHJvdGVnZXIgbyBwYcOtcyBjb250cmEgY2hvcXVlcyBmaW5hbmNlaXJvcyBnbG9iYWlzIGNvbSBhIHN1c3RlbnRhYmlsaWRhZGUgZmlzY2FsIGludGVybmEuIE1hbnRlciByZXNlcnZhcyBlbGV2YWRhcyBpbXBsaWNhIGN1c3RvcywgbWFzIGEgYXVzw6puY2lhIGRlbGFzIHRlcmlhIGN1c3RvcyBtdWl0byBtYWlvcmVzOiBwZXJkYSBkZSBjcmVkaWJpbGlkYWRlLCBpbnN0YWJpbGlkYWRlIGNhbWJpYWwgZSByaXNjbyBkZSBjcmlzZSBkZSBjb25maWFuw6dhLiBOZXNzZSBzZW50aWRvLCBhcyByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcyBzZSBjb25zb2xpZGFtIGNvbW8gdW0gcGlsYXIgZXNzZW5jaWFsIGRhIHBvbMOtdGljYSBlY29uw7RtaWNhIGUgZGEgcmVzaWxpw6puY2lhIGZpbmFuY2VpcmEgZG8gQnJhc2lsIGZyZW50ZSDDoHMgaW5jZXJ0ZXphcyBkbyBjZW7DoXJpbyBnbG9iYWwuDQoNCiMjICoqUmVmZXLDqm5jaWFzKioNCg0KQkFOQ08gQ0VOVFJBTCBETyBCUkFTSUwuIFPDqXJpZXMgdGVtcG9yYWlzIOKAkyBTaXN0ZW1hIEdlcmVuY2lhZG9yIGRlIFPDqXJpZXMgVGVtcG9yYWlzIChTR1MpLiBCcmFzw61saWE6IEJhbmNvIENlbnRyYWwgZG8gQnJhc2lsLiBEaXNwb27DrXZlbCBlbTogaHR0cHM6Ly93d3cuYmNiLmdvdi5ici9lc3RhdGlzdGljYXMvc2dzLiBBY2Vzc28gZW06IDYgb3V0LiAyMDI1Lg0KDQpCQU5DTyBDRU5UUkFMIERPIEJSQVNJTC4gUmVsYXTDs3JpbyBBbnVhbCAyMDA4LiBCb2xldGltIGRvIEJhbmNvIENlbnRyYWwgZG8gQnJhc2lsLCB2LiA0NCwgMjAwOC4gQnJhc8OtbGlhOiBCQ0IuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL3d3dy5iY2IuZ292LmJyL3BlYy9ib2xldGltL2JhbnVhbDIwMDgvcmVsMjAwOHAucGRmLiBBY2Vzc28gZW06IDYgb3V0LiAyMDI1LiBCYW5jbyBDZW50cmFsIGRvIEJyYXNpbA0KDQpCQU5DTyBDRU5UUkFMIERPIEJSQVNJTC4gUmVsYXTDs3JpbyBkZSBHZXN0w6NvIGRhcyBSZXNlcnZhcyBJbnRlcm5hY2lvbmFpcy4gdi4gMTcuIEJyYXPDrWxpYTogQkNCLCBtYXIuIDIwMjUuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL3d3dy5iY2IuZ292LmJyL2NvbnRlbnQvcHVibGljYWNvZXMvcmVsZ2VzdGFvcmVzZXJ2YXMvR0VTVEFPUkVTRVJWQVMyMDI1MDMtcmVsYXRvcmlvX2FudWFsX3Jlc2VydmFzX2ludGVybmFjaW9uYWlzXzIwMjUucGRmLiBBY2Vzc28gZW06IDYgb3V0LiAyMDI1LiBCYW5jbyBDZW50cmFsIGRvIEJyYXNpbA0KDQpNRVNRVUlUQSwgTcOhcmlvOyBUT1LDk1MsIE3DoXJpby4gQ29uc2lkZXJhw6fDtWVzIHNvYnJlIGEgQXR1YcOnw6NvIGRvIEJhbmNvIENlbnRyYWwgbmEgQ3Jpc2UgZGUgMjAwOC4gVHJhYmFsaG9zIHBhcmEgRGlzY3Vzc8Ojbywgbi4gMjAyLiBCcmFzw61saWE6IEJhbmNvIENlbnRyYWwgZG8gQnJhc2lsLCBtYXIuIDIwMTAuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL3d3dy5iY2IuZ292LmJyL3BlYy93cHMvcG9ydC93cHMyMDIucGRmLiBBY2Vzc28gZW06IDYgb3V0LiAyMDI1LiBCYW5jbyBDZW50cmFsIGRvIEJyYXNpbA0KDQpQRUxMRUdSSU5JLCBKb3N1w6kuIEN1c3RvIGRlIGNhcnJlZ2FtZW50byBlIG7DrXZlbCBkYXMgcmVzZXJ2YXMgaW50ZXJuYWNpb25haXMuIE5vdGEgVMOpY25pY2Egbi4gMzkuIEJyYXPDrWxpYTogU2VuYWRvIEZlZGVyYWwsIEluc3RpdHVpw6fDo28gRmlzY2FsIEluZGVwZW5kZW50ZSwgMjggb3V0LiAyMDE5LiBEaXNwb27DrXZlbCBlbTogaHR0cHM6Ly93d3cyLnNlbmFkby5sZWcuYnIvYmRzZi9iaXRzdHJlYW0vaGFuZGxlL2lkLzU2MzgzNC9OVDM5X0N1c3RvX2NhcnJlZ2FtZW50b19uaXZlbF9yZXNlcnZhc19pbnRlcm5hY2lvbmFpcy5wZGYuIEFjZXNzbyBlbTogNiBvdXQuIDIwMjUuIFNlbmFkbw0KDQpST0RSSUdVRVMgREUgT0xJVkVJUkEsIENpbnRoaWE7IExFT05BUkRPIERFIEFSQVVKTywgVmljdG9yLiBFeGNlc3NvPyBPIGRlYmF0ZSBzb2JyZSBvIG7DrXZlbCBkYXMgcmVzZXJ2YXMgaW50ZXJuYWNpb25haXMgbm8gQnJhc2lsLiBCcmF6aWxpYW4gS2V5bmVzaWFuIFJldmlldywgdi4gNywgbi4gMSwgcC4gMTA34oCTMTU0LCAyMDIxLiBET0k6IDEwLjMzODM0L2Jrci52N2kxLjI0NS4gRGlzcG9uw612ZWwgZW06IGh0dHBzOi8vYnJhemlsaWFua2V5bmVzaWFucmV2aWV3Lm9yZy9CS1IvYXJ0aWNsZS92aWV3LzI0NS4gQWNlc3NvIGVtOiA2IG91dC4gMjAyNS4gYnJhemlsaWFua2V5bmVzaWFucmV2aWV3Lm9yZw0KDQpTQU1QQUlPLCBBZHJpYW5vIFZpbGVsYTsgV0VJU1MsIE1hdXJpY2lvIEFuZHJhZGU7IFZBTiBOT0lKRSwgUGF1bG8uIFBhbmRlbWlhIGRhIENvdmlkLTE5IGUgcHJlc3PDo28gY2FtYmlhbDogdW1hIGFuw6FsaXNlIGRvcyBwYcOtc2VzIGVtZXJnZW50ZXMuIEVjb25vbWlhIGUgU29jaWVkYWRlLCBDYW1waW5hcywgdi4gMzEsIG4uIDEsIHAuIDE1OS0xODksIDIwMjIuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL3BlcmlvZGljb3Muc2J1LnVuaWNhbXAuYnIvb2pzL2luZGV4LnBocC9lY29zL2FydGljbGUvdmlldy84NjgxMDk3LiBBY2Vzc28gZW06IDYgb3V0LiAyMDI1Lg0KDQpVTklWRVJTSURBREUgREUgU8ODTyBQQVVMTy4gTWFudWFsIGRlIE1hY3JvZWNvbm9taWEgQsOhc2ljbyBlIEludGVybWVkacOhcmlvLiBTw6NvIFBhdWxvOiBVU1AsIHMuZC4=