Análise das Funções, Objetivos e Desafios da Gestão das Reservas
Internacionais
Este relatório tem como objetivo analisar a administração das
reservas internacionais, abordando suas funções, objetivos e os
principais desafios da gestão desses ativos. As reservas cumprem papel
essencial na estabilidade econômica, ao reduzir vulnerabilidades
externas e reforçar a credibilidade da política monetária frente a
choques cambiais e incertezas globais.
Conceito e Composição das Reservas
O tema das reservas internacionais é central para compreender a
estabilidade macroeconômica e a capacidade de resposta de um país a
choques externos. As reservas são recursos mantidos pelo Banco Central
com o objetivo de garantir liquidez em momentos de crise, sustentar a
confiança dos investidores e reduzir a vulnerabilidade cambial. Elas
funcionam como uma espécie de “seguro” financeiro, permitindo que o país
intervenha no mercado de câmbio ou honre compromissos externos em
períodos de instabilidade.
Conceitualmente, as reservas internacionais são compostas por ativos
externos de alta liquidez e baixo risco, como moedas estrangeiras,
títulos públicos de economias avançadas, ouro e Direitos Especiais de
Saque (DES) do FMI. Essa diversificação busca equilibrar segurança e
rentabilidade, preservando o valor dos ativos diante de flutuações nos
mercados globais.
O gráfico ilustra a composição das reservas por moeda em 2024,
evidenciando a predominância do dólar americano, que representa 78,5% do
total. Essa concentração reflete a posição do dólar como principal moeda
de reserva e meio de liquidação internacional. Em seguida aparecem o
renminbi (5,3%), o euro (5,2%), a libra esterlina (3,7%) e o ouro
(3,6%), com participações menores do iene (1,7%), dólar canadense (1,1%)
e dólar australiano (1%). A distribuição indica uma estratégia
conservadora, alinhada ao padrão global, em que a predominância do dólar
assegura liquidez imediata, enquanto a presença de outras moedas e do
ouro contribui para diversificação e mitigação de riscos.
Evolução no Brasil das reservas
O comportamento das reservas internacionais brasileiras ao longo dos
anos 2000 reflete o fortalecimento do setor externo e o ciclo de
crescimento das exportações de commodities. O aumento dos preços
internacionais e os sucessivos superávits comerciais permitiram ao país
acumular reservas de forma consistente, reduzindo sua vulnerabilidade
externa e ampliando a capacidade de enfrentamento a crises financeiras.
Esse movimento consolidou o Brasil entre os países emergentes com maior
volume de reservas internacionais, reforçando a credibilidade da
política macroeconômica e a percepção de solidez perante investidores
estrangeiros.
O gráfico mostra a evolução das reservas internacionais em comparação
com a balança comercial entre dezembro de 2000 e setembro de 2025.
Nota-se que, nos primeiros anos da série, o nível de reservas era
significativamente inferior ao saldo comercial, refletindo a limitada
capacidade de acumulação externa naquele período. A partir de meados da
década de 2000, o avanço expressivo das exportações e os saldos
positivos da balança comercial impulsionaram o crescimento das reservas,
que ultrapassam a balança comercial por volta do final do ano de 2010.
Desde então, o estoque de reservas mantém trajetória superior,
evidenciando o amadurecimento da posição externa do país e o uso dos
ganhos comerciais como instrumento de fortalecimento das contas
externas.
Função e Importância Global
As reservas internacionais também cumprem uma função estratégica ao
fortalecer a confiança internacional e reduzir o risco-país. Um volume
elevado de reservas transmite segurança a investidores e credores
externos, pois indica que o país tem capacidade de honrar seus
compromissos financeiros mesmo em cenários de estresse global. Além
disso, as reservas funcionam como um colchão de liquidez que permite ao
governo reagir rapidamente em crises externas, evitando escassez de
divisas, desvalorizações abruptas da moeda e instabilidade
financeira.
O gráfico a seguir apresenta o ranking dos 15 países com maiores
volumes de reservas internacionais em 2025 (até setembro). Observa-se
que a China lidera com ampla margem, refletindo décadas de superávits
comerciais e forte controle cambial. Em seguida aparecem Arábia Saudita,
Japão, Espanha, Suíça e Rússia, economias que acumulam reservas elevadas
por diferentes motivos, desde a exportação de petróleo, no caso saudita,
até a busca por estabilidade financeira e proteção contra choques
externos, como no caso japonês e suíço.
O Brasil também figura entre as principais economias emergentes do
ranking, reforçando sua posição de relativa solidez externa. Esse
patamar de reservas oferece importante sustentação à credibilidade do
país, contribuindo para manter o risco soberano em níveis controlados e
garantir estabilidade macroeconômica mesmo em períodos de incerteza
internacional.
Custos de Manutenção e Impactos na Política
Econômica
As reservas internacionais são fundamentais para a estabilidade
macroeconômica brasileira, mas sua manutenção implica custos fiscais
significativos. Este custo decorre do diferencial entre a taxa Selic,
que o país paga para financiar sua dívida interna, e o rendimento das
reservas aplicadas em ativos externos de baixo risco, principalmente
títulos do Tesouro Americano.
O mecanismo funciona assim: quando o Banco Central compra dólares no
mercado pagando em reais, aumenta a moeda em circulação, o que poderia
pressionar a inflação. Para neutralizar esse efeito, emite títulos
públicos que pagam a Selic para retirar esses reais de circulação,
processo chamado esterilização. Como esses títulos pagam juros
significativamente superiores ao rendimento das reservas no exterior,
surge o custo fiscal.
Entre 2010 e 2025, o custo fiscal das reservas variou conforme o
diferencial Selic–Treasury 10Y. Entre 2015 e 2017, com Selic acima de
13% e Treasury em 2 a 2,6%, o custo foi de R$ 150 a 180 bilhões. Durante
a pandemia (2020–2021), com Selic em 1,9% e Treasury 0,5 a 1,7%, caiu
para R$ 15 a 40 bilhões. Entre 2022 e 2025, com Selic de 10,5 a 14,9% e
Treasury 1,5 a 4,6%, os custos ficaram entre R$ 80 a 160 bilhões,
mostrando que o principal determinante é o diferencial entre as
taxas.
Há, portanto, um trade-off evidente: as reservas protegem contra
crises cambiais, mas o custo fiscal poderia financiar investimentos
públicos ou redução da dívida. A perspectiva futura desse custo depende
da trajetória da Selic e dos rendimentos dos títulos do Tesouro
americano. Se o Brasil consolidar desinflação sustentável e redução do
risco fiscal, a Selic poderá convergir para níveis mais próximos aos
internacionais, reduzindo o diferencial e o custo. Caso contrário, a
persistência de juros estruturalmente altos no Brasil manterá o ônus
fiscal elevado.
Apêndice - Custo Fiscal das Reservas Internacionais
O diferencial de custo fiscal é calculado por:
\[\text{Diferencial} = i_{Selic} -
i_{ext}\]
Onde:
- \(i_{Selic}\) = Taxa Selic (%
a.a.)
- \(i_{ext}\) = Rendimento das
reservas no exterior (% a.a.)
O custo fiscal anual em reais é dado por:
\[CF = R \times C \times (i_{Selic} -
i_{ext})\]
Onde:
- \(CF\) = Custo Fiscal (R$
bilhões)
- \(R\) = Reservas Internacionais
(US$ bilhões)
- \(C\) = Taxa de câmbio média
(R\(/US\))
- \(i_{Selic}\) = Taxa Selic (em
decimal)
- \(i_{ext}\) = Rendimento externo
(em decimal)
Conclusão
A análise das reservas internacionais evidencia seu papel estratégico
na manutenção da estabilidade macroeconômica e na mitigação de riscos
externos. Ao longo dos últimos anos, a acumulação de reservas permitiu
ao país reduzir a volatilidade cambial, fortalecer a confiança de
investidores internacionais e assegurar recursos em períodos de crise,
consolidando a posição do Brasil entre os principais países emergentes
em termos de volume de reservas.
Entretanto, a gestão dessas reservas não está isenta de custos. A
diferença entre a remuneração obtida em ativos externos de baixo risco e
o custo do financiamento interno, via taxa Selic, representa um custo
fiscal relevante que precisa ser monitorado, especialmente em ciclos de
juros elevados. Esse equilíbrio delicado entre segurança cambial e
eficiência fiscal evidencia a complexidade de decisões envolvendo
política econômica, política monetária e gestão de riscos externos.
Em suma, a sustentabilidade da política de reservas internacionais
depende de decisões consistentes, capazes de equilibrar proteção
cambial, manutenção da confiança internacional e custos fiscais. O
desafio reside em preservar esse “colchão” financeiro sem comprometer a
disciplina orçamentária, garantindo, ao mesmo tempo, estabilidade
financeira e resiliência frente a choques externos.
LS0tDQp0aXRsZTogICJSZWxhdMOzcmlvIGRlIEFkbWluaXN0cmHDp8OjbyBkYXMgUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMiDQphdXRob3I6ICJEYXZpIE9saXZlaXJhKFRyYWluZWUpIGUgSXNhZG9yYSBMZWFsKFRyYWluZWUpLiBMdWl6IEdhbWEoUHJvZmVzc29yIE9yaWVudGFkb3IpLSBEb3V0b3IgZW0gRWNvbm9taWEgZSBwcm9mZXNzb3IgZG8gSWJtZWMgQkggIg0KZGF0ZTogIjIxLTEwLTIwMjUiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdGhlbWU6IGx1bWVuDQogICAgaGlnaGxpZ2h0OiB0YW5nbw0KICAgIGNvZGVfZm9sZGluZzogc2hvdw0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUgDQotLS0NCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0UpDQoNCiMgQ2FycmVnYXIgcGFjb3Rlcw0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHBsb3RseSkNCmxpYnJhcnkoaGlnaGNoYXJ0ZXIpDQpsaWJyYXJ5KGZyZWRyKQ0KbGlicmFyeShyYmNiKQ0KbGlicmFyeShxdWFudG1vZCkNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeSh0aWJibGUpDQpsaWJyYXJ5KHNjYWxlcykNCmxpYnJhcnkoaHR0cikNCmxpYnJhcnkoanNvbmxpdGUpDQpsaWJyYXJ5KHN0cmluZ3IpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeShwZGZ0b29scykNCg0KDQpgYGANCg0KDQoNCiMgQW7DoWxpc2UgZGFzIEZ1bsOnw7VlcywgT2JqZXRpdm9zIGUgRGVzYWZpb3MgZGEgR2VzdMOjbyBkYXMgUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMNCkVzdGUgcmVsYXTDs3JpbyB0ZW0gY29tbyBvYmpldGl2byBhbmFsaXNhciBhIGFkbWluaXN0cmHDp8OjbyBkYXMgcmVzZXJ2YXMgaW50ZXJuYWNpb25haXMsIGFib3JkYW5kbyBzdWFzIGZ1bsOnw7Vlcywgb2JqZXRpdm9zIGUgb3MgcHJpbmNpcGFpcyBkZXNhZmlvcyBkYSBnZXN0w6NvIGRlc3NlcyBhdGl2b3MuIEFzIHJlc2VydmFzIGN1bXByZW0gcGFwZWwgZXNzZW5jaWFsIG5hIGVzdGFiaWxpZGFkZSBlY29uw7RtaWNhLCBhbyByZWR1emlyIHZ1bG5lcmFiaWxpZGFkZXMgZXh0ZXJuYXMgZSByZWZvcsOnYXIgYSBjcmVkaWJpbGlkYWRlIGRhIHBvbMOtdGljYSBtb25ldMOhcmlhIGZyZW50ZSBhIGNob3F1ZXMgY2FtYmlhaXMgZSBpbmNlcnRlemFzIGdsb2JhaXMuDQoNCg0KDQojICoqQ29uY2VpdG8gZSBDb21wb3Npw6fDo28gZGFzIFJlc2VydmFzKioNCmBgYHtyfQ0KbGlicmFyeShoaWdoY2hhcnRlcikNCmxpYnJhcnkoZHBseXIpDQoNCiMgLS0tIFBhbGV0YSBkZSBDb3JlcyBBZGFwdGFkYSAodXNhbmRvIGFzIHByaW1laXJhcyBjb3JlcyBkYSBzdWEgcmVmZXLDqm5jaWEpIC0tLQ0KbWluaGFfcGFsZXRhX3Jlc2VydmFzIDwtIGMoDQogICIjMDIwMjNDIiwgIyBEw7NsYXIgKE1haW9yIFBhcnRpY2lwYcOnw6NvKQ0KICAiI0ZFQjcxMiIsICMgUmVubWluYmkNCiAgIiM0NkIxRTEiLCAjIEV1cm8NCiAgIiMwMDJDNUUiLCAjIExpYnJhDQogICJibGFjayIsICAgIyBPdXJvDQogICIjOEU0NEFEIiwgIyBJZW5lDQogICIjRTY3RTIyIiwgIyBEw7NsYXIgQ2FuYWRlbnNlDQogICIjMTZBMDg1IiAgIyBEw7NsYXIgQXVzdHJhbGlhbm8NCikNCg0KIyAxLiBDYXJyZWdhciBvcyBkYWRvcw0KIyBPIGFycXVpdm8gIlJlc2VydmFzIGRlIG1vZWRhcy5jc3YiIGRldmUgZXN0YXIgbm8gc2V1IGRpcmV0w7NyaW8gZGUgdHJhYmFsaG8uDQpkYWRvcyA8LSByZWFkLmNzdigNCiAgIlJlc2VydmFzIGRlIG1vZWRhcy5jc3YiLA0KICBzZXAgPSAiOyIsDQogIGRlYyA9ICIsIg0KKQ0KDQojIDIuIFByZXBhcmFyIG9zIGRhZG9zIHBhcmEgbyBIaWdoY2hhcnRlcg0KZGFkb3NfaGlnaGNoYXJ0IDwtIGRhZG9zIHw+DQogIHJlbmFtZSgNCiAgICBuYW1lID0gTW9lZGEsDQogICAgeSA9IFBhcnRpY2lwYcOnw6NvDQogICkgfD4NCiAgIyBHYXJhbnRlIHF1ZSBhIGNvbHVuYSAneScgKFBhcnRpY2lwYcOnw6NvKSBzZWphIG51bcOpcmljYSBlIGFycmVkb25kYQ0KICBtdXRhdGUoeSA9IHJvdW5kKGFzLm51bWVyaWMoeSksIDIpKQ0KDQojIDMuIENyaWFyIG8gR3LDoWZpY28gZGUgUGl6emEgY29tIEVzdGlsbyBDb21wbGV0byBlIExlZ2VuZGEgbmEgQmFzZQ0KaGlnaGNoYXJ0KCkgfD4NCiAgaGNfY2hhcnQodHlwZSA9ICJwaWUiKSB8Pg0KICBoY19zaXplKGhlaWdodCA9IDYwMCkgfD4NCiAgaGNfY29sb3JzKG1pbmhhX3BhbGV0YV9yZXNlcnZhcykgfD4NCiAgDQogICMgVMONVFVMT1MgRSBTVUJUw41UVUxPUw0KICBoY190aXRsZSh0ZXh0ID0gIkFsb2Nhw6fDo28gcG9yIE1vZWRhcyBuYXMgUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMgZG8gQnJhc2lsICgyMDI0KSIpIHw+DQogIGhjX3N1YnRpdGxlKHRleHQgPSAiRm9udGU6IEJhbmNvIENlbnRyYWwgZG8gQnJhc2lsIChEZXplbWJybyAyMDI0KSIpIHw+DQogIA0KICAjIE9Qw4fDlUVTIERPIEdSw4FGSUNPIChQSUUpDQogIGhjX3Bsb3RPcHRpb25zKA0KICAgIHBpZSA9IGxpc3QoDQogICAgICBhbGxvd1BvaW50U2VsZWN0ID0gVFJVRSwNCiAgICAgIGN1cnNvciA9ICJwb2ludGVyIiwNCiAgICAgICMgUsOTVFVMT1MgRVhURVJOT1M6IE1hbnRpZG8gbyBlc3RpbG8gZGEgaW1hZ2VtIGFudGVyaW9yLg0KICAgICAgIyBTZSBmaWNhciBwb2x1w61kbyBjb20gYSBsZWdlbmRhLCB2b2PDqiBwb2RlIGRlc2FiaWxpdGFyIChlbmFibGVkID0gRkFMU0UpLg0KICAgICAgZGF0YUxhYmVscyA9IGxpc3QoDQogICAgICAgIGVuYWJsZWQgPSBUUlVFLA0KICAgICAgICBmb3JtYXQgPSAie3BvaW50Lm5hbWV9OiB7cG9pbnQucGVyY2VudGFnZTouMWZ9JSIsDQogICAgICAgIGRpc3RhbmNlID0gMjAsDQogICAgICAgIHN0eWxlID0gbGlzdChmb250U2l6ZSA9ICIxMHB4IikNCiAgICAgICksDQogICAgICAjIEFMVEVSQcOHw4NPIDE6IEhhYmlsaXRhIGEgbGVnZW5kYSAobmVjZXNzw6FyaW8gcGFyYSBoY19sZWdlbmQgZnVuY2lvbmFyKQ0KICAgICAgc2hvd0luTGVnZW5kID0gVFJVRSwNCiAgICAgICMgQUxURVJBw4fDg08gMjogUmVtb3ZlIG8gZXNwYcOnYW1lbnRvIGludGVybm8gKHRvcm5hLXNlIHVtIFBJWlpBIGNvbXBsZXRvKQ0KICAgICAgaW5uZXJTaXplID0gJzAlJw0KICAgICkNCiAgKSB8Pg0KICANCiAgIyBBRElDSU9OQSBBIFPDiVJJRSBERSBEQURPUw0KICBoY19hZGRfc2VyaWVzKG5hbWUgPSAiUGFydGljaXBhw6fDo28gKCUpIiwgZGF0YSA9IGxpc3RfcGFyc2UoZGFkb3NfaGlnaGNoYXJ0KSkgfD4NCiAgDQogICMgVE9PTFRJUCAoRGljYSBkZSBGZXJyYW1lbnRhKQ0KICBoY190b29sdGlwKA0KICAgIHBvaW50Rm9ybWF0ID0gIjxiPntwb2ludC5uYW1lfTwvYj48YnIvPlBhcnRpY2lwYcOnw6NvOiA8Yj57cG9pbnQueTouMmZ9JTwvYj4iLA0KICAgIHZhbHVlRGVjaW1hbHMgPSAyDQogICkgfD4NCiAgDQogICMgQUxURVJBw4fDg08gMzogQ09ORklHVVJBw4fDg08gREEgTEVHRU5EQSBOQSBCQVNFIChFaXhvIFgpDQogIGhjX2xlZ2VuZCgNCiAgICBlbmFibGVkID0gVFJVRSwNCiAgICBhbGlnbiA9ICJjZW50ZXIiLA0KICAgIHZlcnRpY2FsQWxpZ24gPSAiYm90dG9tIiwgIyBQb3Npw6fDo286IEluZmVyaW9yDQogICAgbGF5b3V0ID0gImhvcml6b250YWwiDQogICkgfD4NCiAgDQogICMgQ1LDiURJVE9TIEUgRVhQT1JUQcOHw4NPDQogIGhjX2NyZWRpdHMoDQogICAgZW5hYmxlZCA9IFRSVUUsDQogICAgdGV4dCA9ICJGb250ZTogQkNCIHwgR3LDoWZpY286IEVsYWJvcmHDp8OjbyBQcsOzcHJpYSINCiAgKSB8Pg0KICBoY19leHBvcnRpbmcoZW5hYmxlZCA9IFRSVUUpDQoNCmBgYA0KTyB0ZW1hIGRhcyByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcyDDqSBjZW50cmFsIHBhcmEgY29tcHJlZW5kZXIgYSBlc3RhYmlsaWRhZGUgbWFjcm9lY29uw7RtaWNhIGUgYSBjYXBhY2lkYWRlIGRlIHJlc3Bvc3RhIGRlIHVtIHBhw61zIGEgY2hvcXVlcyBleHRlcm5vcy4gQXMgcmVzZXJ2YXMgc8OjbyByZWN1cnNvcyBtYW50aWRvcyBwZWxvIEJhbmNvIENlbnRyYWwgY29tIG8gb2JqZXRpdm8gZGUgZ2FyYW50aXIgbGlxdWlkZXogZW0gbW9tZW50b3MgZGUgY3Jpc2UsIHN1c3RlbnRhciBhIGNvbmZpYW7Dp2EgZG9zIGludmVzdGlkb3JlcyBlIHJlZHV6aXIgYSB2dWxuZXJhYmlsaWRhZGUgY2FtYmlhbC4gRWxhcyBmdW5jaW9uYW0gY29tbyB1bWEgZXNww6ljaWUgZGUg4oCcc2VndXJv4oCdIGZpbmFuY2Vpcm8sIHBlcm1pdGluZG8gcXVlIG8gcGHDrXMgaW50ZXJ2ZW5oYSBubyBtZXJjYWRvIGRlIGPDom1iaW8gb3UgaG9ucmUgY29tcHJvbWlzc29zIGV4dGVybm9zIGVtIHBlcsOtb2RvcyBkZSBpbnN0YWJpbGlkYWRlLg0KDQpDb25jZWl0dWFsbWVudGUsIGFzIHJlc2VydmFzIGludGVybmFjaW9uYWlzIHPDo28gY29tcG9zdGFzIHBvciBhdGl2b3MgZXh0ZXJub3MgZGUgYWx0YSBsaXF1aWRleiBlIGJhaXhvIHJpc2NvLCBjb21vIG1vZWRhcyBlc3RyYW5nZWlyYXMsIHTDrXR1bG9zIHDDumJsaWNvcyBkZSBlY29ub21pYXMgYXZhbsOnYWRhcywgb3VybyBlIERpcmVpdG9zIEVzcGVjaWFpcyBkZSBTYXF1ZSAoREVTKSBkbyBGTUkuIEVzc2EgZGl2ZXJzaWZpY2HDp8OjbyBidXNjYSBlcXVpbGlicmFyIHNlZ3VyYW7Dp2EgZSByZW50YWJpbGlkYWRlLCBwcmVzZXJ2YW5kbyBvIHZhbG9yIGRvcyBhdGl2b3MgZGlhbnRlIGRlIGZsdXR1YcOnw7VlcyBub3MgbWVyY2Fkb3MgZ2xvYmFpcy4NCg0KTyBncsOhZmljbyBpbHVzdHJhIGEgY29tcG9zacOnw6NvIGRhcyByZXNlcnZhcyBwb3IgbW9lZGEgZW0gMjAyNCwgZXZpZGVuY2lhbmRvIGEgcHJlZG9taW7Dom5jaWEgZG8gZMOzbGFyIGFtZXJpY2FubywgcXVlIHJlcHJlc2VudGEgNzgsNSUgZG8gdG90YWwuIEVzc2EgY29uY2VudHJhw6fDo28gcmVmbGV0ZSBhIHBvc2nDp8OjbyBkbyBkw7NsYXIgY29tbyBwcmluY2lwYWwgbW9lZGEgZGUgcmVzZXJ2YSBlIG1laW8gZGUgbGlxdWlkYcOnw6NvIGludGVybmFjaW9uYWwuIEVtIHNlZ3VpZGEgYXBhcmVjZW0gbyByZW5taW5iaSAoNSwzJSksIG8gZXVybyAoNSwyJSksIGEgbGlicmEgZXN0ZXJsaW5hICgzLDclKSBlIG8gb3VybyAoMyw2JSksIGNvbSBwYXJ0aWNpcGHDp8O1ZXMgbWVub3JlcyBkbyBpZW5lICgxLDclKSwgZMOzbGFyIGNhbmFkZW5zZSAoMSwxJSkgZSBkw7NsYXIgYXVzdHJhbGlhbm8gKDElKS4gQSBkaXN0cmlidWnDp8OjbyBpbmRpY2EgdW1hIGVzdHJhdMOpZ2lhIGNvbnNlcnZhZG9yYSwgYWxpbmhhZGEgYW8gcGFkcsOjbyBnbG9iYWwsIGVtIHF1ZSBhIHByZWRvbWluw6JuY2lhIGRvIGTDs2xhciBhc3NlZ3VyYSBsaXF1aWRleiBpbWVkaWF0YSwgZW5xdWFudG8gYSBwcmVzZW7Dp2EgZGUgb3V0cmFzIG1vZWRhcyBlIGRvIG91cm8gY29udHJpYnVpIHBhcmEgZGl2ZXJzaWZpY2HDp8OjbyBlIG1pdGlnYcOnw6NvIGRlIHJpc2Nvcy4NCg0KDQoNCg0KIyAqKkV2b2x1w6fDo28gbm8gQnJhc2lsIGRhcyByZXNlcnZhcyoqIA0KYGBge3J9DQojIC0tLSBQYWNvdGVzIC0tLQ0KbGlicmFyeShyZWFkcikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCmxpYnJhcnkoaGlnaGNoYXJ0ZXIpDQpsaWJyYXJ5KHN0cmluZ3IpDQoNCiMgLS0tIExlciBkYWRvcyBkYSBCYWxhbsOnYSBDb21lcmNpYWwgLS0tDQpiYWxhbmNhX3JhdyA8LSByZWFkX2RlbGltKA0KICAiQmFsYW5jYSBjb21lcmNpYWwgMDAtMjUuY3N2IiwNCiAgZGVsaW0gPSAiOyIsDQogIGxvY2FsZSA9IGxvY2FsZShlbmNvZGluZyA9ICJsYXRpbjEiKQ0KKQ0KDQojIC0tLSBMZXIgZGFkb3MgZGFzIFJlc2VydmFzIEludGVybmFjaW9uYWlzIC0tLQ0KcmVzZXJ2YXNfcmF3IDwtIHJlYWRfZGVsaW0oDQogICJSZXNlcnZhcyBpbnRlciAwMC0yNS5jc3YiLA0KICBkZWxpbSA9ICI7IiwNCiAgbG9jYWxlID0gbG9jYWxlKGVuY29kaW5nID0gImxhdGluMSIpDQopDQoNCiMgLS0tIFByb2Nlc3NhciBCYWxhbsOnYSBDb21lcmNpYWwgLS0tDQpiYWxhbmNhX3Byb2Nlc3NlZCA8LSBiYWxhbmNhX3JhdyAlPiUNCiAgcmVuYW1lKERhdGEgPSAxLCBCYWxhbmNhID0gMikgJT4lDQogIG11dGF0ZSgNCiAgICBCYWxhbmNhID0gZ3N1YigiLCIsICIuIiwgdHJpbXdzKEJhbGFuY2EpKSwNCiAgICBCYWxhbmNhID0gYXMubnVtZXJpYyhCYWxhbmNhKSwNCiAgICBEYXRhID0gcGFzdGUwKCIwMS8iLCBEYXRhKSwNCiAgICBEYXRhID0gZG15KERhdGEsIGxvY2FsZSA9ICJwdF9CUi51dGY4IiksDQogICAgRGF0YSA9IGZsb29yX2RhdGUoRGF0YSwgIm1vbnRoIikNCiAgKSAlPiUNCiAgZmlsdGVyKCFpcy5uYShCYWxhbmNhKSkNCg0KIyAtLS0gUHJvY2Vzc2FyIFJlc2VydmFzIC0tLQ0KcmVzZXJ2YXNfcHJvY2Vzc2VkIDwtIHJlc2VydmFzX3JhdyAlPiUNCiAgcmVuYW1lKERhdGEgPSAxLCBSZXNlcnZhcyA9IDIpICU+JQ0KICBtdXRhdGUoDQogICAgUmVzZXJ2YXMgPSBnc3ViKCIsIiwgIi4iLCB0cmltd3MoUmVzZXJ2YXMpKSwNCiAgICBSZXNlcnZhcyA9IGFzLm51bWVyaWMoUmVzZXJ2YXMpLA0KICAgIERhdGEgPSBwYXN0ZTAoIjAxLyIsIERhdGEpLA0KICAgIERhdGEgPSBkbXkoRGF0YSwgbG9jYWxlID0gInB0X0JSLnV0ZjgiKSwNCiAgICBEYXRhID0gZmxvb3JfZGF0ZShEYXRhLCAibW9udGgiKQ0KICApICU+JQ0KICBmaWx0ZXIoIWlzLm5hKFJlc2VydmFzKSkNCg0KIyAtLS0gQ29udmVydGVyIHBhcmEgZm9ybWF0byBIaWdoY2hhcnRlciAtLS0NCmJhbGFuY2FfaGMgPC0gYmFsYW5jYV9wcm9jZXNzZWQgJT4lDQogIG11dGF0ZShEYXRhID0gZGF0ZXRpbWVfdG9fdGltZXN0YW1wKERhdGEpKSAlPiUNCiAgc2VsZWN0KERhdGEsIEJhbGFuY2EpDQoNCnJlc2VydmFzX2hjIDwtIHJlc2VydmFzX3Byb2Nlc3NlZCAlPiUNCiAgbXV0YXRlKERhdGEgPSBkYXRldGltZV90b190aW1lc3RhbXAoRGF0YSkpICU+JQ0KICBzZWxlY3QoRGF0YSwgUmVzZXJ2YXMpDQoNCiMgLS0tIEdyw6FmaWNvIGNvbWJpbmFkbyBIaWdoY2hhcnRlciAtLS0NCmhpZ2hjaGFydCh0eXBlID0gInN0b2NrIikgJT4lDQogIGhjX2FkZF9zZXJpZXMoDQogICAgZGF0YSA9IGxpc3RfcGFyc2UyKGJhbGFuY2FfaGMpLA0KICAgIHR5cGUgPSAibGluZSIsDQogICAgbmFtZSA9ICJCYWxhbsOnYSBDb21lcmNpYWwgKFVTJCBtaWxow7VlcykiLA0KICAgIGNvbG9yID0gIiNGRUI3MTIiLA0KICAgIHlBeGlzID0gMCwNCiAgICBsaW5lV2lkdGggPSAxLjgNCiAgKSAlPiUNCiAgaGNfYWRkX3NlcmllcygNCiAgICBkYXRhID0gbGlzdF9wYXJzZTIocmVzZXJ2YXNfaGMpLA0KICAgIHR5cGUgPSAibGluZSIsDQogICAgbmFtZSA9ICJSZXNlcnZhcyBJbnRlcm5hY2lvbmFpcyAoVVMkIG1pbGjDtWVzKSIsDQogICAgY29sb3IgPSAiIzAwMzM2NiIsDQogICAgeUF4aXMgPSAxLA0KICAgIGxpbmVXaWR0aCA9IDEuOA0KICApICU+JQ0KICBoY190aXRsZSh0ZXh0ID0gIkJhbGFuw6dhIENvbWVyY2lhbCBlIFJlc2VydmFzIEludGVybmFjaW9uYWlzICgyMDAw4oCTMjAyNSkiKSAlPiUNCiAgaGNfc3VidGl0bGUodGV4dCA9ICJGb250ZTogQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwgKFNHUyAyMjcwNCBlIDM1NDYpIikgJT4lDQogIGhjX3lBeGlzX211bHRpcGxlcygNCiAgICBsaXN0KA0KICAgICAgdGl0bGUgPSBsaXN0KHRleHQgPSAiQmFsYW7Dp2EgQ29tZXJjaWFsIChVUyQgbWlsaMO1ZXMpIiwgc3R5bGUgPSBsaXN0KGNvbG9yID0gIiNGRUI3MTIiKSksDQogICAgICBsYWJlbHMgPSBsaXN0KGZvcm1hdCA9ICJ7dmFsdWU6LC4wZn0iLCBzdHlsZSA9IGxpc3QoY29sb3IgPSAiI0ZFQjcxMiIpKSwNCiAgICAgIG9wcG9zaXRlID0gRkFMU0UsDQogICAgICBtaW4gPSAtMTIwMDAsIA0KICAgICAgbWF4ID0gNjAwMCAgDQogICAgKSwNCiAgICBsaXN0KA0KICAgICAgdGl0bGUgPSBsaXN0KHRleHQgPSAiUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMgKFVTJCBtaWxow7VlcykiLCBzdHlsZSA9IGxpc3QoY29sb3IgPSAiIzAwMzM2NiIpKSwNCiAgICAgIGxhYmVscyA9IGxpc3QoZm9ybWF0ID0gInt2YWx1ZTosLjBmfSIsIHN0eWxlID0gbGlzdChjb2xvciA9ICIjMDAzMzY2IikpLA0KICAgICAgb3Bwb3NpdGUgPSBUUlVFLA0KICAgICAgbWluID0gMCwNCiAgICAgIG1heCA9IDM2MDAwMCANCiAgICApDQogICkgJT4lDQogIGhjX3Rvb2x0aXAoDQogICAgc2hhcmVkID0gVFJVRSwNCiAgICB2YWx1ZURlY2ltYWxzID0gMSwNCiAgICB2YWx1ZVByZWZpeCA9ICJVUyQgIiwNCiAgICB2YWx1ZVN1ZmZpeCA9ICIgbWlsaMO1ZXMiDQogICkgJT4lDQogIGhjX2xlZ2VuZCgNCiAgICBlbmFibGVkID0gVFJVRSwNCiAgICBhbGlnbiA9ICJjZW50ZXIiLA0KICAgIHZlcnRpY2FsQWxpZ24gPSAiYm90dG9tIiwNCiAgICBsYXlvdXQgPSAiaG9yaXpvbnRhbCIsDQogICAgaXRlbVN0eWxlID0gbGlzdChmb250U2l6ZSA9ICIxMXB4IikNCiAgKSAlPiUNCiAgaGNfZXhwb3J0aW5nKGVuYWJsZWQgPSBUUlVFKSAlPiUNCiAgaGNfY3JlZGl0cyhlbmFibGVkID0gVFJVRSwgdGV4dCA9ICJGb250ZTogQkNCIHwgR3LDoWZpY286IEVsYWJvcmHDp8OjbyBQcsOzcHJpYSIpICU+JQ0KICBoY19jaGFydChiYWNrZ3JvdW5kQ29sb3IgPSAiI0ZGRkZGRiIpDQpgYGANCk8gY29tcG9ydGFtZW50byBkYXMgcmVzZXJ2YXMgaW50ZXJuYWNpb25haXMgYnJhc2lsZWlyYXMgYW8gbG9uZ28gZG9zIGFub3MgMjAwMCByZWZsZXRlIG8gZm9ydGFsZWNpbWVudG8gZG8gc2V0b3IgZXh0ZXJubyBlIG8gY2ljbG8gZGUgY3Jlc2NpbWVudG8gZGFzIGV4cG9ydGHDp8O1ZXMgZGUgY29tbW9kaXRpZXMuIE8gYXVtZW50byBkb3MgcHJlw6dvcyBpbnRlcm5hY2lvbmFpcyBlIG9zIHN1Y2Vzc2l2b3Mgc3VwZXLDoXZpdHMgY29tZXJjaWFpcyBwZXJtaXRpcmFtIGFvIHBhw61zIGFjdW11bGFyIHJlc2VydmFzIGRlIGZvcm1hIGNvbnNpc3RlbnRlLCByZWR1emluZG8gc3VhIHZ1bG5lcmFiaWxpZGFkZSBleHRlcm5hIGUgYW1wbGlhbmRvIGEgY2FwYWNpZGFkZSBkZSBlbmZyZW50YW1lbnRvIGEgY3Jpc2VzIGZpbmFuY2VpcmFzLiBFc3NlIG1vdmltZW50byBjb25zb2xpZG91IG8gQnJhc2lsIGVudHJlIG9zIHBhw61zZXMgZW1lcmdlbnRlcyBjb20gbWFpb3Igdm9sdW1lIGRlIHJlc2VydmFzIGludGVybmFjaW9uYWlzLCByZWZvcsOnYW5kbyBhIGNyZWRpYmlsaWRhZGUgZGEgcG9sw610aWNhIG1hY3JvZWNvbsO0bWljYSBlIGEgcGVyY2Vww6fDo28gZGUgc29saWRleiBwZXJhbnRlIGludmVzdGlkb3JlcyBlc3RyYW5nZWlyb3MuDQoNCk8gZ3LDoWZpY28gbW9zdHJhIGEgZXZvbHXDp8OjbyBkYXMgcmVzZXJ2YXMgaW50ZXJuYWNpb25haXMgZW0gY29tcGFyYcOnw6NvIGNvbSBhIGJhbGFuw6dhIGNvbWVyY2lhbCBlbnRyZSBkZXplbWJybyBkZSAyMDAwIGUgc2V0ZW1icm8gZGUgMjAyNS4gTm90YS1zZSBxdWUsIG5vcyBwcmltZWlyb3MgYW5vcyBkYSBzw6lyaWUsIG8gbsOtdmVsIGRlIHJlc2VydmFzIGVyYSBzaWduaWZpY2F0aXZhbWVudGUgaW5mZXJpb3IgYW8gc2FsZG8gY29tZXJjaWFsLCByZWZsZXRpbmRvIGEgbGltaXRhZGEgY2FwYWNpZGFkZSBkZSBhY3VtdWxhw6fDo28gZXh0ZXJuYSBuYXF1ZWxlIHBlcsOtb2RvLiBBIHBhcnRpciBkZSBtZWFkb3MgZGEgZMOpY2FkYSBkZSAyMDAwLCBvIGF2YW7Dp28gZXhwcmVzc2l2byBkYXMgZXhwb3J0YcOnw7VlcyBlIG9zIHNhbGRvcyBwb3NpdGl2b3MgZGEgYmFsYW7Dp2EgY29tZXJjaWFsIGltcHVsc2lvbmFyYW0gbyBjcmVzY2ltZW50byBkYXMgcmVzZXJ2YXMsIHF1ZSB1bHRyYXBhc3NhbSBhIGJhbGFuw6dhIGNvbWVyY2lhbCBwb3Igdm9sdGEgZG8gZmluYWwgZG8gYW5vIGRlIDIwMTAuIERlc2RlIGVudMOjbywgbyBlc3RvcXVlIGRlIHJlc2VydmFzIG1hbnTDqW0gdHJhamV0w7NyaWEgc3VwZXJpb3IsIGV2aWRlbmNpYW5kbyBvIGFtYWR1cmVjaW1lbnRvIGRhIHBvc2nDp8OjbyBleHRlcm5hIGRvIHBhw61zIGUgbyB1c28gZG9zIGdhbmhvcyBjb21lcmNpYWlzIGNvbW8gaW5zdHJ1bWVudG8gZGUgZm9ydGFsZWNpbWVudG8gZGFzIGNvbnRhcyBleHRlcm5hcy4NCg0KIA0KIyAqKlJlbGHDp8OjbyBjb20gbyBDw6JtYmlvKioNCmBgYHtyfQ0KIyAtLS0gUGFjb3RlcyAtLS0NCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KGhpZ2hjaGFydGVyKQ0KbGlicmFyeShzdHJpbmdyKQ0KDQojIC0tLSBMZXIgZGFkb3MgLS0tDQpkYWRvc19yYXcgPC0gcmVhZF9kZWxpbSgNCiAgIkNhbWJpb3hyZXNlcnZhLmNzdiIsDQogIGRlbGltID0gIjsiLA0KICBsb2NhbGUgPSBsb2NhbGUoZW5jb2RpbmcgPSAibGF0aW4xIikNCikNCg0KIyAtLS0gUHJvY2Vzc2FyIGRhZG9zIC0tLQ0KZGFkb3NfcHJvY2Vzc2VkIDwtIGRhZG9zX3JhdyAlPiUNCiAgcmVuYW1lKA0KICAgIERhdGEgPSAxLCANCiAgICBSZXNlcnZhcyA9IDIsDQogICAgQ2FtYmlvX1JlYWwgPSAzDQogICkgJT4lDQogIG11dGF0ZSgNCiAgICAjIExpbXBhciB2YWxvcmVzIG51bcOpcmljb3MNCiAgICBSZXNlcnZhcyA9IGdzdWIoIlxcLiIsICIiLCB0cmltd3MoUmVzZXJ2YXMpKSwgICMgUmVtb3ZlIHBvbnRvcyBkZSBtaWxoYXINCiAgICBSZXNlcnZhcyA9IGdzdWIoIiwiLCAiLiIsIFJlc2VydmFzKSwgICAgICAgICAgICAjIFRyb2NhIHbDrXJndWxhIHBvciBwb250bw0KICAgIFJlc2VydmFzID0gYXMubnVtZXJpYyhSZXNlcnZhcyksDQogICAgDQogICAgQ2FtYmlvX1JlYWwgPSBnc3ViKCIsIiwgIi4iLCB0cmltd3MoQ2FtYmlvX1JlYWwpKSwNCiAgICBDYW1iaW9fUmVhbCA9IGFzLm51bWVyaWMoQ2FtYmlvX1JlYWwpLA0KICAgIA0KICAgICMgUHJvY2Vzc2FyIGRhdGFzDQogICAgRGF0YSA9IHBhc3RlMCgiMDEvIiwgRGF0YSksDQogICAgRGF0YSA9IGRteShEYXRhLCBsb2NhbGUgPSAicHRfQlIudXRmOCIpLA0KICAgIERhdGEgPSBmbG9vcl9kYXRlKERhdGEsICJtb250aCIpDQogICkgJT4lDQogIGZpbHRlcighaXMubmEoUmVzZXJ2YXMpICYgIWlzLm5hKENhbWJpb19SZWFsKSkgJT4lDQogIGFycmFuZ2UoRGF0YSkgJT4lDQogICMgUmVtb3ZlciBvdXRsaWVycyBleHRyZW1vcyAob3BjaW9uYWwpDQogIGZpbHRlcigNCiAgICBSZXNlcnZhcyA+IHF1YW50aWxlKFJlc2VydmFzLCAwLjAxLCBuYS5ybSA9IFRSVUUpLA0KICAgIFJlc2VydmFzIDwgcXVhbnRpbGUoUmVzZXJ2YXMsIDAuOTksIG5hLnJtID0gVFJVRSkNCiAgKQ0KDQojIC0tLSBDYWxjdWxhciBjb3JyZWxhw6fDo28gLS0tDQpjb3JyZWxhY2FvIDwtIGNvcihkYWRvc19wcm9jZXNzZWQkUmVzZXJ2YXMsIGRhZG9zX3Byb2Nlc3NlZCRDYW1iaW9fUmVhbCwgDQogICAgICAgICAgICAgICAgICB1c2UgPSAiY29tcGxldGUub2JzIikNCg0KIyAtLS0gQ29udmVydGVyIHBhcmEgZm9ybWF0byBIaWdoY2hhcnRlciAoc8OpcmllcyB0ZW1wb3JhaXMpIC0tLQ0KcmVzZXJ2YXNfaGMgPC0gZGFkb3NfcHJvY2Vzc2VkICU+JQ0KICBtdXRhdGUoRGF0YSA9IGRhdGV0aW1lX3RvX3RpbWVzdGFtcChEYXRhKSkgJT4lDQogIHNlbGVjdChEYXRhLCBSZXNlcnZhcykNCg0KY2FtYmlvX2hjIDwtIGRhZG9zX3Byb2Nlc3NlZCAlPiUNCiAgbXV0YXRlKERhdGEgPSBkYXRldGltZV90b190aW1lc3RhbXAoRGF0YSkpICU+JQ0KICBzZWxlY3QoRGF0YSwgQ2FtYmlvX1JlYWwpDQoNCiMgLS0tIEdSw4FGSUNPOiBTw6lyaWVzIFRlbXBvcmFpcyAtLS0NCmhpZ2hjaGFydCh0eXBlID0gInN0b2NrIikgJT4lDQogIGhjX2FkZF9zZXJpZXMoDQogICAgZGF0YSA9IGxpc3RfcGFyc2UyKHJlc2VydmFzX2hjKSwNCiAgICB0eXBlID0gImxpbmUiLA0KICAgIG5hbWUgPSAiUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMgKFVTJCBtaWxow7VlcykiLA0KICAgIGNvbG9yID0gIiMwMDMzNjYiLA0KICAgIHlBeGlzID0gMCwNCiAgICBsaW5lV2lkdGggPSAyLA0KICAgIG1hcmtlciA9IGxpc3QoZW5hYmxlZCA9IEZBTFNFKQ0KICApICU+JQ0KICBoY19hZGRfc2VyaWVzKA0KICAgIGRhdGEgPSBsaXN0X3BhcnNlMihjYW1iaW9faGMpLA0KICAgIHR5cGUgPSAibGluZSIsDQogICAgbmFtZSA9ICJUYXhhIFJlYWwgZGUgQ8OibWJpbyAoSVBDQSwgw41uZGljZSkiLA0KICAgIGNvbG9yID0gIiNGRUI3MTIiLA0KICAgIHlBeGlzID0gMSwNCiAgICBsaW5lV2lkdGggPSAyLA0KICAgIG1hcmtlciA9IGxpc3QoZW5hYmxlZCA9IEZBTFNFKQ0KICApICU+JQ0KICBoY190aXRsZSgNCiAgICB0ZXh0ID0gIlJlc2VydmFzIEludGVybmFjaW9uYWlzIGUgVGF4YSBSZWFsIGRlIEPDom1iaW8gKDIwMjDigJMyMDI1KSINCiAgKSAlPiUNCiAgaGNfc3VidGl0bGUoDQogICAgdGV4dCA9ICJGb250ZTogQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwgKFNHUyAzNTQ2IGUgMTE3NTMpIg0KICApICU+JQ0KICBoY195QXhpc19tdWx0aXBsZXMoDQogICAgbGlzdCgNCiAgICAgIHRpdGxlID0gbGlzdCgNCiAgICAgICAgdGV4dCA9ICJSZXNlcnZhcyAoVVMkIG1pbGjDtWVzKSIsIA0KICAgICAgICBzdHlsZSA9IGxpc3QoY29sb3IgPSAiIzAwMzM2NiIpDQogICAgICApLA0KICAgICAgbGFiZWxzID0gbGlzdCgNCiAgICAgICAgZm9ybWF0ID0gInt2YWx1ZTosLjBmfSIsIA0KICAgICAgICBzdHlsZSA9IGxpc3QoY29sb3IgPSAiIzAwMzM2NiIpDQogICAgICApLA0KICAgICAgb3Bwb3NpdGUgPSBGQUxTRQ0KICAgICksDQogICAgbGlzdCgNCiAgICAgIHRpdGxlID0gbGlzdCgNCiAgICAgICAgdGV4dCA9ICJDw6JtYmlvIFJlYWwgKMONbmRpY2UpIiwgDQogICAgICAgIHN0eWxlID0gbGlzdChjb2xvciA9ICIjRkVCNzEyIikNCiAgICAgICksDQogICAgICBsYWJlbHMgPSBsaXN0KA0KICAgICAgICBmb3JtYXQgPSAie3ZhbHVlOi4xZn0iLCANCiAgICAgICAgc3R5bGUgPSBsaXN0KGNvbG9yID0gIiNGRUI3MTIiKQ0KICAgICAgKSwNCiAgICAgIG9wcG9zaXRlID0gVFJVRQ0KICAgICkNCiAgKSAlPiUNCiAgaGNfcGxvdE9wdGlvbnMoDQogICAgc2VyaWVzID0gbGlzdCgNCiAgICAgIGNvbm5lY3ROdWxscyA9IEZBTFNFLA0KICAgICAgZ2FwU2l6ZSA9IDUsDQogICAgICB0dXJib1RocmVzaG9sZCA9IDANCiAgICApDQogICkgJT4lDQogIGhjX3Rvb2x0aXAoDQogICAgc2hhcmVkID0gVFJVRSwNCiAgICB2YWx1ZURlY2ltYWxzID0gMg0KICApICU+JQ0KICBoY19sZWdlbmQoDQogICAgZW5hYmxlZCA9IFRSVUUsDQogICAgYWxpZ24gPSAiY2VudGVyIiwNCiAgICB2ZXJ0aWNhbEFsaWduID0gImJvdHRvbSIsDQogICAgbGF5b3V0ID0gImhvcml6b250YWwiLA0KICAgIGl0ZW1TdHlsZSA9IGxpc3QoZm9udFNpemUgPSAiMTFweCIpDQogICkgJT4lDQogIGhjX2V4cG9ydGluZyhlbmFibGVkID0gVFJVRSkgJT4lDQogIGhjX2NyZWRpdHMoDQogICAgZW5hYmxlZCA9IFRSVUUsIA0KICAgIHRleHQgPSAiRm9udGU6IEJDQiB8IEdyw6FmaWNvOiBFbGFib3Jhw6fDo28gUHLDs3ByaWEiDQogICkgJT4lDQogIGhjX2NoYXJ0KGJhY2tncm91bmRDb2xvciA9ICIjRkZGRkZGIikNCmBgYA0KQXMgcmVzZXJ2YXMgaW50ZXJuYWNpb25haXMgZXhlcmNlbSBwYXBlbCBmdW5kYW1lbnRhbCBuYSBjb250ZW7Dp8OjbyBkYSB2b2xhdGlsaWRhZGUgY2FtYmlhbCwgZnVuY2lvbmFuZG8gY29tbyB1bSBtZWNhbmlzbW8gZGUgcHJvdGXDp8OjbyBlbSBtb21lbnRvcyBkZSBmdWdhIGRlIGNhcGl0YWlzIG91IGRlc3ZhbG9yaXphw6fDo28gZG8gcmVhbC4gQW8gcGVybWl0aXIgcXVlIG8gQmFuY28gQ2VudHJhbCBhdHVlIG5vIG1lcmNhZG8gZGUgY8OibWJpbyBwb3IgbWVpbyBkYSB2ZW5kYSBkZSBkw7NsYXJlcyBvdSBkZSBpbnN0cnVtZW50b3MgZGVyaXZhdGl2b3MsIGFzIHJlc2VydmFzIGFqdWRhbSBhIHN1YXZpemFyIG1vdmltZW50b3MgYnJ1c2NvcyBkYSB0YXhhIGRlIGPDom1iaW8gZSBhIHByZXNlcnZhciBhIGVzdGFiaWxpZGFkZSBmaW5hbmNlaXJhLiBFc3NhIGZ1bsOnw6NvIMOpIGVzcGVjaWFsbWVudGUgcmVsZXZhbnRlIGVtIGVjb25vbWlhcyBlbWVyZ2VudGVzLCBuYXMgcXVhaXMgY2hvcXVlcyBleHRlcm5vcyAoY29tbyBtdWRhbsOnYXMgbmFzIGNvbmRpw6fDtWVzIGRlIGxpcXVpZGV6IGdsb2JhbCBvdSB2YXJpYcOnw7VlcyBubyBwcmXDp28gZGFzIGNvbW1vZGl0aWVzKSBjb3N0dW1hbSBnZXJhciBwcmVzc8O1ZXMgaW1lZGlhdGFzIHNvYnJlIGEgbW9lZGEgZG9tw6lzdGljYS4NCg0KTyBncsOhZmljbyAscXVlIHJlbGFjaW9uYSBhcyByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcyDDoCB0YXhhIHJlYWwgZGUgY8OibWJpbyBlbnRyZSAyMDIwIGUgMjAyNSwgZXZpZGVuY2lhIGVzc2EgZGluw6JtaWNhLiBPYnNlcnZhLXNlIHVtYSB0cmFqZXTDs3JpYSBtYXJjYWRhIHBvciBvc2NpbGHDp8O1ZXMsIGNvbSBwZXLDrW9kb3MgZW0gcXVlIG8gY8OibWJpbyBzZSB2YWxvcml6YSBlIG91dHJvcyBlbSBxdWUgbyByZWFsIHNvZnJlIGRlc3ZhbG9yaXphw6fDo28gYWNlbnR1YWRhLCBlbnF1YW50byBhcyByZXNlcnZhcyBhcHJlc2VudGFtIGNvbXBvcnRhbWVudG8gbWFpcyBlc3TDoXZlbC4gRW0gZGV6ZW1icm8gZGUgMjAyMSwgcG9yIGV4ZW1wbG8sIG9zIGRvaXMgaW5kaWNhZG9yZXMgc2UgYXByb3hpbWFtLCBtYXMgYW8gbG9uZ28gZGEgc8OpcmllIGjDoSBtb21lbnRvcyBkZSBhZmFzdGFtZW50byBzaWduaWZpY2F0aXZvIOKAlCByZWZsZXRpbmRvIHRhbnRvIGEgdm9sYXRpbGlkYWRlIGRvIGPDom1iaW8gcXVhbnRvIG8gcGFwZWwgYW1vcnRlY2Vkb3IgZGFzIHJlc2VydmFzLiBObyBnZXJhbCwgbm90YS1zZSBxdWUsIG1lc21vIGNvbSB2YXJpYcOnw7VlcyBwb250dWFpcywgbyBuw612ZWwgZWxldmFkbyBkZSByZXNlcnZhcyBjb250cmlidWkgcGFyYSBjb250ZXIgbW92aW1lbnRvcyBtYWlzIGV4dHJlbW9zIGRhIHRheGEgZGUgY8OibWJpbywgcmVmb3LDp2FuZG8gYSBjYXBhY2lkYWRlIGRlIGRlZmVzYSBkYSBlY29ub21pYSBmcmVudGUgYSBjaG9xdWVzIGV4dGVybm9zLg0KDQoNCg0KIyAqKkZ1bsOnw6NvIGUgSW1wb3J0w6JuY2lhIEdsb2JhbCoqDQpgYGB7cn0NCiMgLS0tIFBhY290ZXMgLS0tDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShoaWdoY2hhcnRlcikNCg0KIyAtLS0gRGFkb3MgZGFzIFJlc2VydmFzIEludGVybmFjaW9uYWlzIChUcmFkaW5nIEVjb25vbWljcyAtIFNldC8yMDI1KSAtLS0NCmRhZG9zX3Jlc2VydmFzIDwtIGRhdGEuZnJhbWUoDQogIFBhaXMgPSBjKCJDaGluYSIsICJKYXDDo28iLCAiU3XDrcOnYSIsICLDjW5kaWEiLCAiUsO6c3NpYSIsICJBcsOhYmlhIFNhdWRpdGEiLA0KICAgICAgICAgICAiQ2luZ2FwdXJhIiwgIkNvcmVpYSBkbyBTdWwiLCAiQWxlbWFuaGEiLCAiQnJhc2lsIiwgIkhvbmcgS29uZyIsDQogICAgICAgICAgICJNw6l4aWNvIiwgIlRhaWzDom5kaWEiLCAiUmVpbm8gVW5pZG8iLCAiRnJhbsOnYSIsICJJdMOhbGlhIiwNCiAgICAgICAgICAgIkNhbmFkw6EiLCAiSW5kb27DqXNpYSIsICJFc3BhbmhhIiwgIkF1c3Ryw6FsaWEiLCAiVHVycXVpYSIsDQogICAgICAgICAgICJIb2xhbmRhIiwgIsOBZnJpY2EgZG8gU3VsIiwgIkFyZ2VudGluYSIsICJFc3RhZG9zIFVuaWRvcyIpLA0KICBSZXNlcnZhcyA9IGMoMzMzNjAwMCwgMTM0MTMwMCwgNzI2NzM5LCA2OTk2MDAsIDcxMzMwMSwgMTcxMjQ0NSwNCiAgICAgICAgICAgICAgIDUwODUzNCwgNDIyMDIwLCA0MzU2MDIsIDM1NTQyMCwgMzUyOTg4LCAyNDcyODksDQogICAgICAgICAgICAgICAyNDMwNjAsIDIxMTIxMCwgMzMwLCAzMzAsIDEyNjU2MCwgMTQ1NzAwLA0KICAgICAgICAgICAgICAgMTAzOTAyMSwgMTA3MTMyLCA4NzM0MCwgOTAwMzIsIDY5NzM5LCAzMjMyNywgMzYxNjEpLA0KICBzdHJpbmdzQXNGYWN0b3JzID0gRkFMU0UNCikNCg0KIyAtLS0gT3JkZW5hciBwb3IgcmVzZXJ2YXMgKGRlY3Jlc2NlbnRlKSBlIHBlZ2FyIHRvcCAxNSAtLS0NCmRhZG9zX3RvcDE1IDwtIGRhZG9zX3Jlc2VydmFzICU+JQ0KICBhcnJhbmdlKGRlc2MoUmVzZXJ2YXMpKSAlPiUNCiAgaGVhZCgxNSkgJT4lDQogIG11dGF0ZSgNCiAgICBQYWlzID0gZmFjdG9yKFBhaXMsIGxldmVscyA9IHJldihQYWlzKSksICAjIEludmVydGVyIHBhcmEgZ3LDoWZpY28gaG9yaXpvbnRhbA0KICAgIENvbG9yID0gaWZlbHNlKFBhaXMgPT0gIkJyYXNpbCIsICIjRkVCNzEyIiwgIiMwMDMzNjYiKSAgIyBEZXN0YWNhciBCcmFzaWwNCiAgKQ0KaGlnaGNoYXJ0KCkgJT4lDQogIGhjX2NoYXJ0KHR5cGUgPSAiYmFyIikgJT4lDQogIGhjX3RpdGxlKA0KICAgIHRleHQgPSAiVG9wIDE1IFBhw61zZXMgY29tIE1haW9yZXMgUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMgKFVTJCBtaWxow7VlcykgKDIwMjUpIiwNCiAgICBzdHlsZSA9IGxpc3QoZm9udFdlaWdodCA9ICJib2xkIikNCiAgKSAlPiUNCiAgaGNfc3VidGl0bGUoDQogICAgdGV4dCA9ICJGb250ZTogVHJhZGluZyBFY29ub21pY3MgKFNldGVtYnJvIDIwMjUpIg0KICApICU+JQ0KICBoY194QXhpcygNCiAgICBjYXRlZ29yaWVzID0gYXMuY2hhcmFjdGVyKGRhZG9zX3RvcDE1JFBhaXMpLA0KICAgIHRpdGxlID0gbGlzdCh0ZXh0ID0gIiIpDQogICkgJT4lDQogIGhjX3lBeGlzKA0KICAgIHRpdGxlID0gbGlzdCh0ZXh0ID0gIlJlc2VydmFzIEludGVybmFjaW9uYWlzIChVUyQgbWlsaMO1ZXMpIiksDQogICAgbGFiZWxzID0gbGlzdChmb3JtYXQgPSAie3ZhbHVlOiwuMGZ9IikNCiAgKSAlPiUNCiAgaGNfYWRkX3NlcmllcygNCiAgICBkYXRhID0gbGlzdF9wYXJzZSgNCiAgICAgIGRhdGEuZnJhbWUoDQogICAgICAgIHkgPSBkYWRvc190b3AxNSRSZXNlcnZhcywNCiAgICAgICAgY29sb3IgPSBkYWRvc190b3AxNSRDb2xvcg0KICAgICAgKQ0KICAgICksDQogICAgbmFtZSA9ICJSZXNlcnZhcyIsDQogICAgY29sb3JCeVBvaW50ID0gVFJVRSwNCiAgICBkYXRhTGFiZWxzID0gbGlzdCgNCiAgICAgIGVuYWJsZWQgPSBUUlVFLA0KICAgICAgZm9ybWF0ID0gIntwb2ludC55OiwuMGZ9IiwNCiAgICAgIHN0eWxlID0gbGlzdChmb250U2l6ZSA9ICIxMHB4IiwgZm9udFdlaWdodCA9ICJub3JtYWwiKQ0KICAgICkNCiAgKSAlPiUNCiAgaGNfdG9vbHRpcCgNCiAgICB2YWx1ZURlY2ltYWxzID0gMCwNCiAgICB2YWx1ZVByZWZpeCA9ICJVUyQgIiwNCiAgICB2YWx1ZVN1ZmZpeCA9ICIgbWlsaMO1ZXMiDQogICkgJT4lDQogIGhjX2xlZ2VuZChlbmFibGVkID0gRkFMU0UpICU+JQ0KICBoY19leHBvcnRpbmcoZW5hYmxlZCA9IFRSVUUpICU+JQ0KICBoY19jcmVkaXRzKA0KICAgIGVuYWJsZWQgPSBUUlVFLA0KICAgIHRleHQgPSAiRm9udGU6IFRyYWRpbmcgRWNvbm9taWNzIHwgR3LDoWZpY286IEVsYWJvcmHDp8OjbyBQcsOzcHJpYSINCiAgKSAlPiUNCiAgaGNfY2hhcnQoYmFja2dyb3VuZENvbG9yID0gIiNGRkZGRkYiKQ0KDQoNCmBgYA0KQXMgcmVzZXJ2YXMgaW50ZXJuYWNpb25haXMgdGFtYsOpbSBjdW1wcmVtIHVtYSBmdW7Dp8OjbyBlc3RyYXTDqWdpY2EgYW8gZm9ydGFsZWNlciBhIGNvbmZpYW7Dp2EgaW50ZXJuYWNpb25hbCBlIHJlZHV6aXIgbyByaXNjby1wYcOtcy4gVW0gdm9sdW1lIGVsZXZhZG8gZGUgcmVzZXJ2YXMgdHJhbnNtaXRlIHNlZ3VyYW7Dp2EgYSBpbnZlc3RpZG9yZXMgZSBjcmVkb3JlcyBleHRlcm5vcywgcG9pcyBpbmRpY2EgcXVlIG8gcGHDrXMgdGVtIGNhcGFjaWRhZGUgZGUgaG9ucmFyIHNldXMgY29tcHJvbWlzc29zIGZpbmFuY2Vpcm9zIG1lc21vIGVtIGNlbsOhcmlvcyBkZSBlc3RyZXNzZSBnbG9iYWwuIEFsw6ltIGRpc3NvLCBhcyByZXNlcnZhcyBmdW5jaW9uYW0gY29tbyB1bSBjb2xjaMOjbyBkZSBsaXF1aWRleiBxdWUgcGVybWl0ZSBhbyBnb3Zlcm5vIHJlYWdpciByYXBpZGFtZW50ZSBlbSBjcmlzZXMgZXh0ZXJuYXMsIGV2aXRhbmRvIGVzY2Fzc2V6IGRlIGRpdmlzYXMsIGRlc3ZhbG9yaXphw6fDtWVzIGFicnVwdGFzIGRhIG1vZWRhIGUgaW5zdGFiaWxpZGFkZSBmaW5hbmNlaXJhLg0KDQpPIGdyw6FmaWNvIGEgc2VndWlyIGFwcmVzZW50YSBvIHJhbmtpbmcgZG9zIDE1IHBhw61zZXMgY29tIG1haW9yZXMgdm9sdW1lcyBkZSByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcyBlbSAyMDI1IChhdMOpIHNldGVtYnJvKS4gT2JzZXJ2YS1zZSBxdWUgYSBDaGluYSBsaWRlcmEgY29tIGFtcGxhIG1hcmdlbSwgcmVmbGV0aW5kbyBkw6ljYWRhcyBkZSBzdXBlcsOhdml0cyBjb21lcmNpYWlzIGUgZm9ydGUgY29udHJvbGUgY2FtYmlhbC4gRW0gc2VndWlkYSBhcGFyZWNlbSBBcsOhYmlhIFNhdWRpdGEsIEphcMOjbywgRXNwYW5oYSwgU3XDrcOnYSBlIFLDunNzaWEsIGVjb25vbWlhcyBxdWUgYWN1bXVsYW0gcmVzZXJ2YXMgZWxldmFkYXMgcG9yIGRpZmVyZW50ZXMgbW90aXZvcywgZGVzZGUgYSBleHBvcnRhw6fDo28gZGUgcGV0csOzbGVvLCBubyBjYXNvIHNhdWRpdGEsIGF0w6kgYSBidXNjYSBwb3IgZXN0YWJpbGlkYWRlIGZpbmFuY2VpcmEgZSBwcm90ZcOnw6NvIGNvbnRyYSBjaG9xdWVzIGV4dGVybm9zLCBjb21vIG5vIGNhc28gamFwb27DqnMgZSBzdcOtw6dvLg0KDQpPIEJyYXNpbCB0YW1iw6ltIGZpZ3VyYSBlbnRyZSBhcyBwcmluY2lwYWlzIGVjb25vbWlhcyBlbWVyZ2VudGVzIGRvIHJhbmtpbmcsIHJlZm9yw6dhbmRvIHN1YSBwb3Npw6fDo28gZGUgcmVsYXRpdmEgc29saWRleiBleHRlcm5hLiBFc3NlIHBhdGFtYXIgZGUgcmVzZXJ2YXMgb2ZlcmVjZSBpbXBvcnRhbnRlIHN1c3RlbnRhw6fDo28gw6AgY3JlZGliaWxpZGFkZSBkbyBwYcOtcywgY29udHJpYnVpbmRvIHBhcmEgbWFudGVyIG8gcmlzY28gc29iZXJhbm8gZW0gbsOtdmVpcyBjb250cm9sYWRvcyBlIGdhcmFudGlyIGVzdGFiaWxpZGFkZSBtYWNyb2Vjb27DtG1pY2EgbWVzbW8gZW0gcGVyw61vZG9zIGRlIGluY2VydGV6YSBpbnRlcm5hY2lvbmFsLg0KDQoNCg0KIyAqKkN1c3RvcyBkZSBNYW51dGVuw6fDo28gZSBJbXBhY3RvcyBuYSBQb2zDrXRpY2EgRWNvbsO0bWljYSoqDQpgYGB7cn0NCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShsdWJyaWRhdGUpDQpsaWJyYXJ5KGhpZ2hjaGFydGVyKQ0KbGlicmFyeShzdHJpbmdyKQ0KDQojIC0tLSBMZXIgZGFkb3MgZGFzIHJlc2VydmFzIGJyYXNpbGVpcmFzIC0tLQ0KZGFkb3NfcmF3IDwtIHJlYWRfZGVsaW0oDQogICJDdXN0b2Zpc2NhbC5jc3YiLA0KICBkZWxpbSA9ICI7IiwNCiAgbG9jYWxlID0gbG9jYWxlKGVuY29kaW5nID0gImxhdGluMSIsIGRlY2ltYWxfbWFyayA9ICIuIikNCikNCg0KIyAtLS0gUHJvY2Vzc2FyIGRhZG9zIGJyYXNpbGVpcm9zIC0tLQ0KZGFkb3NfcHJvY2Vzc2VkIDwtIGRhZG9zX3JhdyAlPiUNCiAgcmVuYW1lKA0KICAgIERhdGEgPSAxLA0KICAgIFJlc2VydmFzID0gMiwNCiAgICBDYW1iaW8gPSAzLA0KICAgIFNlbGljID0gNA0KICApICU+JQ0KICBtdXRhdGUoDQogICAgIyBMaW1wYXIgdmFsb3JlcyBudW3DqXJpY29zIGRhcyByZXNlcnZhcw0KICAgIFJlc2VydmFzID0gZ3N1YigiXFwuIiwgIiIsIHRyaW13cyhSZXNlcnZhcykpLA0KICAgIFJlc2VydmFzID0gZ3N1YigiLCIsICIuIiwgUmVzZXJ2YXMpLA0KICAgIFJlc2VydmFzID0gYXMubnVtZXJpYyhSZXNlcnZhcyksDQogICAgDQogICAgIyBMaW1wYXIgY8OibWJpbyAodHJvY2FyIHbDrXJndWxhIHBvciBwb250bykNCiAgICBDYW1iaW8gPSBnc3ViKCIsIiwgIi4iLCB0cmltd3MoQ2FtYmlvKSksDQogICAgQ2FtYmlvID0gYXMubnVtZXJpYyhDYW1iaW8pLA0KICAgIA0KICAgICMgTGltcGFyIFNlbGljDQogICAgU2VsaWMgPSBnc3ViKCIsIiwgIi4iLCB0cmltd3MoU2VsaWMpKSwNCiAgICBTZWxpYyA9IGFzLm51bWVyaWMoU2VsaWMpLA0KICAgIA0KICAgICMgUHJvY2Vzc2FyIGRhdGFzDQogICAgRGF0YSA9IHBhc3RlMCgiMDEvIiwgRGF0YSksDQogICAgRGF0YSA9IGRteShEYXRhLCBsb2NhbGUgPSAicHRfQlIudXRmOCIpLA0KICAgIERhdGEgPSBmbG9vcl9kYXRlKERhdGEsICJtb250aCIpDQogICkgJT4lDQogIGZpbHRlcighaXMubmEoUmVzZXJ2YXMpICYgIWlzLm5hKENhbWJpbykgJiAhaXMubmEoU2VsaWMpKQ0KDQojIC0tLSBDcmlhciB0YWJlbGEgY29tIGRhZG9zIEZFREZVTkRTICh0YXhhIGRlIGp1cm9zIEVVQSkgLS0tDQojIC0tLSBDcmlhciB0YWJlbGEgY29tIGRhZG9zIEdTMTAgKHJlbmRpbWVudG8gZGUgVHJlYXN1cnkgMTBZLCBzdWJzdGl0dWluZG8gRkVERlVORFMpIC0tLQ0KZmVkZnVuZHNfZGF0YSA8LSBkYXRhLmZyYW1lKA0KICBEYXRhID0gYXMuRGF0ZShjKA0KICAgICIyMDEwLTA0LTAxIiwgIjIwMTAtMDUtMDEiLCAiMjAxMC0wNi0wMSIsICIyMDEwLTA3LTAxIiwgIjIwMTAtMDgtMDEiLCAiMjAxMC0wOS0wMSIsDQogICAgIjIwMTAtMTAtMDEiLCAiMjAxMC0xMS0wMSIsICIyMDEwLTEyLTAxIiwgIjIwMTEtMDEtMDEiLCAiMjAxMS0wMi0wMSIsICIyMDExLTAzLTAxIiwNCiAgICAiMjAxMS0wNC0wMSIsICIyMDExLTA1LTAxIiwgIjIwMTEtMDYtMDEiLCAiMjAxMS0wNy0wMSIsICIyMDExLTA4LTAxIiwgIjIwMTEtMDktMDEiLA0KICAgICIyMDExLTEwLTAxIiwgIjIwMTEtMTEtMDEiLCAiMjAxMS0xMi0wMSIsICIyMDEyLTAxLTAxIiwgIjIwMTItMDItMDEiLCAiMjAxMi0wMy0wMSIsDQogICAgIjIwMTItMDQtMDEiLCAiMjAxMi0wNS0wMSIsICIyMDEyLTA2LTAxIiwgIjIwMTItMDctMDEiLCAiMjAxMi0wOC0wMSIsICIyMDEyLTA5LTAxIiwNCiAgICAiMjAxMi0xMC0wMSIsICIyMDEyLTExLTAxIiwgIjIwMTItMTItMDEiLCAiMjAxMy0wMS0wMSIsICIyMDEzLTAyLTAxIiwgIjIwMTMtMDMtMDEiLA0KICAgICIyMDEzLTA0LTAxIiwgIjIwMTMtMDUtMDEiLCAiMjAxMy0wNi0wMSIsICIyMDEzLTA3LTAxIiwgIjIwMTMtMDgtMDEiLCAiMjAxMy0wOS0wMSIsDQogICAgIjIwMTMtMTAtMDEiLCAiMjAxMy0xMS0wMSIsICIyMDEzLTEyLTAxIiwgIjIwMTQtMDEtMDEiLCAiMjAxNC0wMi0wMSIsICIyMDE0LTAzLTAxIiwNCiAgICAiMjAxNC0wNC0wMSIsICIyMDE0LTA1LTAxIiwgIjIwMTQtMDYtMDEiLCAiMjAxNC0wNy0wMSIsICIyMDE0LTA4LTAxIiwgIjIwMTQtMDktMDEiLA0KICAgICIyMDE0LTEwLTAxIiwgIjIwMTQtMTEtMDEiLCAiMjAxNC0xMi0wMSIsICIyMDE1LTAxLTAxIiwgIjIwMTUtMDItMDEiLCAiMjAxNS0wMy0wMSIsDQogICAgIjIwMTUtMDQtMDEiLCAiMjAxNS0wNS0wMSIsICIyMDE1LTA2LTAxIiwgIjIwMTUtMDctMDEiLCAiMjAxNS0wOC0wMSIsICIyMDE1LTA5LTAxIiwNCiAgICAiMjAxNS0xMC0wMSIsICIyMDE1LTExLTAxIiwgIjIwMTUtMTItMDEiLCAiMjAxNi0wMS0wMSIsICIyMDE2LTAyLTAxIiwgIjIwMTYtMDMtMDEiLA0KICAgICIyMDE2LTA0LTAxIiwgIjIwMTYtMDUtMDEiLCAiMjAxNi0wNi0wMSIsICIyMDE2LTA3LTAxIiwgIjIwMTYtMDgtMDEiLCAiMjAxNi0wOS0wMSIsDQogICAgIjIwMTYtMTAtMDEiLCAiMjAxNi0xMS0wMSIsICIyMDE2LTEyLTAxIiwgIjIwMTctMDEtMDEiLCAiMjAxNy0wMi0wMSIsICIyMDE3LTAzLTAxIiwNCiAgICAiMjAxNy0wNC0wMSIsICIyMDE3LTA1LTAxIiwgIjIwMTctMDYtMDEiLCAiMjAxNy0wNy0wMSIsICIyMDE3LTA4LTAxIiwgIjIwMTctMDktMDEiLA0KICAgICIyMDE3LTEwLTAxIiwgIjIwMTctMTEtMDEiLCAiMjAxNy0xMi0wMSIsICIyMDE4LTAxLTAxIiwgIjIwMTgtMDItMDEiLCAiMjAxOC0wMy0wMSIsDQogICAgIjIwMTgtMDQtMDEiLCAiMjAxOC0wNS0wMSIsICIyMDE4LTA2LTAxIiwgIjIwMTgtMDctMDEiLCAiMjAxOC0wOC0wMSIsICIyMDE4LTA5LTAxIiwNCiAgICAiMjAxOC0xMC0wMSIsICIyMDE4LTExLTAxIiwgIjIwMTgtMTItMDEiLCAiMjAxOS0wMS0wMSIsICIyMDE5LTAyLTAxIiwgIjIwMTktMDMtMDEiLA0KICAgICIyMDE5LTA0LTAxIiwgIjIwMTktMDUtMDEiLCAiMjAxOS0wNi0wMSIsICIyMDE5LTA3LTAxIiwgIjIwMTktMDgtMDEiLCAiMjAxOS0wOS0wMSIsDQogICAgIjIwMTktMTAtMDEiLCAiMjAxOS0xMS0wMSIsICIyMDE5LTEyLTAxIiwgIjIwMjAtMDEtMDEiLCAiMjAyMC0wMi0wMSIsICIyMDIwLTAzLTAxIiwNCiAgICAiMjAyMC0wNC0wMSIsICIyMDIwLTA1LTAxIiwgIjIwMjAtMDYtMDEiLCAiMjAyMC0wNy0wMSIsICIyMDIwLTA4LTAxIiwgIjIwMjAtMDktMDEiLA0KICAgICIyMDIwLTEwLTAxIiwgIjIwMjAtMTEtMDEiLCAiMjAyMC0xMi0wMSIsICIyMDIxLTAxLTAxIiwgIjIwMjEtMDItMDEiLCAiMjAyMS0wMy0wMSIsDQogICAgIjIwMjEtMDQtMDEiLCAiMjAyMS0wNS0wMSIsICIyMDIxLTA2LTAxIiwgIjIwMjEtMDctMDEiLCAiMjAyMS0wOC0wMSIsICIyMDIxLTA5LTAxIiwNCiAgICAiMjAyMS0xMC0wMSIsICIyMDIxLTExLTAxIiwgIjIwMjEtMTItMDEiLCAiMjAyMi0wMS0wMSIsICIyMDIyLTAyLTAxIiwgIjIwMjItMDMtMDEiLA0KICAgICIyMDIyLTA0LTAxIiwgIjIwMjItMDUtMDEiLCAiMjAyMi0wNi0wMSIsICIyMDIyLTA3LTAxIiwgIjIwMjItMDgtMDEiLCAiMjAyMi0wOS0wMSIsDQogICAgIjIwMjItMTAtMDEiLCAiMjAyMi0xMS0wMSIsICIyMDIyLTEyLTAxIiwgIjIwMjMtMDEtMDEiLCAiMjAyMy0wMi0wMSIsICIyMDIzLTAzLTAxIiwNCiAgICAiMjAyMy0wNC0wMSIsICIyMDIzLTA1LTAxIiwgIjIwMjMtMDYtMDEiLCAiMjAyMy0wNy0wMSIsICIyMDIzLTA4LTAxIiwgIjIwMjMtMDktMDEiLA0KICAgICIyMDIzLTEwLTAxIiwgIjIwMjMtMTEtMDEiLCAiMjAyMy0xMi0wMSIsICIyMDI0LTAxLTAxIiwgIjIwMjQtMDItMDEiLCAiMjAyNC0wMy0wMSIsDQogICAgIjIwMjQtMDQtMDEiLCAiMjAyNC0wNS0wMSIsICIyMDI0LTA2LTAxIiwgIjIwMjQtMDctMDEiLCAiMjAyNC0wOC0wMSIsICIyMDI0LTA5LTAxIiwNCiAgICAiMjAyNC0xMC0wMSIsICIyMDI0LTExLTAxIiwgIjIwMjQtMTItMDEiLCAiMjAyNS0wMS0wMSIsICIyMDI1LTAyLTAxIiwgIjIwMjUtMDMtMDEiLA0KICAgICIyMDI1LTA0LTAxIiwgIjIwMjUtMDUtMDEiLCAiMjAyNS0wNi0wMSIsICIyMDI1LTA3LTAxIiwgIjIwMjUtMDgtMDEiLCAiMjAyNS0wOS0wMSINCiAgKSksDQogIEZFREZVTkRTID0gYygNCiAgICAzLjg1LCAzLjQyLCAzLjIsIDMuMDEsIDIuNywgMi42NSwNCiAgICAyLjU0LCAyLjc2LCAzLjI5LCAzLjM5LCAzLjU4LCAzLjQxLA0KICAgIDMuNDYsIDMuMTcsIDMuMCwgMy4wLCAyLjMsIDEuOTgsDQogICAgMi4xNSwgMi4wMSwgMS45OCwgMS45NywgMS45NywgMi4xNywNCiAgICAyLjA1LCAxLjgsIDEuNjIsIDEuNTMsIDEuNjgsIDEuNzIsDQogICAgMS43NSwgMS42NSwgMS43MiwgMS45MSwgMS45OCwgMS45NiwNCiAgICAxLjc2LCAxLjkzLCAyLjMsIDIuNTgsIDIuNzQsIDIuODEsDQogICAgMi42MiwgMi43MiwgMi45LCAyLjg2LCAyLjcxLCAyLjcyLA0KICAgIDIuNzEsIDIuNTYsIDIuNiwgMi41NCwgMi40MiwgMi41MywNCiAgICAyLjMsIDIuMzMsIDIuMjEsIDEuODgsIDEuOTgsIDIuMDQsDQogICAgMS45NCwgMi4yLCAyLjM2LCAyLjMyLCAyLjE3LCAyLjE3LA0KICAgIDIuMDcsIDIuMjYsIDIuMjQsIDIuMDksIDEuNzgsIDEuODksDQogICAgMS44MSwgMS44MSwgMS42NCwgMS41LCAxLjU2LCAxLjYzLA0KICAgIDEuNzYsIDIuMTQsIDIuNDksIDIuNDMsIDIuNDIsIDIuNDgsDQogICAgMi4zLCAyLjMsIDIuMTksIDIuMzIsIDIuMjEsIDIuMiwNCiAgICAyLjM2LCAyLjM1LCAyLjQsIDIuNTgsIDIuODYsIDIuODQsDQogICAgMi44NywgMi45OCwgMi45MSwgMi44OSwgMi44OSwgMy4wLA0KICAgIDMuMTUsIDMuMTIsIDIuODMsIDIuNzEsIDIuNjgsIDIuNTcsDQogICAgMi41MywgMi40LCAyLjA3LCAyLjA2LCAxLjYzLCAxLjcsDQogICAgMS43MSwgMS44MSwgMS44NiwgMS43NiwgMS41LCAwLjg3LA0KICAgIDAuNjYsIDAuNjcsIDAuNzMsIDAuNjIsIDAuNjUsIDAuNjgsDQogICAgMC43OSwgMC44NywgMC45MywgMS4wOCwgMS4yNiwgMS42MSwNCiAgICAxLjY0LCAxLjYyLCAxLjUyLCAxLjMyLCAxLjI4LCAxLjM3LA0KICAgIDEuNTgsIDEuNTYsIDEuNDcsIDEuNzYsIDEuOTMsIDIuMTMsDQogICAgMi43NSwgMi45LCAzLjE0LCAyLjksIDIuOSwgMy41MiwNCiAgICAzLjk4LCAzLjg5LCAzLjYyLCAzLjUzLCAzLjc1LCAzLjY2LA0KICAgIDMuNDYsIDMuNTcsIDMuNzUsIDMuOSwgNC4xNywgNC4zOCwNCiAgICA0LjgsIDQuNSwgNC4wMiwgNC4wNiwgNC4yMSwgNC4yMSwNCiAgICA0LjU0LCA0LjQ4LCA0LjMxLCA0LjI1LCAzLjg3LCAzLjcyLA0KICAgIDQuMSwgNC4zNiwgNC4zOSwgNC42MywgNC40NSwgNC4yOCwNCiAgICA0LjI4LCA0LjQyLCA0LjM4LCA0LjM5LCA0LjI2LCA0LjEyDQogICkNCikNCiMgLS0tIEp1bnRhciBkYWRvcyBicmFzaWxlaXJvcyBjb20gRkVERlVORFMgLS0tDQpkYWRvc19jb21wbGV0b3MgPC0gZGFkb3NfcHJvY2Vzc2VkICU+JQ0KICBsZWZ0X2pvaW4oZmVkZnVuZHNfZGF0YSwgYnkgPSAiRGF0YSIpICU+JQ0KICBtdXRhdGUoDQogICAgIyBDYWxjdWxhciBkaWZlcmVuY2lhbCAoY3VzdG8gZmlzY2FsKQ0KICAgIERpZmVyZW5jaWFsID0gU2VsaWMgLSBGRURGVU5EUw0KICApICU+JQ0KICBmaWx0ZXIoIWlzLm5hKEZFREZVTkRTKSkNCg0KIyAtLS0gQ29udmVydGVyIHBhcmEgZm9ybWF0byBIaWdoY2hhcnRlciAtLS0NCnNlbGljX2hjIDwtIGRhZG9zX2NvbXBsZXRvcyAlPiUNCiAgbXV0YXRlKERhdGEgPSBkYXRldGltZV90b190aW1lc3RhbXAoRGF0YSkpICU+JQ0KICBzZWxlY3QoRGF0YSwgU2VsaWMpDQoNCmZlZGZ1bmRzX2hjIDwtIGRhZG9zX2NvbXBsZXRvcyAlPiUNCiAgbXV0YXRlKERhdGEgPSBkYXRldGltZV90b190aW1lc3RhbXAoRGF0YSkpICU+JQ0KICBzZWxlY3QoRGF0YSwgRkVERlVORFMpDQoNCmRpZmVyZW5jaWFsX2hjIDwtIGRhZG9zX2NvbXBsZXRvcyAlPiUNCiAgbXV0YXRlKERhdGEgPSBkYXRldGltZV90b190aW1lc3RhbXAoRGF0YSkpICU+JQ0KICBzZWxlY3QoRGF0YSwgRGlmZXJlbmNpYWwpDQoNCiMgLS0tIEdyw6FmaWNvIGRlIExpbmhhcyBjb20gw4FyZWEgLS0tDQpoaWdoY2hhcnQodHlwZSA9ICJzdG9jayIpICU+JQ0KICBoY19hZGRfc2VyaWVzKA0KICAgIGRhdGEgPSBsaXN0X3BhcnNlMihzZWxpY19oYyksDQogICAgdHlwZSA9ICJsaW5lIiwNCiAgICBuYW1lID0gIlRheGEgU2VsaWMgKGN1c3RvKSIsDQogICAgY29sb3IgPSAiIzAwMzM2NiIsDQogICAgeUF4aXMgPSAwLA0KICAgIGxpbmVXaWR0aCA9IDIsDQogICAgbWFya2VyID0gbGlzdChlbmFibGVkID0gRkFMU0UpDQogICkgJT4lDQogIGhjX2FkZF9zZXJpZXMoDQogICAgZGF0YSA9IGxpc3RfcGFyc2UyKGZlZGZ1bmRzX2hjKSwNCiAgICB0eXBlID0gImxpbmUiLA0KICAgIG5hbWUgPSAiVHJlYXN1cnkxMFkgKHJlY2VpdGEpIiwNCiAgICBjb2xvciA9ICIjMDBCMDUwIiwNCiAgICB5QXhpcyA9IDAsDQogICAgbGluZVdpZHRoID0gMiwNCiAgICBtYXJrZXIgPSBsaXN0KGVuYWJsZWQgPSBGQUxTRSkNCiAgKSAlPiUNCiAgaGNfYWRkX3NlcmllcygNCiAgICBkYXRhID0gbGlzdF9wYXJzZTIoZGlmZXJlbmNpYWxfaGMpLA0KICAgIHR5cGUgPSAiYXJlYSIsDQogICAgbmFtZSA9ICJEaWZlcmVuY2lhbCAoY3VzdG8gZmlzY2FsKSIsDQogICAgY29sb3IgPSAiI0ZFQjcxMiIsDQogICAgZmlsbE9wYWNpdHkgPSAwLjMsDQogICAgeUF4aXMgPSAwLA0KICAgIGxpbmVXaWR0aCA9IDIsDQogICAgbWFya2VyID0gbGlzdCgNCiAgICAgIGVuYWJsZWQgPSBGQUxTRSwNCiAgICAgIHN5bWJvbCA9ICJsaW5lIg0KICAgICkNCiAgKSAlPiUNCiAgaGNfdGl0bGUoDQogICAgdGV4dCA9ICJDdXN0byBGaXNjYWwgZGFzIFJlc2VydmFzIEludGVybmFjaW9uYWlzICgyMDEw4oCTMjAyNSkiDQogICkgJT4lDQogIGhjX3N1YnRpdGxlKA0KICAgIHRleHQgPSAiRGlmZXJlbmNpYWwgZW50cmUgVGF4YSBTZWxpYyBlIFJlbmRpbWVudG8gRXh0ZXJubyAoRVVBKSINCiAgKSAlPiUNCiAgaGNfeUF4aXMoDQogICAgdGl0bGUgPSBsaXN0KHRleHQgPSAiVGF4YSBkZSBKdXJvcyAoJSBhLmEuKSIpLA0KICAgIGxhYmVscyA9IGxpc3QoZm9ybWF0ID0gInt2YWx1ZTouMWZ9JSIpLA0KICAgIG9wcG9zaXRlID0gRkFMU0UNCiAgKSAlPiUNCiAgaGNfdG9vbHRpcCgNCiAgICBzaGFyZWQgPSBUUlVFLA0KICAgIHZhbHVlRGVjaW1hbHMgPSAyLA0KICAgIHZhbHVlU3VmZml4ID0gIiUgYS5hLiINCiAgKSAlPiUNCiAgaGNfbGVnZW5kKA0KICAgIGVuYWJsZWQgPSBUUlVFLA0KICAgIGFsaWduID0gImNlbnRlciIsDQogICAgdmVydGljYWxBbGlnbiA9ICJib3R0b20iLA0KICAgIGxheW91dCA9ICJob3Jpem9udGFsIiwNCiAgICBpdGVtU3R5bGUgPSBsaXN0KGZvbnRTaXplID0gIjExcHgiKQ0KICApICU+JQ0KICBoY19leHBvcnRpbmcoZW5hYmxlZCA9IFRSVUUpICU+JQ0KICBoY19jcmVkaXRzKA0KICAgIGVuYWJsZWQgPSBUUlVFLA0KICAgIHRleHQgPSAiRm9udGU6IEJDQiAoU0dTKSBlIEZSRUQgKEdTMTApIHwgR3LDoWZpY286IEVsYWJvcmHDp8OjbyBQcsOzcHJpYSINCiAgKSAlPiUNCiAgaGNfY2hhcnQoYmFja2dyb3VuZENvbG9yID0gIiNGRkZGRkYiKQ0KYGBgDQpBcyByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcyBzw6NvIGZ1bmRhbWVudGFpcyBwYXJhIGEgZXN0YWJpbGlkYWRlIG1hY3JvZWNvbsO0bWljYSBicmFzaWxlaXJhLCBtYXMgc3VhIG1hbnV0ZW7Dp8OjbyBpbXBsaWNhIGN1c3RvcyBmaXNjYWlzIHNpZ25pZmljYXRpdm9zLiBFc3RlIGN1c3RvIGRlY29ycmUgZG8gZGlmZXJlbmNpYWwgZW50cmUgYSB0YXhhIFNlbGljLCBxdWUgbyBwYcOtcyBwYWdhIHBhcmEgZmluYW5jaWFyIHN1YSBkw612aWRhIGludGVybmEsIGUgbyByZW5kaW1lbnRvIGRhcyByZXNlcnZhcyBhcGxpY2FkYXMgZW0gYXRpdm9zIGV4dGVybm9zIGRlIGJhaXhvIHJpc2NvLCBwcmluY2lwYWxtZW50ZSB0w610dWxvcyBkbyBUZXNvdXJvIEFtZXJpY2Fuby4NCg0KTyBtZWNhbmlzbW8gZnVuY2lvbmEgYXNzaW06IHF1YW5kbyBvIEJhbmNvIENlbnRyYWwgY29tcHJhIGTDs2xhcmVzIG5vIG1lcmNhZG8gcGFnYW5kbyBlbSByZWFpcywgYXVtZW50YSBhIG1vZWRhIGVtIGNpcmN1bGHDp8OjbywgbyBxdWUgcG9kZXJpYSBwcmVzc2lvbmFyIGEgaW5mbGHDp8Ojby4gUGFyYSBuZXV0cmFsaXphciBlc3NlIGVmZWl0bywgZW1pdGUgdMOtdHVsb3MgcMO6YmxpY29zIHF1ZSBwYWdhbSBhIFNlbGljIHBhcmEgcmV0aXJhciBlc3NlcyByZWFpcyBkZSBjaXJjdWxhw6fDo28sIHByb2Nlc3NvIGNoYW1hZG8gZXN0ZXJpbGl6YcOnw6NvLiBDb21vIGVzc2VzIHTDrXR1bG9zIHBhZ2FtIGp1cm9zIHNpZ25pZmljYXRpdmFtZW50ZSBzdXBlcmlvcmVzIGFvIHJlbmRpbWVudG8gZGFzIHJlc2VydmFzIG5vIGV4dGVyaW9yLCBzdXJnZSBvIGN1c3RvIGZpc2NhbC4NCg0KRW50cmUgMjAxMCBlIDIwMjUsIG8gY3VzdG8gZmlzY2FsIGRhcyByZXNlcnZhcyB2YXJpb3UgY29uZm9ybWUgbyBkaWZlcmVuY2lhbCBTZWxpY+KAk1RyZWFzdXJ5IDEwWS4gRW50cmUgMjAxNSBlIDIwMTcsIGNvbSBTZWxpYyBhY2ltYSBkZSAxMyUgZSBUcmVhc3VyeSBlbSAyIGEgMiw2JSwgbyBjdXN0byBmb2kgZGUgUiQgMTUwIGEgMTgwIGJpbGjDtWVzLiBEdXJhbnRlIGEgcGFuZGVtaWEgKDIwMjDigJMyMDIxKSwgY29tIFNlbGljIGVtIDEsOSUgZSBUcmVhc3VyeSAwLDUgYSAxLDclLCBjYWl1IHBhcmEgUiQgMTUgYSA0MCBiaWxow7Vlcy4gRW50cmUgMjAyMiBlIDIwMjUsIGNvbSBTZWxpYyBkZSAxMCw1IGEgMTQsOSUgZSBUcmVhc3VyeSAxLDUgYSA0LDYlLCBvcyBjdXN0b3MgZmljYXJhbSBlbnRyZSBSJCA4MCBhIDE2MCBiaWxow7VlcywgbW9zdHJhbmRvIHF1ZSBvIHByaW5jaXBhbCBkZXRlcm1pbmFudGUgw6kgbyBkaWZlcmVuY2lhbCBlbnRyZSBhcyB0YXhhcy4NCg0KSMOhLCBwb3J0YW50bywgdW0gdHJhZGUtb2ZmIGV2aWRlbnRlOiBhcyByZXNlcnZhcyBwcm90ZWdlbSBjb250cmEgY3Jpc2VzIGNhbWJpYWlzLCBtYXMgbyBjdXN0byBmaXNjYWwgcG9kZXJpYSBmaW5hbmNpYXIgaW52ZXN0aW1lbnRvcyBww7pibGljb3Mgb3UgcmVkdcOnw6NvIGRhIGTDrXZpZGEuIEEgcGVyc3BlY3RpdmEgZnV0dXJhIGRlc3NlIGN1c3RvIGRlcGVuZGUgZGEgdHJhamV0w7NyaWEgZGEgU2VsaWMgZSBkb3MgcmVuZGltZW50b3MgZG9zIHTDrXR1bG9zIGRvIFRlc291cm8gYW1lcmljYW5vLiBTZSBvIEJyYXNpbCBjb25zb2xpZGFyIGRlc2luZmxhw6fDo28gc3VzdGVudMOhdmVsIGUgcmVkdcOnw6NvIGRvIHJpc2NvIGZpc2NhbCwgYSBTZWxpYyBwb2RlcsOhIGNvbnZlcmdpciBwYXJhIG7DrXZlaXMgbWFpcyBwcsOzeGltb3MgYW9zIGludGVybmFjaW9uYWlzLCByZWR1emluZG8gbyBkaWZlcmVuY2lhbCBlIG8gY3VzdG8uIENhc28gY29udHLDoXJpbywgYSBwZXJzaXN0w6puY2lhIGRlIGp1cm9zIGVzdHJ1dHVyYWxtZW50ZSBhbHRvcyBubyBCcmFzaWwgbWFudGVyw6EgbyDDtG51cyBmaXNjYWwgZWxldmFkby4NCg0KDQojIyMjIEFww6puZGljZSAtIEN1c3RvIEZpc2NhbCBkYXMgUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMNCg0KTyBkaWZlcmVuY2lhbCBkZSBjdXN0byBmaXNjYWwgw6kgY2FsY3VsYWRvIHBvcjoNCg0KJCRcdGV4dHtEaWZlcmVuY2lhbH0gPSBpX3tTZWxpY30gLSBpX3tleHR9JCQNCg0KT25kZToNCg0KLSAkaV97U2VsaWN9JCA9IFRheGEgU2VsaWMgKCUgYS5hLikNCi0gJGlfe2V4dH0kID0gUmVuZGltZW50byBkYXMgcmVzZXJ2YXMgbm8gZXh0ZXJpb3IgKCUgYS5hLikNCg0KTyBjdXN0byBmaXNjYWwgYW51YWwgZW0gcmVhaXMgw6kgZGFkbyBwb3I6DQoNCiQkQ0YgPSBSIFx0aW1lcyBDIFx0aW1lcyAoaV97U2VsaWN9IC0gaV97ZXh0fSkkJA0KDQpPbmRlOg0KDQotICRDRiQgPSBDdXN0byBGaXNjYWwgKFIkIGJpbGjDtWVzKQ0KLSAkUiQgPSBSZXNlcnZhcyBJbnRlcm5hY2lvbmFpcyAoVVMkIGJpbGjDtWVzKQ0KLSAkQyQgPSBUYXhhIGRlIGPDom1iaW8gbcOpZGlhIChSJC9VUyQpDQotICRpX3tTZWxpY30kID0gVGF4YSBTZWxpYyAoZW0gZGVjaW1hbCkNCi0gJGlfe2V4dH0kID0gUmVuZGltZW50byBleHRlcm5vIChlbSBkZWNpbWFsKQ0KDQoNCiMjIENvbmNsdXPDo28NCkEgYW7DoWxpc2UgZGFzIHJlc2VydmFzIGludGVybmFjaW9uYWlzIGV2aWRlbmNpYSBzZXUgcGFwZWwgZXN0cmF0w6lnaWNvIG5hIG1hbnV0ZW7Dp8OjbyBkYSBlc3RhYmlsaWRhZGUgbWFjcm9lY29uw7RtaWNhIGUgbmEgbWl0aWdhw6fDo28gZGUgcmlzY29zIGV4dGVybm9zLiBBbyBsb25nbyBkb3Mgw7psdGltb3MgYW5vcywgYSBhY3VtdWxhw6fDo28gZGUgcmVzZXJ2YXMgcGVybWl0aXUgYW8gcGHDrXMgcmVkdXppciBhIHZvbGF0aWxpZGFkZSBjYW1iaWFsLCBmb3J0YWxlY2VyIGEgY29uZmlhbsOnYSBkZSBpbnZlc3RpZG9yZXMgaW50ZXJuYWNpb25haXMgZSBhc3NlZ3VyYXIgcmVjdXJzb3MgZW0gcGVyw61vZG9zIGRlIGNyaXNlLCBjb25zb2xpZGFuZG8gYSBwb3Npw6fDo28gZG8gQnJhc2lsIGVudHJlIG9zIHByaW5jaXBhaXMgcGHDrXNlcyBlbWVyZ2VudGVzIGVtIHRlcm1vcyBkZSB2b2x1bWUgZGUgcmVzZXJ2YXMuDQoNCkVudHJldGFudG8sIGEgZ2VzdMOjbyBkZXNzYXMgcmVzZXJ2YXMgbsOjbyBlc3TDoSBpc2VudGEgZGUgY3VzdG9zLiBBIGRpZmVyZW7Dp2EgZW50cmUgYSByZW11bmVyYcOnw6NvIG9idGlkYSBlbSBhdGl2b3MgZXh0ZXJub3MgZGUgYmFpeG8gcmlzY28gZSBvIGN1c3RvIGRvIGZpbmFuY2lhbWVudG8gaW50ZXJubywgdmlhIHRheGEgU2VsaWMsIHJlcHJlc2VudGEgdW0gY3VzdG8gZmlzY2FsIHJlbGV2YW50ZSBxdWUgcHJlY2lzYSBzZXIgbW9uaXRvcmFkbywgZXNwZWNpYWxtZW50ZSBlbSBjaWNsb3MgZGUganVyb3MgZWxldmFkb3MuIEVzc2UgZXF1aWzDrWJyaW8gZGVsaWNhZG8gZW50cmUgc2VndXJhbsOnYSBjYW1iaWFsIGUgZWZpY2nDqm5jaWEgZmlzY2FsIGV2aWRlbmNpYSBhIGNvbXBsZXhpZGFkZSBkZSBkZWNpc8O1ZXMgZW52b2x2ZW5kbyBwb2zDrXRpY2EgZWNvbsO0bWljYSwgcG9sw610aWNhIG1vbmV0w6FyaWEgZSBnZXN0w6NvIGRlIHJpc2NvcyBleHRlcm5vcy4NCg0KRW0gc3VtYSwgYSBzdXN0ZW50YWJpbGlkYWRlIGRhIHBvbMOtdGljYSBkZSByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcyBkZXBlbmRlIGRlIGRlY2lzw7VlcyBjb25zaXN0ZW50ZXMsIGNhcGF6ZXMgZGUgZXF1aWxpYnJhciBwcm90ZcOnw6NvIGNhbWJpYWwsIG1hbnV0ZW7Dp8OjbyBkYSBjb25maWFuw6dhIGludGVybmFjaW9uYWwgZSBjdXN0b3MgZmlzY2Fpcy4gTyBkZXNhZmlvIHJlc2lkZSBlbSBwcmVzZXJ2YXIgZXNzZSDigJxjb2xjaMOjb+KAnSBmaW5hbmNlaXJvIHNlbSBjb21wcm9tZXRlciBhIGRpc2NpcGxpbmEgb3LDp2FtZW50w6FyaWEsIGdhcmFudGluZG8sIGFvIG1lc21vIHRlbXBvLCBlc3RhYmlsaWRhZGUgZmluYW5jZWlyYSBlIHJlc2lsacOqbmNpYSBmcmVudGUgYSBjaG9xdWVzIGV4dGVybm9zLg0KDQoNCg0KIyMgUmVmZXLDqm5jaWFzDQpFTVBJUklDVVMuIE8gcXVlIHPDo28gcmVzZXJ2YXMgaW50ZXJuYWNpb25haXMgZSBxdWFsIHN1YSBpbXBvcnTDom5jaWEgcGFyYSBvIEJyYXNpbC4gRGlzcG9uw612ZWwgZW06IGh0dHBzOi8vd3d3LmVtcGlyaWN1cy5jb20uYnIvZXhwbGljYS9yZXNlcnZhcy1pbnRlcm5hY2lvbmFpcy8uIEFjZXNzbyBlbTogMjEgb3V0LiAyMDI1Lg0KDQpQT0xJVElaRSEuIFJlc2VydmFzIGludGVybmFjaW9uYWlzOiBvIHF1ZSBzw6NvIGUgcG9yIHF1ZSBzw6NvIGltcG9ydGFudGVzIHBhcmEgbyBCcmFzaWw/IERpc3BvbsOtdmVsIGVtOiBodHRwczovL3d3dy5wb2xpdGl6ZS5jb20uYnIvcmVzZXJ2YXMtaW50ZXJuYWNpb25haXMvLiBBY2Vzc28gZW06IDIxIG91dC4gMjAyNS4NCg0KRlVOREHDh8ODTyBHRVRVTElPIFZBUkdBUyAoRkdWKS4gUmVzZXJ2YXMgaW50ZXJuYWNpb25haXMgZSBlc3RhYmlsaWRhZGUgbWFjcm9lY29uw7RtaWNhLiBEaXNwb27DrXZlbCBlbTogaHR0cHM6Ly9yZXBvc2l0b3Jpby5mZ3YuYnIvc2VydmVyL2FwaS9jb3JlL2JpdHN0cmVhbXMvODQ5MzFkNDgtOTcyMC00MWM5LTlmZmUtNjk5MjZlZGQ2M2I5L2NvbnRlbnQuIEFjZXNzbyBlbTogMjEgb3V0LiAyMDI1Lg0KDQpFU1RBRMODTy4gUXVhbnRvIG8gQnJhc2lsIHRlbSBkZSByZXNlcnZhcyBpbnRlcm5hY2lvbmFpcz8gRGlzcG9uw612ZWwgZW06IGh0dHBzOi8vd3d3LmVzdGFkYW8uY29tLmJyL2Vjb25vbWlhL3F1YW50by1vLWJyYXNpbC10ZW0tZGUtcmVzZXJ2YXMtaW50ZXJuYWNpb25haXMtbnByZWkvLiBBY2Vzc28gZW06IDIxIG91dC4gMjAyNS4NCg0KRzEg4oCTIFBPUlRBTCBERSBOT1TDjUNJQVMgR0xPQk8uIENvbSBkaXNwYXJhZGEgZG8gZMOzbGFyIGUgbGVpbMO1ZXMgZG8gQkMsIHJlc2VydmFzIGludGVybmFjaW9uYWlzIGRvIEJyYXNpbCBjYWVtIDcsMSUgZW0gMjAyNC4gRGlzcG9uw612ZWwgZW06IGh0dHBzOi8vZzEuZ2xvYm8uY29tL2Vjb25vbWlhL25vdGljaWEvMjAyNS8wMS8wNS9jb20tZGlzcGFyYWRhLWRvLWRvbGFyLWUtbGVpbG9lcy1kby1iYy1yZXNlcnZhcy1pbnRlcm5hY2lvbmFpcy1kby1icmFzaWwtY2FlbS03MXBlcmNlbnQtZW0tMjAyNC5naHRtbC4gQWNlc3NvIGVtOiAyMSBvdXQuIDIwMjUuDQoNCklOU1RJVFVUTyBERSBQRVNRVUlTQSBFQ09Ow5RNSUNBIEFQTElDQURBIChJUEVBKS4gUmVzZXJ2YXMgaW50ZXJuYWNpb25haXMuIENhcnRhIGRlIENvbmp1bnR1cmEuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL3d3dy5pcGVhLmdvdi5ici9jYXJ0YWRlY29uanVudHVyYS9pbmRleC5waHAvdGFnL3Jlc2VydmFzLWludGVybmFjaW9uYWlzLy4gQWNlc3NvIGVtOiAyMSBvdXQuIDIwMjUuDQoNCk8gR0xPQk8uIEJDIGZheiBpbnRlcnZlbsOnw6NvIHJlY29yZGUgbm8gZMOzbGFyOyBtYXMgYWZpbmFsLCBxdWFudG8gbyBCcmFzaWwgdGVtIGVtIHJlc2VydmFzIGNhbWJpYWlzPyBEaXNwb27DrXZlbCBlbTogaHR0cHM6Ly9vZ2xvYm8uZ2xvYm8uY29tL2Vjb25vbWlhL2ZpbmFuY2FzL25vdGljaWEvMjAyNC8xMi8xOS9iYy1mYXotaW50ZXJ2ZW5jYW8tcmVjb3JkZS1uby1kb2xhci1tYXMtYWZpbmFsLXF1YW50by1vLWJyYXNpbC10ZW0tZW0tcmVzZXJ2YXMtY2FtYmFpcy5naHRtbC4gQWNlc3NvIGVtOiAyMSBvdXQuIDIwMjUuDQoNCk5PUkQgSU5WRVNUSU1FTlRPUy4gUmVzZXJ2YXMgaW50ZXJuYWNpb25haXMgZG8gQnJhc2lsOiBvIHF1ZSBzw6NvIGUgcXVhbCBzdWEgaW1wb3J0w6JuY2lhPyBEaXNwb27DrXZlbCBlbTogaHR0cHM6Ly93d3cubm9yZGludmVzdGltZW50b3MuY29tLmJyL2Jsb2cvcmVzZXJ2YXMtaW50ZXJuYWNpb25haXMtYnJhc2lsLy4gQWNlc3NvIGVtOiAyMSBvdXQuIDIwMjUuDQoNCkJBTkNPIENFTlRSQUwgRE8gQlJBU0lMIChCQ0IpLiBSZWxhdMOzcmlvIGRlIEdlc3TDo28gZGFzIFJlc2VydmFzIEludGVybmFjaW9uYWlzIOKAkyAyMDI1LiBEaXNwb27DrXZlbCBlbTogaHR0cHM6Ly93d3cuYmNiLmdvdi5ici9jb250ZW50L3B1YmxpY2Fjb2VzL3JlbGdlc3Rhb3Jlc2VydmFzL0dFU1RBT1JFU0VSVkFTMjAyNTAzLXJlbGF0b3Jpb19hbnVhbF9yZXNlcnZhc19pbnRlcm5hY2lvbmFpc18yMDI1LnBkZi4gQWNlc3NvIGVtOiAyMSBvdXQuIDIwMjUuDQoNClRSQURJTkcgRUNPTk9NSUNTLiBGb3JlaWduIEV4Y2hhbmdlIFJlc2VydmVzIOKAkyBHMjAgQ291bnRyaWVzLiBEaXNwb27DrXZlbCBlbTogaHR0cHM6Ly9wdC50cmFkaW5nZWNvbm9taWNzLmNvbS9jb3VudHJ5LWxpc3QvZm9yZWlnbi1leGNoYW5nZS1yZXNlcnZlcz9jb250aW5lbnQ9ZzIwLiBBY2Vzc28gZW06IDIxIG91dC4gMjAyNS4NCg0KQmFuY28gQ2VudHJhbCBkbyBCcmFzaWwgKEJDQikuIFJlbGF0w7NyaW8gZGUgR2VzdMOjbyBkYXMgUmVzZXJ2YXMgSW50ZXJuYWNpb25haXMuIERpc3BvbsOtdmVsIGVtOiBodHRwczovL3d3dy5iY2IuZ292LmJyL3B1YmxpY2Fjb2VzL3JlbGdlc3Rhb3Jlc2VydmFzLiBBY2Vzc28gZW06IDIxIG91dC4gMjAyNS4NCg0KQk9BUkTigK9PRuKAr0dPVkVSTk9SU+KAr09G4oCvVEhF4oCvRkVERVJBTOKAr1JFU0VSVkXigK9TWVNURU0gKFVTKS4gTWFya2V0IFlpZWxkIG9uIFUuUy4gVHJlYXN1cnkgU2VjdXJpdGllcyBhdCAxMC1ZZWFyIENvbnN0YW50IE1hdHVyaXR5LCBRdW90ZWQgb24gYW4gSW52ZXN0bWVudCBCYXNpcyBbR1MxMF0uIERpc3BvbsOtdmVsIGVtOiBodHRwczovL2ZyZWQuc3Rsb3Vpc2ZlZC5vcmcvc2VyaWVzL0dTMTANCi4gQWNlc3NvIGVtOiAyMSBvdXQuIDIwMjUuDQoNCg==